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