<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://soft.vub.ac.be/amop/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://soft.vub.ac.be/amop/feed.php">
        <title>Ambient-Oriented Programming - at:tutorial</title>
        <description></description>
        <link>https://soft.vub.ac.be/amop/</link>
        <image rdf:resource="https://soft.vub.ac.be/amop/_media/wiki/dokuwiki-128.png" />
       <dc:date>2026-04-10T00:47:30+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://soft.vub.ac.be/amop/at/tutorial/actors?rev=1580934417&amp;do=diff"/>
                <rdf:li rdf:resource="https://soft.vub.ac.be/amop/at/tutorial/appendix?rev=1727986771&amp;do=diff"/>
                <rdf:li rdf:resource="https://soft.vub.ac.be/amop/at/tutorial/basic?rev=1581282342&amp;do=diff"/>
                <rdf:li rdf:resource="https://soft.vub.ac.be/amop/at/tutorial/distribution?rev=1233328389&amp;do=diff"/>
                <rdf:li rdf:resource="https://soft.vub.ac.be/amop/at/tutorial/iat?rev=1339242658&amp;do=diff"/>
                <rdf:li rdf:resource="https://soft.vub.ac.be/amop/at/tutorial/metaprogramming?rev=1258785882&amp;do=diff"/>
                <rdf:li rdf:resource="https://soft.vub.ac.be/amop/at/tutorial/modular?rev=1368815073&amp;do=diff"/>
                <rdf:li rdf:resource="https://soft.vub.ac.be/amop/at/tutorial/multiparadigm?rev=1307464168&amp;do=diff"/>
                <rdf:li rdf:resource="https://soft.vub.ac.be/amop/at/tutorial/objects?rev=1750342194&amp;do=diff"/>
                <rdf:li rdf:resource="https://soft.vub.ac.be/amop/at/tutorial/preface?rev=1750341895&amp;do=diff"/>
                <rdf:li rdf:resource="https://soft.vub.ac.be/amop/at/tutorial/reflection?rev=1289921550&amp;do=diff"/>
                <rdf:li rdf:resource="https://soft.vub.ac.be/amop/at/tutorial/symbiosis?rev=1368815118&amp;do=diff"/>
                <rdf:li rdf:resource="https://soft.vub.ac.be/amop/at/tutorial/tutorial?rev=1750342227&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://soft.vub.ac.be/amop/_media/wiki/dokuwiki-128.png">
        <title>Ambient-Oriented Programming</title>
        <link>https://soft.vub.ac.be/amop/</link>
        <url>https://soft.vub.ac.be/amop/_media/wiki/dokuwiki-128.png</url>
    </image>
    <item rdf:about="https://soft.vub.ac.be/amop/at/tutorial/actors?rev=1580934417&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-02-05T20:26:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Concurrent Programming with Actors</title>
        <link>https://soft.vub.ac.be/amop/at/tutorial/actors?rev=1580934417&amp;do=diff</link>
        <description>Concurrent Programming with Actors

Concurrency is an integral part of the AmbientTalk programming language. Rather than relying on threads and locks to generate and manage concurrency, AmbientTalk embraces actors as a much more object-oriented approach to concurrency. Before diving into the details of concurrency in AmbientTalk, we briefly put the main differences between the actor model and the thread-based model into context.</description>
    </item>
    <item rdf:about="https://soft.vub.ac.be/amop/at/tutorial/appendix?rev=1727986771&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-03T20:19:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Appendix: Libraries</title>
        <link>https://soft.vub.ac.be/amop/at/tutorial/appendix?rev=1727986771&amp;do=diff</link>
        <description>Appendix: Libraries

In the appendix, we explain useful libraries available to the AmbientTalk/2 programmer as part of the AmbientTalk standard library, also known as atlib. These libraries provide abstractions ranging from traditional, established “</description>
    </item>
    <item rdf:about="https://soft.vub.ac.be/amop/at/tutorial/basic?rev=1581282342&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-02-09T21:05:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Functional and Imperative Programming</title>
        <link>https://soft.vub.ac.be/amop/at/tutorial/basic?rev=1581282342&amp;do=diff</link>
        <description>Functional and Imperative Programming

This part of the tutorial explains AmbientTalk as a simple expression language with a flexible syntax which resembles languages like Ruby, Python and Javascript. This section mainly describes the basic features of the language, namely variables, functions, tables (i.e. arrays) and control flow primitives.</description>
    </item>
    <item rdf:about="https://soft.vub.ac.be/amop/at/tutorial/distribution?rev=1233328389&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-01-30T15:13:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Distributed Programming</title>
        <link>https://soft.vub.ac.be/amop/at/tutorial/distribution?rev=1233328389&amp;do=diff</link>
        <description>Distributed Programming

Building on the actor-based concurrency model explained in the previous chapter, this chapter discusses the distribution provisions of AmbientTalk. For actors to communicate across the boundaries of a single device, actors need to be capable of discovering one another&#039;s presence and need to be resilient to intermittent disconnections of their communication partners.</description>
    </item>
    <item rdf:about="https://soft.vub.ac.be/amop/at/tutorial/iat?rev=1339242658&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-06-09T11:50:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Interactive AmbientTalk</title>
        <link>https://soft.vub.ac.be/amop/at/tutorial/iat?rev=1339242658&amp;do=diff</link>
        <description>Interactive AmbientTalk

