Издање програмског језика Цристал 1.5

Објављено је издање програмског језика Цристал 1.5, чији програмери покушавају да комбинују погодност развоја на језику Руби са високим перформансама апликација карактеристичним за језик Ц. Цристал-ова синтакса је блиска Руби-у, али није у потпуности компатибилна са њим, иако се неки Руби програми покрећу без модификација. Код компајлера је написан у Цристал-у и дистрибуиран под лиценцом Апацхе 2.0.

Језик користи статичку проверу типова, имплементирану без потребе за експлицитним навођењем типова променљивих и аргумената метода у коду. Цристал програми се компајлирају у извршне датотеке, са евалуацијом макроа и генерисаним кодом током компајлирања. У Цристал програмима је могуће повезати везе написане у Ц. Паралелизација извршавања кода се врши помоћу кључне речи „спавн“, која вам омогућава да асинхроно покренете позадински задатак, без блокирања главне нити, у облику лаганих нити званих влакна.

Стандардна библиотека пружа велики скуп уобичајених функција, укључујући алате за обраду ЦСВ, ИАМЛ и ЈСОН, компоненте за креирање ХТТП сервера и подршку за ВебСоцкет. Током процеса развоја, згодно је користити команду „цристал плаи“, која генерише веб интерфејс (лоцалхост:8080 подразумевано) за интерактивно извршавање кода на језику Цристал.

Главне промене:

  • Компајлер је додао проверу кореспонденције имена аргумената у имплементацији апстрактног метода иу његовој дефиницији. Ако постоји неподударање имена, сада се издаје упозорење: апстрактна класа ФооАбстрацт абстрацт деф фоо(нумбер : Инт32) : Нил енд цласс Фоо < ФооАбстрацт деф фоо(наме : Инт32) : Нил п наме енд енд 6 | деф фоо(наме : Инт32) : Нил ^— Упозорење: позициони параметар 'наме' одговара параметру 'нумбер' надјашњеног метода ФооАбстрацт#фоо(нумбер: Инт32), који има другачије име и може утицати на пролазак именованог аргумента
  • Када се вредностима променљиве додељује аргумент методу без типа, аргумент је сада ограничен на тип те променљиве. цласс Фоо @к : Инт64 деф инитиализе(к) @к = к # параметар к ће бити откуцан @к енд енд
  • Омогућава вам да додате напомене параметрима метода или макроа. деф фоо(@[МаибеУнусед] к); крај # ОК
  • Додата подршка за коришћење константи као индекса и имена у торкама. КЕИ = "с" фоо = {с: "Стринг", н: 0} ставља фоо[КЕИ].сизе
  • Нове методе Филе#делете? су додате у Филе АПИ за брисање датотека и директоријума. и Дир#делете?, који враћају нетачно ако датотека или директоријум недостаје.
  • Појачана је заштита методе Филе.темпфиле, која сада не дозвољава нулте знакове у редовима који чине име датотеке.
  • Додата променљива окружења НО_ЦОЛОР, која онемогућава истицање боја у излазу компајлера и интерпретатора.
  • Рад у режиму тумача је значајно побољшан.

Извор: опеннет.ру

Купите поуздан хостинг за сајтове са ДДоС заштитом, ВПС ВДС сервере 🔥 Купите поуздан веб хостинг са DDoS заштитом, VPS VDS сервере | ProHoster