User Tools

Site Tools


start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
start [2010/08/05 15:51] – shortened tvcutsemstart [2010/10/21 13:30] elisag
Line 1: Line 1:
 ~~NOTOC~~ ~~NOTOC~~
  
-Ambient-Oriented Programming is a programming paradigm for programming peer-to-peer interactions between mobile and/or embedded devices.+Ambient-Oriented Programming is a paradigm for programming peer-to-peer interactions between mobile and/or embedded devices.
  
-{{:at:atlogo.jpg?80  |:at:atlogo.jpg}} This page is also the home of AmbientTalk, our experimental programming language to develop applications for software running on mobile ad hoc networks. To get started, you can read the [[at:tutorial:tutorial|tutorial]] or [[http://code.google.com/p/ambienttalk/wiki/EssenceOfAmbientTalk|the essence of AmbientTalk in 10 steps]]. To experiment with the language, you can download [[http://code.google.com/p/ambienttalk/wiki/EclipsePlugin|IdeAT, our Eclipse plug-in for AmbientTalk]] or simply download a stand-alone version of [[at:download|the interpreter]] and develop code using your favorite text editor (an [[http://soft.vub.ac.be/pipermail/ambienttalk/2010-July/000043.html|Emacs mode]] and a [[http://soft.vub.ac.be/amop/downloads/at2textmate.zip|TextMate bundle]] are available).+[[http://ambienttalk.googlecode.com|{{:at:atlogo.jpg?80 }}]] This page is also the home of AmbientTalk, our experimental programming language to develop applications for software running on mobile ad hoc networks. To get started, you can read the [[at:tutorial:tutorial|tutorial]] or [[http://code.google.com/p/ambienttalk/wiki/EssenceOfAmbientTalk|the essence of AmbientTalk in 10 steps]]. To experiment with the language, you can download [[http://code.google.com/p/ambienttalk/wiki/EclipsePlugin|IdeAT, our Eclipse plug-in for AmbientTalk]] or simply download a stand-alone version of [[at:download|the interpreter]] and develop code using your favorite text editor (an [[http://soft.vub.ac.be/pipermail/ambienttalk/2010-July/000043.html|Emacs mode]] and a [[http://soft.vub.ac.be/amop/downloads/at2textmate.zip|TextMate bundle]] are available).
  
 <note> <note>
Line 12: Line 12:
 ====== What is AmbientTalk about? ====== ====== What is AmbientTalk about? ======
  
-Ambient-Oriented programming is a paradigm geared towards mobile computing. Mobile hardware (such as cell phones) are mostly equipped with wireless networking, allowing them to collaborate with nearby devices in their environment. However, because wireless network links are volatile (basically: when devices move out of wireless range, the connection drops), network failures occur much more frequently than in traditional networks. The basic assumption of the Ambient-Oriented Programming paradigm is that languages should incorporate network failures at the heart of their programming model, and not treat them as "exceptions".+Ambient-Oriented programming is a paradigm geared towards mobile computing. Mobile hardware (such as cell phones) is mostly equipped with wireless networking, allowing it to collaborate with nearby devices in its environment. However, because wireless network links are volatile (basically: when devices move out of wireless range, the connection drops), network failures occur much more frequently than in traditional networks. The basic assumption of the Ambient-Oriented Programming paradigm is that languages should incorporate network failures at the heart of their programming model, and not treat them as "exceptions".
  
 Our own experimental language, AmbientTalk, differs from most traditional languages because: Our own experimental language, AmbientTalk, differs from most traditional languages because:
Line 18: Line 18:
   * It abandons the RPC abstraction in favor of //asynchronous, non-blocking// message passing. Because the system automatically buffers such messages while the receiver of the message is disconnected, the programmer can make abstraction from temporary network failures //by default//.   * It abandons the RPC abstraction in favor of //asynchronous, non-blocking// message passing. Because the system automatically buffers such messages while the receiver of the message is disconnected, the programmer can make abstraction from temporary network failures //by default//.
   * It has built-in programming language constructs for objects to discover one another in the local ad hoc network. Peer-to-peer //service discovery// is built into the language.   * It has built-in programming language constructs for objects to discover one another in the local ad hoc network. Peer-to-peer //service discovery// is built into the language.
-  * It features a dynamic OO kernel language built upon the principles of prototype-based programming (based on Scheme, Self and Smalltalk). The kernel language supports reflection using [http://bracha.org/mirrors.pdf mirrors], which provide access to an extensive metaobject protocol, making the language extensible from within itself.+  * It features a dynamic OO kernel language built upon the principles of prototype-based programming (based on Scheme, Self and Smalltalk). The kernel language supports reflection using [[http://bracha.org/mirrors.pdf|mirrors]], which provide access to an extensive metaobject protocol, making the language extensible from within itself.
   * The language syntax derives primarily from the 'curly brace' family of languages, but it mixes in the keyworded messaging syntax from Smalltalk as well. This, together with AmbientTalk's lightweight block syntax, enables you to easily build your own control structures. Like many other dynamic and functional languages, AmbientTalk embraces the use of blocks to express higher-order, functional patterns.   * The language syntax derives primarily from the 'curly brace' family of languages, but it mixes in the keyworded messaging syntax from Smalltalk as well. This, together with AmbientTalk's lightweight block syntax, enables you to easily build your own control structures. Like many other dynamic and functional languages, AmbientTalk embraces the use of blocks to express higher-order, functional patterns.
   * The current implementation of AmbientTalk embraces the JVM as a platform. It's easy for AmbientTalk programs to use Java libraries, and it's easy for Java objects to use !AmbientTalk as an embedded scripting language. This interaction is safe: even when AmbientTalk objects are "exposed" to the JVM, JVM threads [[http://soft.vub.ac.be/Publications/2007/vub-prog-tr-07-15.pdf|cannot violate]] the concurrency constraints of AmbientTalk's actor model.   * The current implementation of AmbientTalk embraces the JVM as a platform. It's easy for AmbientTalk programs to use Java libraries, and it's easy for Java objects to use !AmbientTalk as an embedded scripting language. This interaction is safe: even when AmbientTalk objects are "exposed" to the JVM, JVM threads [[http://soft.vub.ac.be/Publications/2007/vub-prog-tr-07-15.pdf|cannot violate]] the concurrency constraints of AmbientTalk's actor model.
Line 52: Line 52:
   * [[research:modelling|Modelling for Ambient Intelligence]]   * [[research:modelling|Modelling for Ambient Intelligence]]
   * [[research:biomodels|Biologically-Inspired Programming Models]]   * [[research:biomodels|Biologically-Inspired Programming Models]]
 +  * [[research: tuples | Tuple Space-based Abstractions]]
start.txt · Last modified: 2021/09/24 10:20 by elisag