Basic Usage

The interactive ambienttalk shell (aka iat) is the command-line interpreter of AmbientTalk. iat supports a very simple read-eval-print loop mode: you can type in expressions (currently only single-line expressions), evaluate them by pressing return and see the value of the expression, for example:</description>
    </item>
    <item rdf:about="https://soft.vub.ac.be/amop/at/tutorial/metaprogramming?rev=1258785882&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-11-21T06:44:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Metaprogramming</title>
        <link>https://soft.vub.ac.be/amop/at/tutorial/metaprogramming?rev=1258785882&amp;do=diff</link>
        <description>Metaprogramming

AmbientTalk without syntactic sugar

In AmbientTalk, everything is an object, also native values such as numbers, booleans, strings and tables. Hence, the only way to interact with these values is by sending messages to them. However, there are some constructs in AmbientTalk that do not seem to send a message at all. Examples are table access/assignment, control structures and arithmic operations:</description>
    </item>
    <item rdf:about="https://soft.vub.ac.be/amop/at/tutorial/modular?rev=1368815073&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-05-17T18:24:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Modular Programming</title>
        <link>https://soft.vub.ac.be/amop/at/tutorial/modular?rev=1368815073&amp;do=diff</link>
        <description>Modular Programming

In this tutorial chapter, we introduce AmbientTalk&#039;s language features that have to do with writing modular programs. The term “modular” can be taken quite broadly in this context. By “modular” programming, we here mean programs hierarchically structured into multiple files and objects composed from multiple so-called</description>
    </item>
    <item rdf:about="https://soft.vub.ac.be/amop/at/tutorial/multiparadigm?rev=1307464168&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-06-07T16:29:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>On Scoping, Closures, Methods and Messages</title>
        <link>https://soft.vub.ac.be/amop/at/tutorial/multiparadigm?rev=1307464168&amp;do=diff</link>
        <description>On Scoping, Closures, Methods and Messages

This tutorial chapter goes into a bit more detail on the interplay between AmbientTalk&#039;s functional aspects (e.g. block closures, higher-order functions and lexical scoping) and its object-oriented aspects (e.g. objects and delegation). It is also described how methods and messages can be manipulated as first-class objects in their own right.</description>
    </item>
    <item rdf:about="https://soft.vub.ac.be/amop/at/tutorial/objects?rev=1750342194&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-06-19T14:09:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Objects, fields and methods</title>
        <link>https://soft.vub.ac.be/amop/at/tutorial/objects?rev=1750342194&amp;do=diff</link>
        <description>In this section, we explain how the object-oriented programming paradigm is implemented in AmbientTalk.

Objects, fields and methods

In AmbientTalk, objects are not instantiated from 
classes. Rather, they are either created ex-nihilo or by cloning 
and adapting existing objects, in the spirit of prototype-based programming such as in the SELF programming language. The definition of a prototypical object contains a number of fields and methods that represent the object&#039;s state and behaviour res…</description>
    </item>
    <item rdf:about="https://soft.vub.ac.be/amop/at/tutorial/preface?rev=1750341895&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-06-19T14:04:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Preface</title>
        <link>https://soft.vub.ac.be/amop/at/tutorial/preface?rev=1750341895&amp;do=diff</link>
        <description>Preface

AmbientTalk is a distributed programming language especially geared towards developing applications deployed on mobile networks. The language combines elements from languages such as Scheme (closures), Smalltalk (pure OO), Self (prototypes and delegation) and actor languages.</description>
    </item>
    <item rdf:about="https://soft.vub.ac.be/amop/at/tutorial/reflection?rev=1289921550&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-11-16T15:32:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Reflective Programming</title>
        <link>https://soft.vub.ac.be/amop/at/tutorial/reflection?rev=1289921550&amp;do=diff</link>
        <description>Reflective Programming

Reflection is an integral part of the AmbientTalk programming language. Through the use of reflection, the core language can be extended with both programming support as well as new language constructs. Both examples require a different kind of reflective access. The introduction of programming support (e.g. to visualise AmbientTalk objects) relies on</description>
    </item>
    <item rdf:about="https://soft.vub.ac.be/amop/at/tutorial/symbiosis?rev=1368815118&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-05-17T18:25:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Symbiosis with Java</title>
        <link>https://soft.vub.ac.be/amop/at/tutorial/symbiosis?rev=1368815118&amp;do=diff</link>
        <description>Symbiosis with Java

AmbientTalk is entirely implemented in Java and runs on top of the JVM. Java provides an extensive class library that can be accessed from within AmbientTalk.  In other words, Java classes can be instantiated and messages can be sent to Java objects from within AmbientTalk.</description>
    </item>
    <item rdf:about="https://soft.vub.ac.be/amop/at/tutorial/tutorial?rev=1750342227&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-06-19T14:10:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>AmbientTalk/2 Tutorial</title>
        <link>https://soft.vub.ac.be/amop/at/tutorial/tutorial?rev=1750342227&amp;do=diff</link>
        <description>AmbientTalk/2 Tutorial

 The AmbientTalk/2 tutorial is subdivided into major chapters which each highlight a particular aspect of the language. These “aspects” can sometimes be best described as particular programming styles.

Jump to

	*  Preface
	*  Interactive AmbientTalk (IAT) Shell</description>
    </item>
</rdf:RDF>
