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
]]>