Concepts inHydroJ: object-oriented pattern matching for evolvable distributed systems
Pattern matching
In computer science, pattern matching is the act of checking some sequence of tokens for the presence of the constituents of some pattern. In contrast to pattern recognition, the match usually has to be exact. The patterns generally have the form of either sequences or tree structures.
more from Wikipedia
Object-oriented programming
Object-oriented programming (OOP) is a programming paradigm using "objects" ¿ data structures consisting of data fields and methods together with their interactions ¿ to design applications and computer programs. Programming techniques may include features such as data abstraction, encapsulation, messaging, modularity, polymorphism, and inheritance. Many modern programming languages now support OOP, at least as an option.
more from Wikipedia
Distributed computing
Distributed computing is a field of computer science that studies distributed systems. A distributed system consists of multiple autonomous computers that communicate through a computer network. The computers interact with each other in order to achieve a common goal. A computer program that runs in a distributed system is called a distributed program, and distributed programming is the process of writing such programs.
more from Wikipedia
Evolvability
Evolvability is defined as the capacity of a system for adaptive evolution. Evolvability is the ability of a population of organisms to not merely generate genetic diversity, but to generate adaptive genetic diversity, and thereby evolve through natural selection. In order for a biological organism to evolve by natural selection, there must be a certain minimum probability that new, heritable variants are beneficial.
more from Wikipedia
Value (computer science)
In computer science, a value is an expression which cannot be evaluated any further. The members of a type are the values of that type. For example, the expression "1 + 2" is not a value as it can be reduced to the expression "3". This expression cannot be reduced any further (and is a member of the type Nat) and therefore is a value. The "value of a variable" is given by the corresponding mapping in the environment.
more from Wikipedia
Core language
In computer programming, the core language is the definition of a programming language plus any standard libraries. Identifiers which are reserved for core usage are known as "keywords". The C standard runtime library and the core Java packages are two examples of components of their respective core languages. The C++ Programming language has a vast library called the C++ Standard Library.
more from Wikipedia
Idea
An idea is a concept or mental impression. Very often, ideas are construed as representational images; i.e. images of some object. In other contexts, ideas are taken to be concepts, although abstract concepts do not necessarily appear as images. Many philosophers consider ideas to be a fundamental ontological category of being. The capacity to create and understand the meaning of ideas is considered to be an essential and defining feature of human beings.
more from Wikipedia
Compiler
A compiler is a computer program (or set of programs) that transforms source code written in a programming language (the source language) into another computer language (the target language, often having a binary form known as object code). The most common reason for wanting to transform source code is to create an executable program. The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a lower level language.
more from Wikipedia