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

Поделись знанием:
Перейти к: навигация, поиск
Cyclone
Семантика:

процедурный

Тип исполнения:

компилируемый

Появился в:

2001

Автор:

AT&T в сотрудничестве с рядом университетов

Система типов:

строгая, статическая

Испытал влияние:

C, ML

Cyclone (читается «Си-клон» или «Циклон») — язык программирования, предназначенный для замены чистого, не объектно-ориентированного C (т. е. не C++ и не Objective-C) в областях, где его применение традиционно и оправданно (системное программирование, программирование микроконтроллеров). Основная цель разработки — сделать программы на Си более защищённым от ошибок и уязвимостей, таких, как печально известное переполнение буфера, при минимальной потере эффективности и с сохранением преемственности. Идея заключается в том, чтобы взять средства эффективной защиты у языков высокого уровня и внедрить их в язык более низкого уровня.

Основы разработки были заложены Дэном Гроссманом, Тревором Джимом, и Грегом Моррисеттом в Корнелльском Университете при проектировании и реализации языка ассемблера со строгой типизацией TAL[1] (Typed Assembly Language).

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

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

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

Версия компилятора 1.0 вышла 8 мая 2006. Распространяется на условияx GNU GPL версии 2.0.





См. также

Напишите отзыв о статье "Cyclone (язык программирования)"

Примечания

  1. [www.cs.cornell.edu/talc/ Typed Assembly Language]

Источники

  • [cyclone.thelanguage.org/wiki/User%20Manual Cyclone User Manual]
  • [www.cs.umd.edu/~mwh/papers/cyclone-cuj.pdf Cyclone: a Type-safe Dialect of C] by Dan Grossman, Michael Hicks, Trevor Jim, and Greg Morrisett — published January 2005
  • [www.research.att.com/viewProject.cfm?prjID=67 Cyclone: A Safe Dialect of C] (недоступная ссылка — историякопия) Страничка AT&T посвящённая Cyclone
  • Александр Дорожкин. [www.computerra.ru/hitech/tech/20651/ Слово и дело. Новый язык программирования позволит избежать уязвимостей в системах защиты программных продуктов], Компьютерра (2 октября 2002). Проверено 30 марта 2012.
  • M Edwards. [www.windowsitpro.com/article/development/new-cyclone-programming-language-bugs-be-gone- New Cyclone Programming Language: Bugs be Gone!], Windows IT Pro (19 ноября 2001). Проверено 15 апреля 2012.

Ссылки

  • [cyclone.thelanguage.org/ cyclone.thelanguage.org] — Официальный сайт.
  • [www.eecs.harvard.edu/~greg/cyclone/old_cyclone.html www.eecs.harvard.edu/~greg/cyclone/old_cyclone.html] — старая версия официального сайта.

Отрывок, характеризующий Cyclone (язык программирования)

Остров отрадненского заказа виднелся саженях во ста, и доезжачие подходили к нему. Ростов, решив окончательно с дядюшкой, откуда бросать гончих и указав Наташе место, где ей стоять и где никак ничего не могло побежать, направился в заезд над оврагом.
– Ну, племянничек, на матерого становишься, – сказал дядюшка: чур не гладить (протравить).
– Как придется, отвечал Ростов. – Карай, фюит! – крикнул он, отвечая этим призывом на слова дядюшки. Карай был старый и уродливый, бурдастый кобель, известный тем, что он в одиночку бирал матерого волка. Все стали по местам.
Старый граф, зная охотничью горячность сына, поторопился не опоздать, и еще не успели доезжачие подъехать к месту, как Илья Андреич, веселый, румяный, с трясущимися щеками, на своих вороненьких подкатил по зеленям к оставленному ему лазу и, расправив шубку и надев охотничьи снаряды, влез на свою гладкую, сытую, смирную и добрую, поседевшую как и он, Вифлянку. Лошадей с дрожками отослали. Граф Илья Андреич, хотя и не охотник по душе, но знавший твердо охотничьи законы, въехал в опушку кустов, от которых он стоял, разобрал поводья, оправился на седле и, чувствуя себя готовым, оглянулся улыбаясь.
Подле него стоял его камердинер, старинный, но отяжелевший ездок, Семен Чекмарь. Чекмарь держал на своре трех лихих, но также зажиревших, как хозяин и лошадь, – волкодавов. Две собаки, умные, старые, улеглись без свор. Шагов на сто подальше в опушке стоял другой стремянной графа, Митька, отчаянный ездок и страстный охотник. Граф по старинной привычке выпил перед охотой серебряную чарку охотничьей запеканочки, закусил и запил полубутылкой своего любимого бордо.
Илья Андреич был немножко красен от вина и езды; глаза его, подернутые влагой, особенно блестели, и он, укутанный в шубку, сидя на седле, имел вид ребенка, которого собрали гулять. Худой, со втянутыми щеками Чекмарь, устроившись с своими делами, поглядывал на барина, с которым он жил 30 лет душа в душу, и, понимая его приятное расположение духа, ждал приятного разговора. Еще третье лицо подъехало осторожно (видно, уже оно было учено) из за леса и остановилось позади графа. Лицо это был старик в седой бороде, в женском капоте и высоком колпаке. Это был шут Настасья Ивановна.
– Ну, Настасья Ивановна, – подмигивая ему, шопотом сказал граф, – ты только оттопай зверя, тебе Данило задаст.
– Я сам… с усам, – сказал Настасья Ивановна.
– Шшшш! – зашикал граф и обратился к Семену.
– Наталью Ильиничну видел? – спросил он у Семена. – Где она?
– Они с Петром Ильичем от Жаровых бурьяно встали, – отвечал Семен улыбаясь. – Тоже дамы, а охоту большую имеют.
– А ты удивляешься, Семен, как она ездит… а? – сказал граф, хоть бы мужчине в пору!
– Как не дивиться? Смело, ловко.
– А Николаша где? Над Лядовским верхом что ль? – всё шопотом спрашивал граф.
– Так точно с. Уж они знают, где стать. Так тонко езду знают, что мы с Данилой другой раз диву даемся, – говорил Семен, зная, чем угодить барину.
– Хорошо ездит, а? А на коне то каков, а?
– Картину писать! Как намеднись из Заварзинских бурьянов помкнули лису. Они перескакивать стали, от уймища, страсть – лошадь тысяча рублей, а седоку цены нет. Да уж такого молодца поискать!
– Поискать… – повторил граф, видимо сожалея, что кончилась так скоро речь Семена. – Поискать? – сказал он, отворачивая полы шубки и доставая табакерку.
– Намедни как от обедни во всей регалии вышли, так Михаил то Сидорыч… – Семен не договорил, услыхав ясно раздававшийся в тихом воздухе гон с подвыванием не более двух или трех гончих. Он, наклонив голову, прислушался и молча погрозился барину. – На выводок натекли… – прошептал он, прямо на Лядовской повели.
Граф, забыв стереть улыбку с лица, смотрел перед собой вдаль по перемычке и, не нюхая, держал в руке табакерку. Вслед за лаем собак послышался голос по волку, поданный в басистый рог Данилы; стая присоединилась к первым трем собакам и слышно было, как заревели с заливом голоса гончих, с тем особенным подвыванием, которое служило признаком гона по волку. Доезжачие уже не порскали, а улюлюкали, и из за всех голосов выступал голос Данилы, то басистый, то пронзительно тонкий. Голос Данилы, казалось, наполнял весь лес, выходил из за леса и звучал далеко в поле.