AmbientTalk
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Парадигма | объектно-ориентированный ( на основе прототипов ), параллельный , управляемый событиями , рефлексивный |
---|---|
Разработано | Том Ван Катсем, Стейн Мостинкс, Джесси Дедекер, Вольфганг Де Мойтер |
Разработчик | Лаборатория языков программного обеспечения, Брюссельский университет |
Впервые появился | 2006 |
Стабильная версия | 2.19
/ апрель 2011 г. |
Дисциплина набора текста | динамичный , сильный |
ТЫ | Независимый от платформы |
Лицензия | МОЯ лицензия |
Расширения имен файлов | .в |
Веб-сайт | мягкий |
Основные реализации | |
AmbientTalk (переводчик) | |
Под влиянием | |
Smalltalk , Self , Scheme , E , ABCL | |
Под влиянием | |
ECMAScript Гармония |
AmbientTalk — экспериментальный объектно-ориентированный распределенный язык программирования , разработанный в Лаборатории технологий программирования Брюссельского свободного университета , Бельгия. Язык в первую очередь предназначен для написания программ, развернутых в мобильных одноранговых сетях .
AmbientTalk призван служить экспериментальной платформой для экспериментов с новыми функциями языка или абстракциями программирования, чтобы облегчить создание программного обеспечения, которое должно работать в очень нестабильных сетях, демонстрирующих прерывистое соединение и небольшую инфраструктуру. [1] Он реализован на языке Java , что позволяет интерпретировать его на различных платформах, включая Android . Стандартная библиотека интерпретатора также обеспечивает бесшовный интерфейс между объектами Java и AmbientTalk, называемый симбиозом.
языка Функции параллелизма , в том числе поддержка фьючерсов и параллелизма цикла событий, основаны на модели актера и во многом находятся под влиянием языка программирования E. Объектно-ориентированные функции языка находят свое влияние в таких языках, как Smalltalk (т.е. замыкания блоков, сообщения с ключевыми словами) и Self ( программирование на основе прототипов , черты , делегирование).
Привет, мир
[ редактировать ]system.println("Hello world");
Классический «Привет, мир!» программа не очень отражает особенности языка. Однако рассмотрим его распределенную версию:
/* Define types that could be discovered on the network */
deftype Greeter;
def makeGreeter(myName) {
/* Spawn an actor */
actor: {
/* Actors have a separate namespace, include the language futures in it */
import /.at.lang.futures;
/* A method that could be called by other greeters */
def getName(){myName};
/* Export this actor on the network */
export: self as: Greeter;
/* Main logic: if we discover another Greeter ... */
whenever: Greeter discovered: {|other|
/* Asynchronously get their name, and greet them */
when: other<-getName()@FutureMessage becomes: {|name|
system.println("Hello " + name + " from " + myName);
};
};
};
};
/* Spawn 2 actors that will greet each other */
makeGreeter("Alice");
makeGreeter("Bob");
Ссылки
[ редактировать ]- ^ Дедекер Дж., Ван Катсем Т., Мостинкс С., Д'Хондт Т., Де Мойтер В. Окружающее программирование в AmbientTalk. В «Материалах 20-й Европейской конференции по объектно-ориентированному программированию (ECOOP), Дэйв Томас (ред.), Lecture Notes in Computer Science Vol. 4067, с. 230–254, Springer-Verlag.», 2006 г.