Cool (язык программирования) - Cool (programming language)
Эта статья включает список литературы, связанное чтение или внешние ссылки, но его источники остаются неясными, потому что в нем отсутствует встроенные цитаты.Февраль 2010 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Парадигма | Объектно-ориентированный |
---|---|
Разработано | Александр Айкен |
Разработчик | Александр Айкен |
Впервые появился | 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};};
использованная литература
- Cool: портативный проект для обучения конструкции компилятора
- PostScript
- CoolAid: Справочное руководство The Cool 2016
- (Un) CoolAid: Справочное руководство UnCool