programming paradigms and mind metaphors: convergence and ... · programming paradigms and mind...

14
Biol Res 40: 503-515, 2007 BR Programming Paradigms and Mind Metaphors: Convergence and Cross-fertilization in the Study of Cognition DIEGO COSMELLI 1 , JORGE SOTO-ANDRADE 2 and ERIC TANTER 3 1 Laboratorio de Neurociencias, Facultad de Ciencias Sociales, Escuela de Psicología, and Laboratorio de Ciencias Cognitivas, Departamento de Psiquiatría, Escuela de Medicina, Pontificia Universidad Católica de Chile, Santiago, Chile. E-Mail: [email protected] 2 Mathematics Department, Faculty of Sciences, Universidad de Chile, Santiago, Chile. Email: [email protected] 3 PLEIAD Lab, Computer Science Department (DCC), Universidad de Chile, Santiago, Chile. Email: [email protected] ABSTRACT This paper describes a notable convergence between biological organization and programming language abstractions. Our aim is to explore possibilities of cross-fertilization, at both conceptual and empirical levels, towards the understanding of what cognition and cognitive systems might be. Key terms: Programming Paradigms, Biologically Inspired Computing, Cognitive Systems, Software Agents, Regional Ontologies. Corresponding Author: Dr. Diego Cosmelli [email protected] Received: October 10, 2007. Accepted: March 3, 2008 What does an essay on programming paradigms have to do with the study of the brain, nervous systems and cognition? One straightforward answer would be that through the development of ever more complex programs and sophisticated computational systems one could expect producing proper models of system such as neurons, neural networks, brains and ultimately nervous systems. While this is indeed an important part, it is obviously not the only case, as the computation-biology interface is an active research domain. Notable developments include, but are not limited to, modeling living beings (Varela et al., 1974) and their sub-processes (Fernandez-Ballester & Serrano,2006), genetic algorithms (Burtsev & Turchin, 2006), cellular automata (Wolfram, 1984), robotics (Steels & Brooks, 1995)], artificial intelligence and intelligent agent-design [McDermott, 2007; Sun & Franklin, 2007), neuronal-prosthetics (Fromherz, 2006), large-scale modeling of nervous systems (http: //bluebrain.epfl.ch/), machine consciousness (Aleksander, 2005), computational correlates of consciousness (Cleeremans, 2005), and so on. The motivation of this paper is to navigate in the less-explored relation between biological theory and programming paradigms (OOPSLA 2006, 2006), with the aim of highlighting a series of converging ideas. We will argue that in the interphase of these two domains resides an important metaphorical pool to deal with some basic questions regarding understanding and modeling systems which can make sense of their current situation. It is no news that software development faces a challenge with the explosion of highly extended, pervasive, and ultra-large scale computational systems (The Software Engineering Institute (SEI), 2006). The proliferation of mobile devices and highly interconnected systems in the face of multiple users in changing conditions represents a radically dynamic context.

Upload: others

Post on 05-Feb-2020

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programming Paradigms and Mind Metaphors: Convergence and ... · Programming Paradigms and Mind Metaphors: Convergence and Cross-fertilization in the Study of Cognition DIEGO COSMELLI1,

503COSMELLI ET AL. Biol Res 40, 2007, 503-515Biol Res 40: 503-515, 2007 BRProgramming Paradigms and Mind Metaphors:Convergence and Cross-fertilization in the Study ofCognition

DIEGO COSMELLI1, JORGE SOTO-ANDRADE2 and ERIC TANTER3

1 Laboratorio de Neurociencias, Facultad de Ciencias Sociales, Escuela de Psicología, and Laboratorio deCiencias Cognitivas, Departamento de Psiquiatría, Escuela de Medicina, Pontificia Universidad Católica deChile, Santiago, Chile. E-Mail: [email protected] Mathematics Department, Faculty of Sciences, Universidad de Chile, Santiago, Chile. Email:[email protected] PLEIAD Lab, Computer Science Department (DCC), Universidad de Chile, Santiago, Chile. Email:[email protected]

ABSTRACT

This paper describes a notable convergence between biological organization and programming languageabstractions. Our aim is to explore possibilities of cross-fertilization, at both conceptual and empirical levels,towards the understanding of what cognition and cognitive systems might be.

Key terms: Programming Paradigms, Biologically Inspired Computing, Cognitive Systems, Software Agents,Regional Ontologies.

Corresponding Author: Dr. Diego Cosmelli [email protected]

Received: October 10, 2007. Accepted: March 3, 2008

What does an essay on programmingparadigms have to do with the study of thebrain, nervous systems and cognition? Onestraightforward answer would be thatthrough the development of ever morecomplex programs and sophisticatedcomputational systems one could expectproducing proper models of system such asneurons, neural networks, brains andultimately nervous systems. While this isindeed an important part, it is obviously notthe only case, as the computation-biologyinterface is an active research domain.Notable developments include, but are notlimited to, modeling living beings (Varelaet al. , 1974) and their sub-processes(Fernandez-Ballester & Serrano,2006),genetic algorithms (Burtsev & Turchin,2006), cellular automata (Wolfram, 1984),robotics (Steels & Brooks, 1995)], artificialintelligence and intelligent agent-design[McDermott, 2007; Sun & Franklin, 2007),neuronal-prosthetics (Fromherz, 2006),large-scale modeling of nervous systems

(http: / /bluebrain.epfl.ch/), machineconsciousness (Aleksander, 2005),computational correlates of consciousness(Cleeremans, 2005), and so on.

The motivation of this paper is tonavigate in the less-explored relationbetween biological theory andprogramming paradigms (OOPSLA 2006,2006), with the aim of highlighting a seriesof converging ideas. We will argue that inthe interphase of these two domains residesan important metaphorical pool to deal withsome basic questions regardingunderstanding and modeling systems whichcan make sense of their current situation.

It is no news that software developmentfaces a challenge with the explosion ofhighly extended, pervasive, and ultra-largescale computational systems (The SoftwareEngineering Institute (SEI), 2006). Theproliferation of mobile devices and highlyinterconnected systems in the face ofmultiple users in changing conditionsrepresents a radically dynamic context.

