Dierickx D
- Дата создания:
- 20 марта 2004
- Создан под влиянием:
- Парадигма:
- Типизация:
- Принятые расширения файлов:
- .d
- Реализации и версии (свернуть все | развернуть все):
D — язык программирования, созданный Бартом Дириксом (Bart Dierickx) в 2004 году. Его онлайн-публикация от 20 марта 2004 года остается единственным упоминанием этого языка. Описание синтаксиса и исходники компилятора доступны на официальном сайте.
Основные особенности языка:
-
все переменные принадлежат к “обобщенному” типу
generic
, т.е. являются указателями на фрагменты памяти, которые трактуются как числа, строки или структуры данных в зависимости от того, какие операторы к ним применяются. - широко используются указатели, работа с которыми требует крайней аккуратности.
- при объявлении функции указывается только количество ее аргументов (если оно не указано, функция может принимать на вход произвольное количество аргументов). В теле функции аргументы доступны как локальные переменные 0, 1 и т.д.
-
функции могут возвращать несколько значений (если использовать ключевое слово
result
несколько раз). Если словоresult
не используется, функция вернет одно значение — пустую строку. - передача аргументов в функции по значению или по ссылке.
-
слово
include
позволяет использовать в программе содержимое других файлов. -
предоставляется небольшой набор встроенных функций (библиотека
standard.d
) и системных вызовов. - массивы не существуют в явном виде, но благодаря арифметике указателей ими можно пользоваться так же, как в C.
Элементы синтаксиса:
Комментарий до конца строки | // |
---|---|
Комментарии, которые могут быть вложенными | /* ... */ |
Присваивание значения переменной | *<varname> = <value> |
Объявление переменной | declare <varname> / global <varname> |
Объявление переменной с присваиванием значения | declare <varname> = <value> |
Блок | { ... } |
Равенство | == |
Неравенство | != |
Сравнение | < > <= >= |
Определение функции | function <name>(<number of arguments>) |
Вызов функции | *<name>(<list of arguments>) |
Вызов функции без параметров | *<name>() |
Последовательность | ; |
Если - то | if (<condition>) { <trueBlock> } |
Если - то - иначе | if (<condition>) { <trueBlock> } else { <falseBlock> } |
Цикл с предусловием | while (<condition>) { <loopBody> } |
Комментарии
]]>blog comments powered by Disqus
]]>