Cool (язык программирования) - Cool (programming language)

КРУТО
ПарадигмаОбъектно-ориентированный
РазработаноАлександр Айкен
РазработчикАлександр Айкен
Впервые появился1996
Печатная дисциплинаСтатический, сильный, манифест
Диалекты
Cool 2004, Cool 2005, Cool 2006, Cool 2007, Cool 2008, unCool
Под влиянием
Ява, ML, Паскаль, Sather

здорово, акроним для Объектно-ориентированный язык в классе, это компьютер программирование язык разработан Александром Айкеном для использования в проекте курса компилятора для студентов. Несмотря на то, что Cool достаточно мал для одного семестрового проекта, он по-прежнему обладает многими функциями современных языков программирования, включая объекты, автоматическое управление памятью, строгую статическую типизацию и простую отражение.

Эталонный компилятор Cool написан на C ++, полностью построенный на инструментах общественного достояния. Он генерирует код для MIPS симулятор СПИМ. Таким образом, язык должен легко переноситься на другие платформы. Он использовался для обучения компиляторов во многих учреждениях (например, Калифорнийский университет в Беркли, где он был впервые использован или Университет Шахида Бехешти из Иран ) и программное обеспечение стабильно.

Этот язык не имеет отношения к COOL, включенному в КЛИПЫ.

особенности

Поскольку основная цель Cool - обучение, в нем отсутствуют многие функции, общие для других, более общих языков программирования. Например, язык поддерживает сравнения меньше, но не больше. Синтаксис очень урезан, а «стандартная библиотека» содержит только несколько основных классов. Раздельная компиляция не поддерживается, хотя компилятор поддерживает несколько исходных файлов в качестве входных. Каждая крутая программа должна определять класс Основной в котором не должно быть аргументов основной метод, в котором начинается поток выполнения. Пространства имен не поддерживаются.

Примеры

"Привет мир!":

класс Main наследует ввод-вывод {main (): Object {out_string ("Hello, world!")};};

Простая программа для вычисления факториалов:

класс Main наследует IO {main (): Object {{out_string ("Введите целое число больше или равное 0:"); let input: Int <- in_int () in if input <0 then out_string («ОШИБКА: число должно быть больше или равно 0») else {out_string («Факториал») .out_int (input); out_string ("есть") .out_int (factorial (ввод)); out_string (""); } fi; }}; factorial (num: Int): Int {если num = 0, то 1 else num * factorial (num - 1) fi};};

использованная литература

внешние ссылки