Page 2: Programming Paradigms and Mind Metaphors: Convergence and ... · Programming Paradigms and Mind Metaphors: Convergence and Cross-fertilization in the Study of Cognition DIEGO COSMELLI1,

COSMELLI ET AL. Biol Res 40, 2007, 503-515504

Because programming paradigms andlanguages deal with the nature of andinteraction among computational entities –and by extension with the interactionsbetween computational systems and humanbeings–, research in these areas deals in avery concrete manner with the question ofmaking sense out of a context of interactionor a certain environmental situation; achallenge that resembles the general issueof cognition.

The brain and the nervous system havehistorically been recognized as playing afundamental role in supporting what weunderstand as cognitive capacities(Ashby,1952; Maturana, 1970b; Kandel &Jessell , 2000). As living beingsincorporated nervous systems into theirrepertoire of biological tools, autonomousmovement and perception made its full-fledged appearance, and with it , theenormous cognitive possibilit ies ofsensorimotor animated beings. However,understanding how this role is played in thecontext of the living animal is far fromclear. The question for the mechanisms ofhuman and animal cognition, of how suchsystems appear to be able to establishmeaningful points of view in an apparentlyobjective world, is a challenge that has beencalled the “holy grail” of contemporaryscience (Dennett, 1991; Niedermeyer,2005).

Drawing on an analogy betweenprogramming paradigms and biology couldbe considered far-fetched: meaning for asoftware agent has nothing to do withmeaning for a rabbit. In other words, a mereas-if would have no use in explanatoryattempts at a given problem. We wish totake stance against such argument.Throughout history, technologicalmetaphors have been one of the mainexplanatory bases for the understanding ofnatural phenomena (Freeman, personalcommunication). Similarly, natural systemsserve systematically as models fortechnological development. Even more thanthrough deductive reasoning, it is throughmetaphors and analogies that insight oftencomes to be, usually for the benefit of manysides of the problem. Metaphors do notsimply enable illustrative comparisons but

can act as powerful cognitive tools (Soto-Andrade, 2007). While we do not pretend toanswer the question of cognition ormeaning we do contend that, on this ratherthorny issue, the search for cross-fertilization is not only necessary andbeneficial in theory, but already at workand worth taking into account seriously.

We will begin with the question ofdefining cognition as a way of setting acommon conceptual background. To thisend we will review three well-knownapproaches to this problem, namelycognitivism, connectionism andembodiment. We will follow with a briefsurvey of the history of programmingparadigm research, with special attention tothe underlying process of abstraction. Wewill then present some examples ofconvergence between the development ofprogramming paradigms and some themesin biologically-oriented approaches tocognition. We will argue that theseexamples suggest relevant lines for cross-fertilization between disciplines. We endwith a brief conclusion and round-up.

FROM COMPUTATIONAL COGNITIVISM TO

EMBODIMENT: THE PROBLEM OF COGNITION

What is cognition? or to be more precise,what do we understand by cognition so thata cognitive system can be defined ordistinguished in some operative way? It isobvious that dealing with this question isnot trivial. Ramifications into almost anydomain of human study can be found1, sono simple answer will do. The followingbrief discussion in terms of differentparadigms is therefore intended only as aworking ground (see also Varela et al.,1997; Dupuy, 1999; Cisek, 1999;Thompson, 2007).

Cognitivism: into the inner workings

For classical cognitivism cognition consistsessentially in the manipulation of discretesymbolic representational entities,

1 Think of the number of disciplines that converge in theso-called Cognitive Sciences.

Page 3: Programming Paradigms and Mind Metaphors: Convergence and ... · Programming Paradigms and Mind Metaphors: Convergence and Cross-fertilization in the Study of Cognition DIEGO COSMELLI1,

505COSMELLI ET AL. Biol Res 40, 2007, 503-515

according to predefined rules. Thequintessential theoretical account withinthis tradition is the Computational Theoryof Mind. It is claimed that the mind isliterally a digital computer, so thatcognition is equivalent to computation2.From here numerous metaphors areavailable and play an important role inguiding further experiments andtheorization: when we perceive and act wereceive information from a world, process itand respond according to a sets of rules ofevaluation, matching, decision making, etc;memory is a storage of something; attentionis a matter of administering limitedprocessing resources; consciousness, accessto a widespread broadcast message (Baars,2002). Accounting for felt meaning(Gendlin, 1997), as we human beings live itthrough, has always been a difficult taskwithin this paradigm3. Nevertheless, it isnoteworthy that a computational automatedemail response system built on the globalworkspace hypothesis (which implementsbasic computational cognitivistassumptions) could be capable of passing a(naive) Turing test (Sun & Franklin, 2007).

Delocalizing the process: connectionism

Through the study of complex natural andartificial systems, in particular modelneural networks, the notion of distributed,non-localized, systemic processes hasbecome well known (Prigogine & Nicolis,1989). From self-organization in liquidmedia to social insects, the core idea is thatthrough a set of local rules among simplecomponents a global property obtains4.Such so-called emergent property pertainsto the totality and is not localized in anysubsystem of it (Shewmon, 2001).

In connectionist and related neo-connectionist approaches (Feldman &Ballard, 1982), properties of the system are

delocalized, depending crucially oninteractions (connections) among parts. Theparadigmatic example is a neural networkwhich through interconnected simple units(model neurons) is said to recognizecomplex patterns, discriminate, learn and soon. In addition to already adopting andprofiting from cognitive, intentionalterminology for the description of suchsystems, connectionism opens the place fornovel metaphorical tools that work theother way. Symbolic entities can freethemselves from discreteness, and cognitioncan be understood as a distributed,historical and interdependent process.Numerous approaches benefit some way oranother from the conceptual tools that areavailable within this framework (Clark,1997), including the one presented insection below. Cognition is now thedynamic emergence of coherent globalstates that are reached, upon a givenenvironmental situation, through distributedcooperative interaction rather than throughcentral, sequential processing. Importantly,in such systems, for global behavior topersist , the behavior of the parts isconstrained reducing their degrees offreedom (i.e. ‘enslavement’ Haken,1983)5.

