]]> ]]>
Править | Обсудить | История

Dylan

Дата создания:
1990-ых
Создан под влиянием:
Парадигма:
Типизация:
Реализации и версии (свернуть все | развернуть все):
Язык программирования

Dylan (DYnamic LANguage) — динамический объектно-ориентированный язык программирования, поддерживающий функциональную и рефлексивную парадигмы.

Разработка языка началась в начале 90-ых годов и велась группой, возглавляемой Apple Computer. Он предназначался для разработки коммерческого программного обеспечения.

В настоящее время существует две основные реализации Dylan — Open Dylan и Gwydion Dylan. Обе реализации в настоящее время являются open source и поддерживаются группой Gwydion Maintainers.

Dylan происходит от Lisp с элементами объектной системы Smalltalk. Изначально синтаксис Dylan был заимствован из Scheme, но к концу разработки языка его заменили на более привычный алголоподобный.

В Dylan понятия библиотеки и модуля разделены; библиотека — это единица компиляции, а модуль — логическая единица, соответствующая пространству имен и объединяющая элементы, которые вместе импортируются. Методы одного класса могуть быть разбросаны по нескольким модулям, и разные программы могут использовать разные наборы методов. Обычно определение самого класса содержит только набор хранимых полей (“слотов”), а методы определяются отдельно.

Характеристики языка:

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

Элементы синтаксиса:

Комментарий до конца строки //
Комментарии, которые могут быть вложенными /* ... */
Присваивание значения переменной let varname := value
Объявление переменной define
Равенство ==
Неравенство ~==
Тождественное равенство =
Тождественное неравенство ~=
Сравнение < > <= >=
Вызов функции f(a,b,...)
Если - то if (c) then ... end
Если - то - иначе if (c) then b1 elseif (c2) then b2 else b3 end

Примеры:

Hello, World!:

Пример для версий Gwydion Dylan 2.4.0

Первая строка — заголовок, задающий модуль, к которому принадлежит файл.

module: hello-world

format-out("Hello, World!\n");

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам