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 [2008/08/11 20:30] – added tvcutsemstart [2010/08/04 12:08] tvcutsem
Line 1: Line 1:
 ~~NOTOC~~ ~~NOTOC~~
  
-Welcome to our website on Ambient-Oriented Programminga novel programming paradigm geared towards promoting and programming spontaneous interactions between different mobile and/or embedded devices.+Ambient-Oriented Programming is a novel programming paradigm for programming spontaneous interactions between mobile and/or embedded devices.
  
-{{:at:atlogo.jpg?80  |:at:atlogo.jpg}} This webpage is also the home of AmbientTalk, our experimental programming language to develop applications for software running on mobile ad hoc networks. The current implementation of AmbientTalk is relatively stable. The best way to get started is to [[at:download|download]] the language and to read the [[at:tutorial:tutorial|tutorial]].+{{: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>
Line 12: Line 12:
 ====== What is AmbientTalk about? ====== ====== What is AmbientTalk about? ======
  
-Ambient-Oriented programming is a programming paradigm whose properties are derived from the characteristics of hardware platforms for mobile computing. Mobile hardware devices are often provided with wireless networks facilities, allowing them to engage in collaboration with their environment. However, the autonomous nature of these devices as well as the volatile connections over their wireless infrastructure has its repercussions on the software that employs them. The basic assumption of the Ambient-Oriented Programming paradigm is that languages should incorporate possible network failures at the heart of their programming model.+Ambient-Oriented programming is a programming paradigm whose properties are derived from the characteristics of hardware platforms for mobile computing. Mobile hardware devices are often provided with wireless networks facilities, allowing them to engage in collaboration with nearby devices in their environment. However, the autonomous nature of these devices as well as the volatile connections over their wireless infrastructure has its repercussions on the software that employs them. The basic assumption of the Ambient-Oriented Programming paradigm is that languages should incorporate possible network failures at the heart of their programming model.
  
 From this observation, several characteristics of programming languages can be derived. Our own experimental language, AmbientTalk, differs from most traditional languages because: From this observation, several characteristics of programming languages can be derived. Our own experimental language, AmbientTalk, differs from most traditional languages because:
   * It employs a purely //event-driven// concurrency framework, founded on actors.   * It employs a purely //event-driven// concurrency framework, founded on actors.
-  * 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 abstract over 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. More importantlythe kernel language is reflective and hence extensible from within the language itself.+  * It features a functional, object-oriented kernel language built upon the principles of prototype-based programming (based on SchemeSelf and Smalltalk). The kernel language is reflective and hence extensible from within the language itself.
  
 Check out the [[at:introduction|introduction]] to AmbientTalk for a hands-on example showing you the benefits in actual code. Alternatively, glance at the [[at:byexample|key expressions]] in the language to get a 60-second overview of the language's design and intents. Check out the [[at:introduction|introduction]] to AmbientTalk for a hands-on example showing you the benefits in actual code. Alternatively, glance at the [[at:byexample|key expressions]] in the language to get a 60-second overview of the language's design and intents.
  
-AmbientTalk is not our only research artifact. 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.+You can also watch the following screencast where we show how to implement a simple echo server for mobile ad hoc networks. We introduce AmbientTalk's support for peer-to-peer service discovery, asynchronous messages, futures and how remote object references are resilient to network failures by default: 
 + 
 +<html> 
 +<object width="300" height="193"><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="300" height="193"></embed></object> 
 +</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'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://prog.vub.ac.be/mailman/listinfo/ambienttalk|AmbientTalk mailing list]], for questions and general information on AmbientTalk: {{:1af3bb.gif?220x18}}. 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}}. If you want to contact any one of us personally, please see the [[people|People pages]] for personal contact details.
  
 ====== Further Reading ====== ====== Further Reading ======
Line 35: Line 43:
 ====== Research Topics ====== ====== Research Topics ======
   * [[research:ambientrefs|Ambient References]]   * [[research:ambientrefs|Ambient References]]
-  * [[research:recap|Reactive Context-Aware Computing]]+  * [[research:rp|Reactive Programming]] 
 +  * [[research:recap|Reactive Context-Aware Programming]]
   * [[research:context|Context-Dependent Behaviour Adaptations]]   * [[research:context|Context-Dependent Behaviour Adaptations]]
   * [[research:dgc|Distributed Garbage Collection]]   * [[research:dgc|Distributed Garbage Collection]]
 +  * [[research:rfid|Mobile RFID-enabled Applications]]
   * [[research:modelling|Modelling for Ambient Intelligence]]   * [[research:modelling|Modelling for Ambient Intelligence]]
   * [[research:biomodels|Biologically-Inspired Programming Models]]   * [[research:biomodels|Biologically-Inspired Programming Models]]
start.txt · Last modified: 2021/09/24 10:20 by elisag