Interested Article - Cyclone (язык программирования)

Cyclone (читается «Си-клон» или «Циклон») — исследовательский язык программирования, созданный , , и в Корнеллском Университете как доработка классического языка Си с целью повышения надёжности и безопасности программирования, с сохранением низкоуровневых возможностей и применимости языка в областях, традиционных для Си ( системное программирование , программирование микроконтроллеров ).

Цель и история проекта

Основная цель разработки — сделать программы на Си более защищённым от ошибок и уязвимостей , таких, как печально известное переполнение буфера , при минимальной потере эффективности и с сохранением преемственности. Идея заключается в том, чтобы взять средства эффективной защиты у языков высокого уровня и внедрить их в язык более низкого уровня.

Основы разработки были заложены , , и в Корнеллском Университете при проектировании и реализации языка ассемблера со строгой типизацией TAL (Typed Assembly Language).

Версия компилятора 1.0 вышла 8 мая 2006 . Она работает в 32-разрядном POSIX -окружении: Linux , Cygwin / Windows , MacOS и BSD . Распространяется на условияx GNU GPL версии 2.0. В настоящий момент проект официально закрыт с формулировкой «исследовательские цели достигнуты». Некоторые идеи проекта используются в языке программирования Rust .

Обзор языка

Cyclone отличают от Си прежде всего более строгая типизация, и, при необходимости, введение runtime проверок, например, за соблюдением границ массива . Значительно расширена и формализована работа с указателями , тем не менее привычные Cи- программистам приёмы арифметики указателей продолжают работать. В язык добавлено множество удобных особенностей из C++ , C99 и GCC . Введён новый тип данных @tagged union — аналог c- union , сохраняющий информацию о том, данные какого типа он хранит в данный момент.

Самые большие нововведения связаны с заимствованием идей по работе с типами данных из языка ML . Это гибкая система статической типизации с поддержкой вывод типов , облегчающая описание различных рекурсивных структур ( списков , деревьев и т. п.) и позволяющих использовать полиморфизм и обобщённое программирование . Программист может полностью контролировать процесс согласования типов .

Новый язык очень близок к C, что позволяет с минимальными усилиями переносить на него написанные на C приложения. В частности создатели Cyclone разработали простой веб-сервер , который, по их словам, совершенно невосприимчив к обычным ошибкам и уязвимостям .

См. также

Примечания

  1. . Дата обращения: 15 мая 2007. 2 июня 2007 года.

Источники

  • by Dan Grossman, Michael Hicks, Trevor Jim, and Greg Morrisett — published January 2005
  • Страничка AT&T посвящённая Cyclone
  • Александр Дорожкин (2002-10-02). . Компьютерра . из оригинала 4 марта 2006 . Дата обращения: 30 марта 2012 .
  • M Edwards (2001-11-19). . Windows IT Pro . Дата обращения: 15 апреля 2012 . (недоступная ссылка)

Ссылки

  • — Официальный сайт.
  • — старая версия официального сайта.
  • на сайте GitHub


Источник —

Same as Cyclone (язык программирования)