Biomatic Programming Languages
The earliest known programmable machine preceded the invention of the digital computer and is the automatic flute player described in the 9th century by the brothers Musa in Baghdad, at the time a major centre of knowledge. From the early 1800s, "programs" were used to direct the behavior of machines such as Jacquard looms and player pianos. Thousands of different programming languages have been created, mainly in the computer field, and many more still are being created every year.
All programming languages have some primitive building blocks for the description of data and the processes or transformations applied to them (like the addition of two numbers or the selection of an item from a collection). These primitives are defined by syntactic and semantic rules which describe their structure and meaning respectively.
A programming language's surface form is known as its syntax. Most programming languages are purely textual; they use sequences of text including words, numbers, and punctuation, much like written natural languages. On the other hand, there are some programming languages which are more graphical in nature, using visual relationships between symbols to specify a program.
The syntax of a language describes the possible combinations of symbols that form a syntactically correct program. The meaning given to a combination of symbols is handled by semantics (either formal or hard-coded in a reference implementation).
Parallel programming languages
Concurrent programming languages, libraries, APIs, and parallel programming models (such as algorithmic skeletons) have been created for programming parallel computers. These can generally be divided into classes based on the assumptions they make about the underlying memory architecture—shared memory, distributed memory, or shared distributed memory. Shared memory programming languages communicate by manipulating shared memory variables. Distributed memory uses message passing. POSIX Threads and OpenMP are two of the most widely used shared memory APIs, whereas Message Passing Interface (MPI) is the most widely used message-passing system API. One concept used in programming parallel programs is the future concept, where one part of a program promises to deliver a required datum to another part of a program at some future time.
CAPS entreprise and Pathscale are also coordinating their effort to make hybrid multi-core parallel programming (HMPP) directives an open standard called OpenHMPP. The OpenHMPP directive-based programming model offers a syntax to efficiently offload computations on hardware accelerators and to optimize data movement to/from the hardware memory. OpenHMPP directives describe remote procedure call (RPC) on an accelerator device (e.g. GPU) or more generally a set of cores. The directives annotate C or Fortran codes to describe two sets of functionalities: the offloading of procedures (denoted codelets) onto a remote device and the optimization of data transfers between the CPU main memory and the accelerator memory.
The goal of a biologically inspired computer programming language would be to model the information structures and processes as they occur in biological systems. For example DNA is wrapped around and controlled by, at least partially, the activity of histone proteins. These proteins can be modelled according to the rotational activity of covalent bonds between succesive carbon atoms. Each covalent bond is a powerful computational element capable of complex rotational programs. Somewhere along the line these program-like motions comprise a blueprint for a viable organic life form. They lay out and control the geometric properties and locations of organelles and organs in embryonic developement. These same activities could even conceivably be involved in more abstract phenomena such as personality and emotions. Emotions may just be the vibrational state of a single string...Biomatic Emoticons.
Thus a programming language would be based on a vibrating string(s), with the string(s) being a coordinated collection of covalent programs. In concert the collection, with DNA's protein production acting as output, performs it's biological fumction.
For example, given a carbon chain similar to a protein one can assign rates of rotation for each covalent bond around it's associated carbon atom. The simplest "program" would be where all bonds rotate at the same constant rate. A more complex motion could be a program where the rates alternate 2 different values e.g. 1,2,1,2,1,2,1,2... where every other bond rotates at twice the rate of the previous. In the extreme case each bond could have some complex time pattern yielding a parrallel computational structure. As in the DNA-Histone model these could be coordinated in some way as to yield the final desired result.
Data representation and storage- Vibrating strings as data, control structures and programs
Something resembling a blueprint (as in serving as a model or providing guidance); especially : a detailed plan or program of action
A collection of complex processes working in concert to achieve a goal.
In an object oriented environment a blueprint could be a set of objects which together create the next higher level object or organism. For example eyes, ears, nose etc create a face. Not only the objects, but the geometrical relationships are encoded.
Quantum vs String based computation
Histone-DNA complex as model of computing machine- DNA as an alphabet or numbering system controlled at least in part by the "vibration" of the histone complex including the histone tails.
The histone code hypothesis predicts that the post-translational modifications of histones, alone or in combination, function to direct specific and distinct DNA-templated programs.