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 [2007/05/02 10:00] – * tvcutsemstart [2010/07/15 11:44] tvcutsem
Line 1: Line 1:
-====== Welcome to Ambient-Oriented Programming ====== +~~NOTOC~~
-Welcome to our website on Ambient-Oriented Programming, an exciting new paradigm of computing geared towards promoting and programming spontaneous interactions between different mobile and/or embedded devices.+
  
-This webpage is also the home of AmbientTalk, our experimental programming language to develop such applications. 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]].+Ambient-Oriented Programming is a novel programming paradigm for programming spontaneous interactions between mobile and/or embedded devices.
  
-===== What is AmbientTalk all about===== +{{: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 startedyou can read the [[at:tutorial:tutorial|tutorial]] or [[http://code.google.com/p/ambienttalk/#The_Essence_of_AmbientTalk_in_10_Steps|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).
-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 environmentHowever, the autonomous nature of these devices as well as the volatile connections over their wireless infrastructure has its repercussions on the software that employs themThe 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. Informally we state that an ambient-oriented language is : +<note> 
-  * **Prototype-based** The mismatch between classes and distribution is well-documented and further aggravated in the context of mobile computing. +AmbientTalk is now [[http://code.google.com/p/ambienttalk|open-sourced]] on Google Code under an [[Wp>MIT_License|MIT License]]! 
-  * **Non-blocking** To avoid harming the autonomy of the mobile devices, no device should be blocked awaiting either to send a message or receive a result. +[[http://code.google.com/p/ambienttalk|{{ http://code.google.com/hosting/images/code_sm.png?150 }}]] 
-  * **Communication-Aware** To encompass network failures, objects should be able to keep a log of their own activities, allowing for error recovery+</note>
-  * **Resource-Aware** Service discovery is an integral part of any ambient-oriented language since resources are encountered dynamically in the ever-changing network topology surrounding a device.+
  
-Check out the [[at:introduction|introduction]] to AmbientTalk for a hands-on example showing you the benefits in actual code.+====== What is AmbientTalk about? ======
  
-===== Contact =====+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.
  
-  * The [[http://prog.vub.ac.be/mailman/listinfo/ambienttalk-user|AmbientTalk user list]]for questions and general information on AmbientTalk: ''ambienttalk-user at prog.vub.ac.be''. If you want to contact any one of us personallyplease see the [[people|People]] pages for personal contact details.+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 frameworkfounded on actors. 
 +  * It abandons the RPC abstraction in favor of //asynchronous, non-blocking// message passingBecause 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 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.
  
-===== Further Reading =====+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.
  
-**Ambient-Oriented Programming**, Jessie Dedecker, Tom Van Cutsem, Stijn Mostinckx, Theo D'Hondt, Wolfgang De Meuter. +AmbientTalk is not our only research artifactThere 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.
-In "OOPSLA '05: Companion of the 20th annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages and Applications. Pages 31-40. San Diego, U.S.A. ACM Press.", 2005 [ [[http://prog.vub.ac.be/Publications/2005/vub-prog-tr-05-10.pdf|download]] ]+
  
-**Ambient-Oriented Programming in AmbientTalk**, Jessie Dedecker, Tom Van Cutsem, Stijn Mostinckx, Theo D'Hondt, Wolfgang De Meuter.  In "Proceedings of the 20th European Conference on Object-Oriented Programming (ECOOP), Dave Thomas (Ed.), Lecture Notes in Computer Science Vol. 4067, pp. 230-254, Springer-Verlag.", 2006 +====== Why another programming language? ======
-[ [[http://prog.vub.ac.be/Publications/2006/vub-prog-tr-06-11.pdf|download]] ]+
  
-**Ambient-Oriented Programming**Jessie DedeckerPh.DThesisVrije Universiteit Brussel. +"What does a high-level language accomplish? It frees a program from much of its accidental complexity. An abstract program consists of conceptual constructs: operations, data typessequencesand communicationThe concrete machine program is concerned with bits, registers, conditions, branches, channels, disks, and suchTo the extent that the high-level language embodies the constructs one wants in the abstract program and avoids all lower onesit eliminates a whole level of complexity that was never inherent in the program at all.  - Frederick Brooks, //No Silver Bullet: Essence and Accidents of 
-[ [[http://prog.vub.ac.be/Publications/2006/vub-prog-phd-06-01.pdf|download]] ]+Software Engineering//
  
 +====== 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.
  
-More information can also be found in the [[research:papers|Papers]] section.+====== Further Reading ======
  
-===== Research Topics =====+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 later, at [[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 AmbientTalk programming language, check 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]]. 
 + 
 +====== Research Topics ======
   * [[research:ambientrefs|Ambient References]]   * [[research:ambientrefs|Ambient References]]
-  * [[research:exceptions|Ambient-Oriented Exception Handling]]+  * [[research:recap|Reactive Context-Aware Computing]]
   * [[research:context|Context-Dependent Behaviour Adaptations]]   * [[research:context|Context-Dependent Behaviour Adaptations]]
   * [[research:dgc|Distributed Garbage Collection]]   * [[research:dgc|Distributed Garbage Collection]]
   * [[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