AmbientTalk

Экспериментальный объектно-ориентированный язык программирования
AmbientTalk
ПарадигмаОбъектно-ориентированный ( основанный на прототипах ), Параллельный , Управляемый событиями , Рефлексивный
РазработаноТом Ван Катсем, Стейн Мостинкс, Джесси Дедекер, Вольфганг Де Мойтер
РазработчикЛаборатория языков программирования Брюссельского университета
Впервые появился2006
Стабильный релиз
2.19 / Апрель 2011
Дисциплина набора текстадинамичный , сильный
ОСНезависимый от платформы
ЛицензияЛицензия Массачусетского технологического института
Расширения имени файла
Веб-сайтsoft.vub.ac.be/amop
Основные внедрения
AmbientTalk (переводчик)
Под влиянием
Smalltalk , Я , Схема , E , ABCL
Под влиянием
Гармония ECMAScript

AmbientTalk — экспериментальный объектно-ориентированный язык распределенного программирования , разработанный в Лаборатории технологий программирования в Свободном университете Брюсселя , Бельгия. Язык в первую очередь предназначен для написания программ, развертываемых в мобильных сетях ad hoc .

AmbientTalk призван служить экспериментальной платформой для экспериментов с новыми языковыми функциями или абстракциями программирования, чтобы облегчить создание программного обеспечения, которое должно работать в крайне нестабильных сетях с прерывистым подключением и небольшой инфраструктурой. [1] Он реализован на Java , что позволяет выполнять интерпретацию на различных платформах, включая Android . Стандартная библиотека интерпретатора также обеспечивает бесшовный интерфейс между объектами Java и AmbientTalk, называемый симбиозом.

Возможности параллельности языка , включающие поддержку будущих событий и параллельность событийного цикла, основаны на модели акторов и в значительной степени были сформированы под влиянием языка программирования E. Объектно-ориентированные возможности языка нашли свое отражение в таких языках, как Smalltalk (т. е. замыкания блоков, сообщения с ключевыми словами) и Self ( программирование на основе прототипов , черты , делегирование).

Привет, мир

system.println("Привет, мир");

Классическая программа "Hello, World!" не очень отражает особенности языка. Однако рассмотрим ее распределенную версию:

/* Определение типов, которые могут быть обнаружены в сети */ deftype Greeter ; def makeGreeter ( myName ) { /* Создать актера */ Actor : { /* Актеры имеют отдельное пространство имен, включите в него языковые фьючерсы * / import /.at.lang.futures ;         /* Метод, который могут вызывать другие приветствующие */ def getName (){ myName };   /* Экспортируем этого субъекта в сеть */ export: self as: Greeter ; /* Основная логика: если мы обнаружим другого субъекта ... */ when: Greeter обнаружен: {| other | /* Асинхронно получаем его имя и приветствуем его */ when: other <- getName () @FutureMessage становится: {| name | system . println ( "Hello " + name + " from " + myName ); }; }; }; } ;                         /* Создаём 2 актёров, которые будут приветствовать друг друга */ makeGreeter ( "Alice" ); makeGreeter ( "Bob" );

Ссылки

  1. ^ Дедекер Дж., Ван Катсем Т., Мостинкс С., Д'Хондт Т., Де Мойтер В. Эмбиент-ориентированное программирование в AmbientTalk. В «Материалах 20-й Европейской конференции по объектно-ориентированному программированию (ECOOP), Дэйв Томас (ред.), Lecture Notes in Computer Science Vol. 4067, стр. 230–254, Springer-Verlag.», 2006 г.
  • Официальный сайт AmbientTalk
  • Интерпретатор с открытым исходным кодом
Retrieved from "https://en.wikipedia.org/w/index.php?title=AmbientTalk&oldid=1222231254"