Crystal (язык программирования): различия между версиями

[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
м фикс
согласно викиданных
Строка 1:
{{значения}}
{{Язык программирования}}
'''Crystal''' — [[Объектно-ориентированный язык программирования|объектно-ориентированный]] язык программирования общего назначения, спроектированный и разработанный АриАрье Боренцвейгом, Хуаном Вайнерманом и Брайаном Кардиффом. Развивается сообществом из более 300 разработчиков. Обладает [[Ruby]]-подобным синтаксисом, но, в отличие от Ruby, является компилируемым и [[Статическая типизация|статически типизированным]] языком, использующим [[вывод типов]] (в связи с чем явное объявление типов, как и в Ruby, не обязательно). Распространяется как [[свободное и открытое программное обеспечение]] под [[Лицензия Apache|лицензией Apache]] версии 2.0.
 
Программы на Crystal компилируются средствами [[LLVM]], при этом утрачены некоторые динамические аспекты, имеющиеся в Ruby, но эффективность программ намного выше, а производительность сравнима с программами на [[Си (язык программирования)|Си]]<ref>{{Cite web|accessdate = 2016-02-18|title = kostya/benchmarks|url = https://github.com/kostya/benchmarks|publisher = GitHub}}</ref><ref>{{Cite web|accessdate = 2016-02-18|title = kostya/crystal-benchmarks-game|url = https://github.com/kostya/crystal-benchmarks-game|publisher = GitHub}}</ref><ref>{{Cite web|accessdate = 2016-02-18|title = smarr/are-we-fast-yet|url = https://github.com/smarr/are-we-fast-yet/tree/master/benchmarks/Crystal|publisher = GitHub}}</ref>. Язык использует {{iw|сборщик мусора Бёма||en|Boehm garbage collector}}, обладает системой [[макрос]]ов, поддерживает [[обобщённое программирование]], [[Перегрузка (программирование)|перегрузку]] методов и операторов. Реализован интерфейс вызова функций из двоичных библиотек на Си и C++, при этом синтаксис взаимодействия с такими библиотеками максимально упрощён, что позволяет легко создавать библиотеки-обёртки, а не писать весь код с нуля. Также Crystal поддерживает [[Ассемблерная вставка|ассемблерные вставки]] и прямое обращение по [[Указатель (программирование)|указателям]] — это считается [[Безопасное программирование|небезопасной]] практикой, но не запрещено, поскольку необходимо, в частности, и для взаимодействия с функциями из внешних библиотек.