In flesh and blood: the embodied mind

Embodied, enactive, and situated cognitionapproaches are in a way a mixture ofheritages from cybernetics, biology andphilosophy and take a more radicalnaturalistic perspective on cognition (Varelaet al., 1997; Thompson, 2007; Noe, 2004;Clark, 1997; Cosmelli & Thompson, InPress). For embodiment6, cognitive systemsare systems that bring forth a contextuallyvalid (ecological) world of meaning. This

2 Under a given technical definition of what computationand a computer is ( [Horst (Fall 2005 Edition); Putnam(1975); Fodor (1979)].

3 Interested readers might wish to see for example JohnSearle’s Chinese Room argument [Searle (1980)] andthe discussion in [Thompson (1997)].

4 The actual mechanism of this obtaining is notnecessarily understood.

5 In line with Cisek (1999), we would tend to seeconnectionism in this sense as a sophisticated variantof the more classical computational cognitivism:symbols are now simply dynamical and distributedrepresentations, but which nevertheless aremanipulated according to rules such as synapticweights. However, we single it out because it opens theway to the notion of emergent distributed processeswhich have played an important role in both computerscience [Bonabeau et al. (1999)] and neurobiology[Freeman (1999); Gelder (1998)]

6 Used here as a synonym of all three terms above.

Page 4: Programming Paradigms and Mind Metaphors: Convergence and ... · Programming Paradigms and Mind Metaphors: Convergence and Cross-fertilization in the Study of Cognition DIEGO COSMELLI1,

COSMELLI ET AL. Biol Res 40, 2007, 503-515506

happens through a history of structuralcoupling between systems that activelymaintain a self-asserted identity with an(only) partially predictable environment.

Living systems and living organization isthe paradigmatic cognitive system under thisperspective (Maturana, 1970a; Maturana &Varela, 1973; Varela, 1979)7. For theembodied approaches, the self-sustainedbody and the always present life-deathtension is precedent to any symbolmanipulation and foundational of any valuewhatsoever. Cognition is thereforeendogenously motivated, exploratory andnecessarily risky (Jonas, (2001(1979). Ingeneral, embodiment considers meaning ascontextual, perspectival, and a matter ofstaying alive here and now: the world makessense to me because whatever comes from it,I still have to stay alive. In other words, thatwhich is not the system, i.e. the world, isnow of the system’s vital concern. While theintuitive appeal of this approach isconsiderable, operationalizations into actualexperimental settings are still lacking.

A qualification: Hard and soft notions ofcognition

The study of cognition is undoubtedly anopen question. It appears that meaning,sense making and knowledge are at theheart of it, yet defining these three conceptsis again a huge challenge we do not mean toattempt. One aspect does need to be pointedout, however. From an embodimentperspective, cognition is usually understoodas dependent on physically being there, ‘inflesh and blood’, and any virtual model canonly highlight structural determinants butnot become or produce a cognitive agent.Alternatively, this phenomenon could beexhibited by synthetic virtual entities ofsome kind as long as certain conditions arefulfilled. Here we rejoin a long-standingdebate in Artificial Intelligence andArtificial Life (Varela & Bourgine, 1992;McDermott, 2007; Steward & Mossio,

(n.d.); Thompson, 2004). We will suspendfor the moment the question of whether asynthetic virtual or physical model will becognizant in the sense of being able toexperience a shared world of meaning(Varela et al., 1997).

We invite the reader to keep in mind thedifferent approaches to cognition that wehave sketched above as we turn in thefollowing to revise programming paradigmresearch development. This will set thestage for discussing the three lines ofconvergence we propose can be relevant toboth the way further programmingparadigms are developed and how mind andcognitive systems are understood.

PROGRAMMING ABSTRACTIONS: FROM

PROCEDURES TO AMBIENT ACTORS

Abstraction in programming language hasbeen the driving force behind research inprogramming paradigms (Hayes, 2003): thedefinition of a set of basic concepts andtheir rules of composition and interaction.For instance, in functional programming, aprogram is built up of functions callingother functions and returning values, prettymuch like mathematical functions. Onanother trend, logic programming promotesthe decomposition of a problem into a set oflogic facts and rules, and uses inference asa means to compose these pieces together.In a procedural programming language, aprogram is made up of a set of datastructures manipulated by procedures thatcan affect the state of the system as definedby the data structures. An object-orientedprogramming language adopts yet anothermeans of structuring programs, as discussedlater on.

The recurrent problems in the softwareindustry have always pushed researchers tostudy new abstractions and paradigms forprogramming, with objectives such asconciseness of written code,understandability, extensibility, reusability,maintainability, etc. The ever-increasing andwidespread use of information technologycontinuously brings new challenges and newdegrees of complexity for softwaredevelopment. This pressure calls for new

7 In this sense it is a rather strong framework as itequates cognition with a given way of being rather thanan internal or external process of some kind, as was thecase for the previous approaches.

Page 5: Programming Paradigms and Mind Metaphors: Convergence and ... · Programming Paradigms and Mind Metaphors: Convergence and Cross-fertilization in the Study of Cognition DIEGO COSMELLI1,

507COSMELLI ET AL. Biol Res 40, 2007, 503-515

paradigms addressing limitations of theestablished ones. Interestingly, as the levelof abstraction rises, the degrees of freedomof the programmer get more and morerestricted, because behind abstractions are aset of rules enforced by the languageprocessor. But these very rules are in fact theenablers of abstractions, which make itpossible for programs to address more andmore complex tasks in a practical way. Wenow illustrate the interest of abstraction atthe level of the programming language bygiving a brief overview of the evolution ofabstractions. We will start from proceduralprogramming and work our way to the veryrecent paradigm of ambient-orientedprogramming, a paradigm that aims ataddressing the challenging context ofprogramming applications for a multitude oflightweight mobile devices carried bymobile users facing varying connectivity dueto network limitations (Dedecker et al.,2006), resulting in a highly dynamic networktopology.

The illustration of the power ofprogramming language abstractions thatfollows is at best partial and incomplete:one cannot resume forty years of researchin programming languages that briefly. Ouraim is demonstrating in a concise mannerthat there are fundamental gains in tacklinga given problem with a programmingparadigm that integrates the appropriateabstractions, rather than building ad-hocabstractions without adopting a paradigmshift.

Step 1: From Procedures to Objects

In traditional procedural programminglanguages, like C, Fortran, Pascal, and thelike, a program is structured as a set of datastructures on the one hand, which representthe state of the program, and procedures onthe other. Procedures are composed byinvoking each other and possibly returningvalues after performing some computation,which may depend on and affect the datastructures.

History has shown that the separation ofdata structures and procedures isunfortunate because there is an inherentneed for consistency between both (Hayes,

(2003). For instance, the procedure thatdraws shapes on the screen is coupled withthe types and representation of shapestructures; updates to one imply updates tothe other.

In the early 1970s, building upon hiseducation as a biologist, Turing-awardwinner Alan Kay and colleagues came upwith a fundamentally new abstraction forprogramming, using a clear inspiration fromcells in living organisms: objects (Kay,1993). In object-oriented programming, anexecuting program is made up of self-contained capsules, called objects, whichprovide a number of well-defined servicesavailable to the outside world, andencapsulate their own internal state andactual implementation of the services theyprovide (Fig. 1). Objects only communicateby sending messages to each other.

From a conservative viewpoint, this isnothing more than just packing datastructures and procedures in the same units,and this model can be implemented using aprocedural language. Yes, it is true that thisis “just” such a packing, but precisely, it isnothing less. This paradigm shift then gaverise to a number of what could be calledaccidental abstractions, such as classes –describing the common structure andbehavior of a set of similar objects–,inheritance –defining classes as incrementalvariations and extensions of more basic,abstract definitions–, polymorphism –thepossibility to manipulate different types ofobjects uniformly–, etc.

Figure 1: An object provides a set of servicesand encapsulates i ts internal state andimplementation details.

Page 6: Programming Paradigms and Mind Metaphors: Convergence and ... · Programming Paradigms and Mind Metaphors: Convergence and Cross-fertilization in the Study of Cognition DIEGO COSMELLI1,

COSMELLI ET AL. Biol Res 40, 2007, 503-515508

All these accidental abstractions are, as amatter of fact, very hard to implement usinga procedural language. The shift at theprogramming language level thereforebrings new abstractions at a cost zero forthe programmer; it is the implementor ofthe language processor that bears theincrease of complexity. Programmers canthen enjoy a convenient dedicated syntax toconcisely define objects (Fig. 2), withoutnecessarily knowing how an object-orientedprogram is reduced to a set of machine codeinstructions.

Later on, as experience with theseabstractions and mechanisms grows,higher-level programming idioms andpatterns appear (Gamma et al., 1994). Atypical industrial business application todayeasily has several hundreds of thousandsobjects dwelling within and makes heavyuse of object-oriented idioms and patterns.

Step 2: From Objects to Actors

A further level of abstraction based onobjects is the model of actors, also known asactive objects (Agha, 1986; Briot et al.,1998). This model appeared as a response tothe problem of managing concurrentactivities, in an object-oriented program.

Concurrency refers to the (at least simulated)simultaneous execution of different flows ofcomputation within a program. In thetraditional model of concurrency, objects arepassive entities, and activity is driven bythreads of control (Fig. 3) Birrell, 1989). Aclassic manner of explaining this model isthat of bees (threads) flying around andvisiting flowers (objects). This kind ofconcurrency model is easy to understandprovided there are very few threads, or thatthe coordination between activities is kept toa strict minimum. However, as soon as somecoordination between concurrent activities isneeded, managing this kind of concurrencyis a nightmare. Concurrent programming isnotorious for its intricacies and it is verycommon that most computer sciencegraduates do not get even a simpleconcurrency problem right. The thread-basedconcurrency model clearly diverges from thebiological metaphor of cells: cells are notpassive entities that wait for some thread ofcontrol to activate them and then stopmeanwhile they exchange some chemicalswith the outside world.

The actor model comes as an abstractionwhereby threads and objects are not separateanymore. Instead, an actor is an active objectwith its own activity. The activity of an actorconsists of processing the messages itreceives from the outside world, in additionto its own goals, if any (much like we dealwith our mail every day while pursuing someobjectives of our own). Here an importantshift has taken place: a first degree offunctional autonomy, going beyond theprevious passive encapsulation, is at work.The use of “actor” metaphor to refer to suchconstructs is illustrative of this fact. Indeed,one of the most important determinants ofrecognizing agenthood is the inference ofinner purpose as a consequence ofapparently self-initiated actions on theenvironment (Frith & Frith, 2007).

An actor language gives the linguisticmeans to define such active objects, theway they have to handle the messages theyreceive and emit their own, as well as theirown pro-activity. Again, all the complexityentailed by the actor abstraction (i.e.synchronization matters) are handled by thelanguage processor, not the programmer.

Figure 2: An object-oriented programminglanguage offers dedicated syntax forconveniently defining objects, their state (p, s)and behavior (scale, moveTo, draw).

Page 7: Programming Paradigms and Mind Metaphors: Convergence and ... · Programming Paradigms and Mind Metaphors: Convergence and Cross-fertilization in the Study of Cognition DIEGO COSMELLI1,

509COSMELLI ET AL. Biol Res 40, 2007, 503-515

Step 3: From Actors to Ambient Actors

Considering the peculiarities of themodern computing infrastructure, which ismade up of a variety of mobile devices heldby mobile users, a number of strongchallenges come up for softwaredevelopment: how to deal with a highly-dynamic topology, disconnections, failures,and volatility of resources? Here again, onecan build up an ad-hoc solution wheneverneeded, but at which cost? Ambient-orientedprogramming (AmOP) (Dedecker et al.,2005) proposes to consider these issues asrecurrent and complex enough to addressthem appropriately at the language level.

Another model has therefore beenproposed, called the ambient actor model,which complements the above actor modelwith several characteristics. First andforemost, an ambient actor cannot be blindto its environment, which is dynamicallychanging: it needs to be able to sense andadapt to the ambient. To this end, anambient actor explicitly states what servicesit provides to other actors in the ambient,and what services it requires from theambient. It is also able to know whichrequired services are bound in the currentambient, and when they are not boundanymore (e.g. because an actor was runningon a machine that moved away). Similarly,

Figure 3: Thread-based concurrency with objects: each thread of activity traverses objectsfollowing the flow of computation.

Figure 4: Actor-based concurrency: each actor has its own activity, communication between actorsis asynchronous.

Page 8: Programming Paradigms and Mind Metaphors: Convergence and ... · Programming Paradigms and Mind Metaphors: Convergence and Cross-fertilization in the Study of Cognition DIEGO COSMELLI1,

COSMELLI ET AL. Biol Res 40, 2007, 503-515510

in order to rollback some actions uponfailure, an ambient actor has access to itscommunication history (Fig. 5).

following subsections present threeexamples.

On Computability, Abstractions andReduction

From a computability point of view, mostprogramming languages are equivalent in thesense that they are Turing-complete, that isto say, they can all express the samecomputations (Brainerd & Landweber,1974). Therefore, the abstractions embracedby a given programming language are, inthe end, of no use in terms of computationalpower. It is true that eventually, a programin a high-level language is interpreted(possibly after being compiled) by a deviceor program, called a language processor,that is at most equivalent in computationalpower to a Turing machine.

However, the theoretical argument ofTuring equivalence does not take practicalconsiderations into account (nor does itclaim to), such as efficiency, difficulty, ortime needed to address a particular problemwith a given set of abstractions. Softwareprogramming is an engineering discipline,and as such must respond to criteria offeasibility. If it is true that even very hugesoftware used today could have beenprogrammed in assembly language ordirectly in machine code; however it is notso in practice.

Figure 5: An ambient actor is an actor extendedwith a number of mailboxes: four are used togive access to the communication history(pending messages, processed messages,messages to send, sent messages); four are usedto sense the environment (required services,provided services, services joined, anddisjoined).

A very notable feature of an AmOPlanguage like AmbientTalk (Dedecker etal., 2006), is the provision of a whenconstruct (Fig. 6). This construct makes itpossible to easily specify that when somecondition is fulfilled (e.g. by the ambient),some action should be done. Programminglanguages typically do not have such aconstruct, rather they have an if construct.Although a when construct does not make itpossible to compute something that isimpossible to do without it, it does make itpossible for a non-specialist to express sucha statement. Manually implementing anequivalent of the when construct requiresan in-depth knowledge of concurrencymanagement, in order to avoid any subtleissue that would lead to program errors, andwould be much less convenient to use.

CONVERGING METAPHORS

Apart from the evident inspiration oncells, actors and agents, there are a numberof not so obvious lines of convergencebetween programming paradigm researchand the study of mind and cognition. The

Figure 6: Ambient actors in a programminglanguage: specific syntax is there to declare arequired service, what to do when it becomesavailable and not, to ask for an ambientreference, and to specify actions to performwhen a result becomes available.

Page 9: Programming Paradigms and Mind Metaphors: Convergence and ... · Programming Paradigms and Mind Metaphors: Convergence and Cross-fertilization in the Study of Cognition DIEGO COSMELLI1,

511COSMELLI ET AL. Biol Res 40, 2007, 503-515

Now what happens in biologicalsystems? From an orthodox physicalistperspective biology is a sub-ensemble ofphysics. This means that one should be ableto reduce every biological phenomenon tophysical laws (which do not need to belimited to the ones we know now) (Kim,2000). One could be inclined, drawing fromthe previous discussion, to distinguishtheoretical and practical reducibility: as youtry to program (and therefore understand) apervasive computing system using onlyassembler, imagine trying to study thenervous system of a relatively simpleorganism in terms of atomic interactions. Inother words, while reduction might bepossible in theory, this does not mean it ispractical when trying to understand theworkings of composite complex systems asthese. Two important factors that mightplay a role in this being the case are, on theone hand, the nature of the relationsestablished within such systems, and on theother, the casual efficacy of the systems’organization, whether it is abstraction inprogramming or organismic in biology (fora convergent idea see (Abbott, submitted).The latter is further discussed in the nextsubsection.

Keeping here to the nature of therelations established in complex systems,one could argue that the above question isclose to the problem of statisticalmechanics where a macroscopic coherentbehavior emerges from microscopic randominteractions. The only difference wouldreside in how much more numerous anddiverse its ‘parts’ are so that ourunderstanding of it is hampered only byresolving power. Indeed, mathematicalmodels are quite successful in predictingthe behavior of, say, a volume of a gasbased on microscopic effects. However,what makes the difference is that both innervous systems and pervasive computingsystems, the degree of interaction and long-range interrelation is radically different.This is notoriously exemplified in theappearance of effective causal loops (whatyou see/request is dependent on how youmove/provide and how you move/provide isdependent on what you see/request). Theseelements of circularity and self reference

are absent in the gas or mechanical systems,but seem essential for the emergence ofbehaviors that are considered cognitive(Bell, 1999; Thompson & Varela, 2001).

Domains of Interaction and RegionalOntologies

Living systems sustain a (paradoxically)insubstantial identity in time. How they doso is an open question, but it appears thatmaintaining global identity depends tosome extent on restricting the behavioralpossibilities of the parts (Haken, 1983;Thompson, 2007). The degrees of freedomof the ensemble of macromolecules in themost humble bacteria is astronomical.Maintaining organization through thecontinuous change in components entails areduction of degrees of freedom of theconstituents (a paradigmatic phenomenon inhighly interconnected complex systems, seesection “Delocalizing the process:connectionism”). Importantly, as long asthe system has to be kept organized byitself, a domain of behavioral interaction(i.e. of viability) for the ensuing whole willexist (Maturana & Varela, 1973). In thissense, biological organization is causallyeffective in the appearance of a world to beknown.

Self-organization through enslavement istherefore at the basis of the appearance ofwhat we will call regional ontologies.Regional ontologies, in a general sense, aredomains of meaning which depend on theparticular organization of the making-sensesystem8. In biology it is common to findsuch domains, or cognitive horizons, acrossmultiple levels. The ‘world’ of a cell is notcommensurable with that of the entireanimal it is part of, however interdependentthey might be. Nevertheless, both ‘worlds’share the structural feature of beingrelevant for the cell or the animal. Asstressed in the embodied perspectives both

8 This notion of regional ontologies is comparable to thenotion of cognitive domains [Maturana & Varela(1973); Varela et al. (1997)], and similar to theGibsonian approach [Gibson (1979)]. By stressing boththe “regional” and the “ontological” we wish tohighlight i ts local validity and world-enactivestructure.

Page 10: Programming Paradigms and Mind Metaphors: Convergence and ... · Programming Paradigms and Mind Metaphors: Convergence and Cross-fertilization in the Study of Cognition DIEGO COSMELLI1,

COSMELLI ET AL. Biol Res 40, 2007, 503-515512

units can be considered as establishing adomain of concern due to their particularorganization and situation. They make senseof the environment they encounter. In avery concrete way, they constitute aperspective in the world9.

As we have seen, a similar processhappens in programming paradigmsresearch through abstractions. Abstractionsconstrain the degrees of freedom ofcomputational entities, upon which certainrules are imposed. Most importantly,successive abstractions through objects,actors, etc. enable successive domains ofpractical competence that were previouslyimpossible, from a practitioner’sperspective. Although such domains ofinteraction are stil l far from beingmeanningful in the strong sense describedabove, several very explicit primitives arerecognizable: Object-oriented programming(Figure 1) enables a simple encapsulationof data and behavior that already facilitatescollective functional interaction, but isradically passive; actors and active objects(Figure 4) incorporate an activity into theobjects, and a certain level of self-motivatedaction in addition to processing requestsand offering services; ambient actors(Figure 5) push further towards autonomousbehavior by adapting to given environmentsthrough basic ‘sensing’10.

What this suggests is that abstractions inprogramming paradigms have similarconsequences to those of differentorganizations in biological, natural systems;

they bring forth quasi-cognitive domainsthat are structurally coupled to theimplementation of the abstraction.

Evolutionary Dynamics

As we have seen, both in natural andcomputational systems, a certainorganization is to be actively maintained inthe face of dynamical environmentalchallenge. As both environments realizesome level of reproduction (generations) ofparent organizations, both systems arecandidates for evolutionary dynamics.

We have seen how, in the rapid andunpredictable unfolding of thecomputational environment, abstractionsaccomplish efficient solutions. In manycases these are local, specific solutions toproblems that arise precisely because ofrecently acquired possibilit ies ofinteraction. The latter are, in turn,dependent on previous abstractions, and soon. Moreover, abstractions usually have asa consequence novel possibilities that werenot pursued when attempting to solve theinitial problem. This is strongly reminiscentof an evolutionary drift (Maturana &Varela, 1984; Maturana & Mpodozis,2000).

The evolutionary setting in programmingparadigm research is obviously not that oforganisms in natural ecological contexts.Yet it is notable that in the very shortexistence of the discipline of programmingparadigms, already a trend towardsincreasing autonomy is clearly evident(section “Programming abstractions: fromprocedures to ambient actors”). Because ofthe nature of the problem posed to theprogrammer, this suggests, conversely, thatautonomous organization might be an aptsolution to the problem of dealing andmaking sense out of unpredictable, highlyinteractive contexts in effective ways. Thisnecessarily falls back on ourconceptualization of cognitive systemslending a ‘plausibility’ support to the mainunderlying assumption of embodied andenactive approaches to cognition (seesection “In flesh and blood: the embodiedmind”). Under this perspective theworkings of the nervous system (or any

9 The same goes for different animals. While we have athree-pigment visual system, the pigeon has a four-pigment based one [Thompson et al. (1992)]. It is notas if pigeons see more colors, it is rather that theircolor world probably has a different meaning for themthan it has for us. This is, at least in part, because fourdimensions are needed to specify their color spaces(while only three are needed for human beings, namelyhue, saturation and brightness). Regional ontologiesare not mappable unto one another, even if overlappingexists (which is obviously the case since actualexperiments on the pigeon visual system can be doneby human beings).

10 Interestingly, the capacity to deal with the notion of‘when’ in these software agents can also be seen as aprimitive of a flexible, dynamical temporality goingbeyond the dichotomous ‘if’. It is notable that thephilosophical phenomenological tradition considerstemporality to be fundamentally constitutive ofmeaningful experience (Cosmelli & Thompson, 2007).

Page 11: Programming Paradigms and Mind Metaphors: Convergence and ... · Programming Paradigms and Mind Metaphors: Convergence and Cross-fertilization in the Study of Cognition DIEGO COSMELLI1,

513COSMELLI ET AL. Biol Res 40, 2007, 503-515

subsystem) has to be understood first andforemost in terms of how it enables, orfacilitates, autonomous behavior and not ashow it captures a pre-given world, asseveral researchers have insistently pointedout (Maturana, 1970b; Steels & Brooks,1995; Varela, 1979; Thompson, 2007).

CONCLUSIONS AND PERSPECTIVES

The guiding metaphorical relation we havedeveloped links abstractions inprogramming paradigms and organizationin natural, biological systems. The threeexamples we have put forth are intended toillustrate this convergence.

But what difference could thisconvergence make to our conceptualizationof cognitive systems? Or in other words, inwhat sense could this rapprochement helpus in advancing our understanding of whatcognition might be? We believe there areboth theoretical and empirical consequencesof the exercise.

The first example (section “Oncomputability, abstractions and reduction”)supports the idea that theoretical reductionto bits and pieces is not the only way ofunderstanding something, and that thismight be particularly important forcognitive systems. As programmingparadigms show, sometimes it might benecessary to go in the other direction sothat system-level behavior and organizationis brought into focus. If this is evident formodestly complex structures such aspervasive computing systems, one couldcontend that it will be all the more criticalwhen the myriad of effective causal loopspresent in living beings is considered.Importantly, i t is through causalsensorimotor loops that perception seems tobe sustained in such systems (Noe, 2004).

On a more implementation-related level,the question of degrees of freedomreduction seems quite pertinent. Systemsabound, from lasers to tribes, where thedegrees of freedom of the components arerestricted for the consistency of the whole.What is interesting is that in programmingparadigms this takes place throughabstractions which, as we have seen, enable

novel possibilities of interaction. This isone of the main tenets of biologicalsystems, whereby alternative organizationsbring forth the notorious variety ofcognitive horizons found in nature. Thisissue is strongly interrelated with the lastexample where we pointed out the apparentevolutionary dynamics in programmingparadigms. It is obviously only thebeginning of this discipline, so time willtell. Yet, given the type of situationprogrammers and programs have to copewith, this ‘natural’ tendency towardsautonomy might be relevant to consider as amatter of fact.

Computational cognitivism has deeplypermeated our way of thinking about whatit is to perceive and act on-and in-a world;conceptualization in terms of input ofinformation, processing, encoding, storing,retrieving and output of responses iscommonplace when dealing with cognitivesystems. But computation is much morethan computational cognitivism as thedevelopment of programming paradigmsshows. Fishing in the metaphorical pool,what seems to come out is how certain typeof organizations make novel behavioraldomains available. This suggests aplausible path to the emergence ofmeaningful worlds and therefore, cognition.

ACKNOWLEDGEMENTS

DC acknowledges support from the PBCT/CONICYT Sensory Neuroscience Ring,ACT-45, and partial funding byFONDECYT Postdoctoral Project 3060094.JSA is partially supported by the Centro deEstudios Avanzados en Educación PBCT/CONICYT and by FONDEF ProjectD06I1023. ET acknowledges partial fundingfrom FONDECYT Project 11060493.

REFERENCES

ABBOTT R (Submitted). Reductionism, emergence andlevels of abstractions. Communications of the ACM

AGHA G (1986) ACTORS: a model of concurrentcomputation in distributed systems. The MIT Press:Cambridge, MA

ALEKSANDER I (2005) Machine consciousness. Progressin Brain Research 150: 99-108

Page 12: Programming Paradigms and Mind Metaphors: Convergence and ... · Programming Paradigms and Mind Metaphors: Convergence and Cross-fertilization in the Study of Cognition DIEGO COSMELLI1,

COSMELLI ET AL. Biol Res 40, 2007, 503-515514

ASHBY WR (1952) Design for a brain: The origin ofadaptive behavior. London: Chapman and Hall

BAARS B (2002) The conscious access hypothesis: originsand recent evidence. Trends Cogn Sci 6: 47-52

BELL A (1999) Levels and loops: The future of artificialintelligence and neuroscience. Philos Trans R SocLond B Biol Sci 354: 2013-20

BIRRELL A (1989) An introduction to programming withthreads (Technical Report No 35). Digital SystemsResearch Center

BONABEAU E, DORIGO M, & THERAULAZ, G (1999)Swarm intelligence - from natural to artificial systems.Oxford University Press

BRAINERD WS & LANDWEBER LH (1974) Theory ofcomputation. Wiley & Sons

BRIOT J-P, GUERRAOUI R, & LOHR K-P (1998)Concurrency and distribution in object-orientedprogramming. ACM Computing Surveys 30: 291-329

BURTSEV M & TURCHIN P (2006) Evolution ofcooperative strategies from first principles. Nature 440:1041-1044

CISEK P (1999) Beyond the computer metaphor:Behaviour as interaction. Journal of ConsciousnessStudies 6: 125-142

CLARK A (1997) Being there: Putting brain, body andworld together again. MIT Press

CLEEREMANS A (2005) Computational correlates ofconsciousness. Progress in Brain Research 150: 81-98

COSMELLI D & THOMPSON E (2007) Mountains andvalleys: Human experience and the f low ofconsciousness. Consciousness and Cognition, doi:10.1016/j.concog.2007.06.013, In Press.

COSMELLI D & THOMPSON E (In Press) Enaction:Towards a new paradigm for cognitive science. In J.Stewart, O. GAPENNE, & E. DI PAOLO (Eds.), (chap.Embodiment or envatment? Reflections on the bodilybasis of consciousness.). MIT Press

DEDECKER J, MOSTINCKX S, VAN CUTSEM T, DEMEUTER W, & D’HONDT T (2005) Ambient-orientedprogramming. In Oopsla 2005 onward! track.

DEDECKER J, VAN CUTSEM T, MOSTINCKX S,D’HONDT T & DE MEUTER, W (2006) Ambient-oriented programming in AmbientTalk. In D. Thomas(Ed.), Proceedings of the 20th European conference onobject-oriented programming (ecoop 2006) (p. 230-254) Nantes, France: Springer-Verlag

DENNETT D (1991) Consciousness explained. Boston:Back Bay Books

DUPUY J (1999) Aux origines des sciences cognitives.Paris: La Découverte

FELDMAN J & BALLARD D (1982) Connectionistmodels and their properties. Cognitive Science 6: 205-254

FERNANDEZ-BALLESTER G & SERRANO L (2006)Prediction of protein-protein interaction based onstructure. Methods Mol Biol 340: 207-34

FODOR J (1979) Representations; essays on the foundationof cognitive science. UK: Harvester Press

FREEMAN W (1999) Consciousness, intentionality, andcausality. Journal of Consciousness Studies 6: 143-172

FRITH C & FRITH U (2007) Social cognition in humans.Current Biology 17: R724-R732

FROMHERZ P (2006) Three levels of neuroelectronicinterfacing: silicon chips with ion channels, nervecells, and brain tissue. Annals of the New YorkAcademy of Sciences, 1093: 143-160

GABRIEL R P & GOLDMAN R (2006). Conscientioussoftware. In Proceedings of the 21st ACM SIGPLANconference on object-oriented programming systems,languages and applications (oopsla 2006) (pp. 433-

450). Portland, Oregon, USA: ACM Press (ACMSIGPLAN Notices, 41(10))

GAMMA E, HELM R, JOHNSON R & VLISSIDES J(1994) Design patterns: Elements of reusable object-oriented software. Addison-Wesley

GELDER T VAN (1998) The dynamical hypothesis incognitive science. Behavioral and Brain Sciences 21:1-14

GENDLIN E (1997) Experiencing and the creation ofmeaning: A philosophical and psychological approachto the subjective. Boston: Northwestern UniversityPress

GIBSON J (1979) The ecological approach to visualperception. Boston: Houghton Mifflin

HAKEN H (1983) Synergetics, an introduction:Nonequilibrium phase transitions and self-organizationin physics, chemistry, and biology (3rd ed.). NewYork: Springer-Verlag

HAYES B (2003) The post-OOP paradigm. AmericanScientist 91: 106-110

HORST S (2005). The computational theory of mind. TheStanford Encyclopedia of Philosophy, Edward N. Zalta(ed.)

JONAS H (2001(1979)) The phenomenon of life: Towardsa philosophical biology. Northwestern University Press

KANDEL E, SCHWARTZ J & JESSELL, T (2000).Principles of neural science (Fourth ed.). Mc Graw-Hill.

KAY AC (1993) The early history of Smalltalk. ACMSIGPLAN Notices 28: 69-95

KIM J (2000) Mind in a physical world: an essay on themind-body problem and mental causation. Cambridge,MA: The MIT Press

MATURANA H (1970a) Biology of cognition (Tech.Rep.). Urbana IL: University of Illinois: BiologicalComputer Laboratory Research Report BCL 9.0

MATURANA H (1970b) Cognition: A multiple view. In P.Garvin (Ed.), (p. 3-23). New York/Washington

MATURANA H & MPODOZIS J (2000). The origin ofspecies by means of natural drift. Revista Chilena deHistoria Natural 73: 261-310

MATURANA H & VARELA F (1973) De máquinas yseres vivos: Una teoría sobre la organización biológica.Santiago de Chile: Editorial Universitaria

MATURANA H & VARELA F (1984) El árbol delconocimiento. Santiago de Chile: EditorialUniversitaria

MCDERMOTT D (2007) The Cambridge Handbook ofConsciousness. In M M P Zelazo & E Thompson(Eds.), (p. 117-150). Cambridge University Press

NIEDERMEYER E (2005) Electroencephalography: Basicprinciples, clinical applications, and related fields. In ENiedermeyer & F L da Silva (Eds.), (p. 1-15).Philadelphia, USA: Lippincott Williams and Wilkins

NOE A (2004) Action in perception. MIT PressPRIGOGINE I & NICOLIS G (1989) Exploring

complexity: An introduction. W.H. Freeman &Company

PUTNAM H (1975) Mind, language and reali ty.philosophical papers (Vol. 2). Cambridge UniversityPress

SEARLE J (1980) Minds, brains, and programs. Behavioraland Brain Sciences, 3, 417-458

SHEWMON A (2001) The brain and somatic integration:insights into the standard biological rationale forequating “brain death” with death. The Journal ofMedicine and Philosophy 26: 457-78

SOTO-ANDRADE J (2007) Metaphors and cognitive stylesin the teaching-learning of mathematics. In Proc.CERME 5 Fifth conference of the European society forresearch in mathematics education), lrnaca, Cyprus

Page 13: Programming Paradigms and Mind Metaphors: Convergence and ... · Programming Paradigms and Mind Metaphors: Convergence and Cross-fertilization in the Study of Cognition DIEGO COSMELLI1,

515COSMELLI ET AL. Biol Res 40, 2007, 503-515

STEELS L & BROOKS R (1995) The artificial life route toartificial intelligence: Building embodied situatedagents. (L. Steels & R. Brooks, Eds.). Hillsdale, NJ:Lawrence Erlbaum Associates, Inc

STEWARD J & MOSSIO M (n.d.). Is life computable?(Personal Communication)

SUN R & FRANKLIN S (2007) The Cambridge Handbookof Consciousness. In M M P Zelazo & E Thompson(Eds.), (p. 151-174). Cambridge University Press

The Software Engineering Institute (SEI)(2006). Thesoftware challenge of the future: Ultra-large scalesystems

THOMPSON E (1997) Symbol grounding: a bridge fromartificial life, to artificial intelligence. Brain andCognition 34: 48-71

THOMPSON E (2004) Life and mind: From autopoiesis toneurophenomenology. a tribute to Francisco Varela.Phenomenology and the Cognitive Sciences 3: 381-398

THOMPSON E (2007) Mind in l ife: Biology,phenomenology and the sciences of mind. HarvardUniversity Press

THOMPSON E, PALACIOS A & VARELA F (1992) Waysof coloring: Comparative color vision as a case studyin cognitive science. Behavioral Brain Sciences 15: 1-45

THOMPSON E & VARELA F (2001) Radical embodiment:Neural dynamics and consciousness. Trends inCognitive Science 5: 418-425

VARELA F (1979) Principles of biological autonomy. NewYork: Elsevier North Holland

VARELA J F & BOURGINE P (Eds.) (1992) Towards apractice of autonomous systems. Cambridge: The MITPress

VARELA F, MATURANA H & URIBE R (1974)Autopoiesis: the organization of living systems, itscharacterization and a model. Biosystems 5: 187-196

VARELA F, THOMPSON E & ROSCH E (1997) Theembodied mind: Cognit ive science and humanexperience. Cambridge, MA: The MIT Press

WOLFRAM S (1984) Computation theory of cellularautomata. Communications in Mathematical Physics96: 15-57

Page 14: Programming Paradigms and Mind Metaphors: Convergence and ... · Programming Paradigms and Mind Metaphors: Convergence and Cross-fertilization in the Study of Cognition DIEGO COSMELLI1,

COSMELLI ET AL. Biol Res 40, 2007, 503-515516