Crystal | |
---|---|
![]() | |
Класс языка | мультипарадигмальный: объектно-ориентированный |
Появился в | 2014 |
Автор | Ary Borenszweig |
Разработчик | Manas Technology Solutions |
Расширение файлов |
.cr |
Выпуск | |
Система типов | Статическая |
Испытал влияние | Ruby, Go |
Лицензия | Apache License 2.0 |
Платформа | IA-32 (i386), x86-64 |
ОС | Linux, macOS (Homebrew) [2] |
Сайт | crystal-lang.org |
Crystal — это объектно-ориентированный язык общего назначения, спроектированный и созданный Ary Borenszweig и Juan Wajnerman.[3] Crystal статически типизирован и имеет Ruby-подобный синтаксис. Первый официальный релиз языка произошел в июне 2014 года.[4][5] Изначально компилятор языка был написан на Ruby, пока в 2013 году не был переписан на Crystal.[6] Язык находится в активной разработке.
Несмотря на схожесть синтаксиса, Crystal намного эффективнее, чем Ruby, компилируется в машинный код, используя LLVM, жертвуя при этом динамическими аспектами языка. По результатам тестов Crystal показывает схожую с языком С производительность.[7][8][9] Язык использует Boehm garbage collector, обладает системой макросов, поддерживает дженерики, а также перегрузку методов и операторов.
В Crystal реализован интерфейс вызова функций из двоичных библиотек на языках C, C++ и пр,, при этом синтаксис взаимодействия с такими библиотеками максимально упрощён, что позволяет легко создавать библиотеки-обёртки, а не писать весь код с нуля. Также Crystal поддерживает ассемблерные вставки и прямое обращение по указателям - это считается unsafe, но не запрещено, поскольку необходимо, в частности, и для взаимодействия с функциями из внешних библиотек.
Простейший вариант написания:
puts "Hello World!"
В объектно-ориентированном стиле:
class Greeter def initialize(@name) end def salute "Hello #{@name}!" end end
g = Greeter.new("world") puts g.salute
require "http/server"
server = HTTP::Server.new do |context| context.response.content_type = "text/plain" context.response.print "Hello world!" end
server.bind_tcp 8080
puts "Listening on http://127.0.0.1:8080"
server.listen
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .