Эта статья поднимает множество проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалить эти сообщения-шаблоны ) ( Узнайте, как и когда удалить этот шаблон сообщения )
|
Парадигма | Логическая , функциональная , модульная , объектно-ориентированная |
---|---|
Впервые появился | 1984 |
Операционные системы | Кроссплатформенность ( Unix , Mac OS X , Windows ) |
Лицензия | GPL , LGPL |
Веб-сайт | www |
Под влиянием | |
Пролог |
Ciao - это язык программирования общего назначения, который поддерживает стили логического , ограничительного , функционального , высшего порядка и объектно-ориентированного программирования . Его основные цели дизайна - высокая выразительность , расширяемость , безопасность, надежность и эффективное исполнение. [1]
Характеристики языка [ править ]
Ciao предоставляет полную систему Prolog (поддерживающую ISO- Prolog), декларативные подмножества и расширения Prolog, функциональное программирование (включая ленивое вычисление ), высокоуровневое (с абстракциями предикатов), программирование с ограничениями и объекты , а также термины функций (записи ), постоянство, несколько правил управления (поиск в ширину, итеративное углубление, ...), параллелизм (потоки / механизмы), распределенное выполнение (агенты) и параллельное выполнение. Библиотеки также поддерживают программирование WWW, сокеты, внешние интерфейсы ( C , Java , TclTk , реляционные базы данных).и т. д.) и т. д.
Ciao построен на ядре с расширяемой модульной конструкцией, которая позволяет как ограничивать, так и расширять язык - его можно рассматривать как язык построения языка. Эти ограничения и расширения можно активировать отдельно для каждого программного модуля, так что несколько расширений могут сосуществовать в одном приложении для разных модулей.
Разработка безопасных и надежных программ [ править ]
Программирование в целом в Ciao поддерживается через:
- Надежная система модуль / объект. Это обеспечивает раздельную / инкрементную компиляцию на основе модулей (которая выполняется автоматически без необходимости в файлах сборки).
- Интегрированный язык утверждений для объявления (необязательных) свойств (спецификаций) программы. К ним относятся типы, режимы, определенность, безотказность, стоимость (время, память) и т. Д.
- Автоматический вывод и статическая / динамическая проверка таких утверждений (включая модульное тестирование).
Ciao также поддерживает программирование в малых масштабах: компилятор может создавать небольшие исполняемые файлы (включая только те встроенные функции, которые используются программой), а интерпретатор поддерживает создание сценариев.
Среда включает в себя классический верхнем уровень и усовершенствованный Emacs взаимодействовать с встраиваемым отладчиком исходного уровня и рядом визуализации исполнения инструментов.
Препроцессор Ciao поддерживает статическую отладку и проверку утверждений, а также оптимизацию посредством преобразования исходного кода в исходную программу. Эти задачи выполняет Ciaopp, распространяется отдельно).
Авто-документация [ править ]
Ciao включает lpdoc, автоматический генератор документации. Он обрабатывает программы, украшенные (Ciao) утверждениями и машиночитаемыми комментариями, и генерирует руководства во многих форматах, включая HTML, pdf, texinfo, info, man и т. Д., А также онлайн-справку, файлы ascii README, записи для индексов руководства (информация, WWW, ...), а также поддерживает сайты распространения WWW.
Портативность и эффективность [ править ]
Компилятор Ciao (который может запускаться вне оболочки верхнего уровня) генерирует несколько форм архитектурно-независимых и автономных исполняемых файлов, которые работают со скоростью, эффективностью и размером исполняемого файла, которые очень конкурентоспособны с другими языками высокого уровня в целом и в особенно с коммерческими и академическими системами Prolog / CLP. Модули могут быть скомпилированы в компактный байт-код или исходные файлы C и связаны статически, динамически или автоматически загружены.
Дальнейшее чтение [ править ]
- Мануэль В. Эрменегильдо; и другие. (2011). «Обзор Ciao и его философии дизайна». arXiv : 1102.5497 [ cs.PL ].
- Команда разработчиков Ciao. «Дом системы Ciao» .
- Энрико Понтелли (ред.). "Многопарадигмальный язык и среда разработки программ CIAO" .
- Кей Дэвис, Йорг Стригниц. «Мультипарадигмальное программирование на объектно-ориентированных языках: текущий исследовательский отчет семинара MPOOL'07» . ECOOP'07 Материалы конференции 2007 г. по объектно-ориентированным технологиям.
Ссылки [ править ]
- ^ "Система Чао" . ciao-lang.org . Проверено 12 августа 2017 .