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
start [2010/08/05 15:51] – * tvcutsemstart [2025/06/19 16:54] (current) elisag
Line 1: Line 1:
 ~~NOTOC~~ ~~NOTOC~~
  
-Ambient-Oriented Programming is a paradigm for programming peer-to-peer interactions between mobile and/or embedded devices. +[[http://ambienttalk.googlecode.com|{{:at:fixed_atlogo.png?80 }}]] Ambient-Oriented Programming is a paradigm for programming peer-to-peer mobile applications. This page is also the home of AmbientTalk, our research programming language for mobile peer-to-peer applications.
- +
-{{: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).+
  
 <note> <note>
-AmbientTalk is now [[http://code.google.com/p/ambienttalk|open-sourced]] on Google Code under an [[Wp>MIT_License|MIT License]]! + 
-[[http://code.google.com/p/ambienttalk|{{ http://code.google.com/hosting/images/code_sm.png?150 }}]]+AmbientTalk is [[https://gitlab.soft.vub.ac.be/ambienttalk/ambienttalk/wikis/home |open-sourced]] on GitLab under an [[Wp>MIT_License|MIT License]]!  
 + 
 +[[https://gitlab.soft.vub.ac.be/ambienttalk/ambienttalk/wikis/home|{{ :at:gitlab.png?150 }}]]  
 </note> </note>
 +
 +  * Read the [[at:tutorial:tutorial|tutorial]] or [[http://code.google.com/p/ambienttalk/wiki/EssenceOfAmbientTalk|the essence of AmbientTalk in 10 steps]].
 +  * Start programming with our [[https://plugins.jetbrains.com/plugin/17635-ambienttalk | Intellij IDEA plugin]] for AmbientTalk. Note that the plugin already includes the AmbientTalk standard library.
 +   * You can build your own AmbientTalk distribution by downloading the different source code project from gitlab [[https://gitlab.soft.vub.ac.be/ambienttalk/ambienttalk-monorepo |here]].
  
 ====== What is AmbientTalk about? ====== ====== What is AmbientTalk about? ======
Line 18: Line 23:
   * 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 27: Line 32:
  
 <html> <html>
-<object width="450" height="278"><param name="movie" value="http://www.youtube.com/v/4uCb218Cw64&amp;hl=nl_NL&amp;fs=1?color1=0x234900&amp;color2=0x4e9e00&amp;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/4uCb218Cw64&amp;hl=nl_NL&amp;fs=1?color1=0x234900&amp;color2=0x4e9e00&amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="450" height="278"></embed></object>+<object width="450" height="278"><param name="movie" value="https://www.youtube.com/v/4uCb218Cw64&amp;hl=nl_NL&amp;fs=1?color1=0x234900&amp;color2=0x4e9e00&amp;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="https://www.youtube.com/v/4uCb218Cw64&amp;hl=nl_NL&amp;fs=1?color1=0x234900&amp;color2=0x4e9e00&amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="450" height="278"></embed></object>
 </html> </html>
  
-AmbientTalk is not our only research artifact. We have ported the ideas of Ambient-oriented Programming to Scheme, leading to the [[ischeme:ischeme]] language. There is also [[crime:introduction|CRIME]], a data-driven programming language which explores the logic programming paradigm to tackle similar coordination issues in mobile ad hoc networks.+AmbientTalk is not our only research artifact. We have ported the ideas of Ambient-oriented Programming to Scheme, leading to the [[ischeme:ischeme]] language, and JavaScript. There is also [[crime:introduction|CRIME]], a data-driven programming language which explores the logic programming paradigm to tackle similar coordination issues in mobile ad hoc networks.
  
 AmbientTalk's [[http://soft.vub.ac.be/Publications/2007/vub-prog-tr-07-16.pdf|mirages]] have inspired the development of [[http://wiki.ecmascript.org/doku.php?id=harmony:proxies|proxies]] in [[http://www.youtube.com/watch?v=A1R8KGKkDjU|ECMAScript harmony]]. AmbientTalk's [[http://soft.vub.ac.be/Publications/2007/vub-prog-tr-07-16.pdf|mirages]] have inspired the development of [[http://wiki.ecmascript.org/doku.php?id=harmony:proxies|proxies]] in [[http://www.youtube.com/watch?v=A1R8KGKkDjU|ECMAScript harmony]].
  
 ====== Contact ====== ====== Contact ======
-The [[http://soft.vub.ac.be/mailman/listinfo/ambienttalk|AmbientTalk mailing list]], for questions and general information on AmbientTalk: {{:listadress.gif}}. If you want to contact any one of us personally, please see the [[people|People pages]] for personal contact details.+The [[http://soft.vub.ac.be/mailman/listinfo/ambienttalk|AmbientTalk mailing list]], for questions and general information on AmbientTalk: {{:listadress.gif}}.  
  
 ====== Further Reading ====== ====== Further Reading ======
  
-If you're interested in the Ambient-oriented Programming paradigm in general, check out the [[research:papers|papers on AmOP]] page. The seminal [[http://prog.vub.ac.be/Publications/2005/vub-prog-tr-05-10.pdf|OOPSLA2005 Onward! paper]] pretty much sums up our earliest musings on AmOP. A year laterat [[http://prog.vub.ac.be/Publications/2006/vub-prog-tr-06-11.pdf|ECOOP2006]], we refined these ideas and applied them to our first AmbientTalk prototype.+If you're interested in the Ambient-oriented Programming paradigm in general, check out the [[research:papers|papers on AmOP]] page. The seminal [[http://prog.vub.ac.be/Publications/2005/vub-prog-tr-05-10.pdf|OOPSLA2005 Onward! paper]] pretty much sums up our earliest musings on AmOP.  
 + 
 + 
 +If you're interested in the AmbientTalk programming languagecheck out the [[research:atpapers|papers on AmbientTalk]] page. The [[http://prog.vub.ac.be/Publications/2006/vub-prog-tr-06-11.pdf|ECOOP2006 paper]] is the first paper describing AmbientTalk in-depth. Howeverin mid 2006 the language was extensively revised giving rise to AmbientTalk/2. While both languages have an actor-based model of concurrency and feature abstractions for service discovery, AmbientTalk/2 features event loop concurrency model and a more modular and stratified meta-level programming abstractions.  
 + 
 +Since 2007 AmbientTalk refers to AmbientTalk/2 and Dedecker's original AmbientTalk is no longer in use. A good starting point for reading about the current AmbientTalk language is the [[http://prog.vub.ac.be/Publications/2007/vub-prog-tr-07-17.pdf|SCCC2007 paper]].
  
-If you're interested in the AmbientTalk programming languagecheck out the [[research:atpapers|papers on AmbientTalk]] page. The [[http://prog.vub.ac.be/Publications/2006/vub-prog-tr-06-11.pdf|ECOOP2006 paper]] is the first paper describing AmbientTalk in-depth. However, since mid-2006, the language has been extensively revised. A good starting point for reading about the revised language is the [[http://prog.vub.ac.be/Publications/2007/vub-prog-tr-07-17.pdf|SCCC2007 paper]].+Since 2014, AmbientTalk has been actively used mainly as an educational tool to introduce master level students to concepts in concurrency and distribution at the Computer Science programs of the VUB.
  
-====== Research Topics ====== 
-  * [[research:ambientrefs|Ambient References]] 
-  * [[research:rp|Reactive Programming]] 
-  * [[research:recap|Reactive Context-Aware Programming]] 
-  * [[research:context|Context-Dependent Behaviour Adaptations]] 
-  * [[research:dgc|Distributed Garbage Collection]] 
-  * [[research:rfid|Mobile RFID-enabled Applications]] 
-  * [[research:modelling|Modelling for Ambient Intelligence]] 
-  * [[research:biomodels|Biologically-Inspired Programming Models]] 
start.1281016313.txt.gz · Last modified: 2010/08/05 15:54 (external edit)