Чао (язык программирования)
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
![]() | |
Парадигма | Логический , функциональный , модульный , объектно-ориентированный |
---|---|
Впервые появился | 1984 год |
ТЫ | Кроссплатформенность ( Unix , Mac OS X , Windows ) |
Лицензия | Лицензионная лицензия , LGPL |
Веб-сайт | www |
Под влиянием | |
Пролог |
Ciao общего назначения — это язык программирования , который поддерживает логический , ограничительный , функциональный , высшего порядка и объектно-ориентированный стили программирования. Его основными целями проектирования являются высокая выразительная сила , расширяемость , безопасность, надежность и эффективное исполнение. [1]
Языковые характеристики [ править ]
Ciao предоставляет полную систему Prolog (с поддержкой ISO -Prolog),декларативные подмножества и расширения Пролога, функциональное программирование (включая ленивые вычисления ), высшего порядка (с абстракциями предикатов), программирование в ограничениях и объекты , а также термины функций.(записи), постоянство, несколько правил управления ( поиск в ширину , итеративное углубление,...), параллелизм (потоки/движки), распределенное выполнение (агенты) и параллельное выполнение. Библиотеки также поддерживают WWW-программирование, сокеты, внешние интерфейсы ( C , Java , TclTk , реляционные базы данных и т. д.) и т. д.
Ciao построен на ядре с расширяемой модульной конструкцией, котораяпозволяет как ограничивать, так и расширять язык — его можно рассматривать как язык построения языка. Эти ограничения и расширения можно активировать отдельно на каждом программном модуле, чтобы в одном приложении могли сосуществовать несколько расширений для разных модулей.
Разработка безопасных и надежных программ [ править ]
Программирование в целом в Ciao поддерживается через:
- Надежная модульно-объектная система. Это обеспечивает раздельную/инкрементальную компиляцию на основе модулей (которая происходит автоматически и без необходимости использования make-файлов).
- Интегрированный язык утверждений для объявления (необязательных) свойств (спецификаций) программы. К ним относятся типы, режимы, определенность, безотказность, стоимость (время, память) и т. д.
- Автоматический вывод и статическая/динамическая проверка таких утверждений (включая модульное тестирование).
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» .
- Кей Дэвис, Йорг Стригниц (30 июля 2007 г.). Мультипарадигмальное программирование на объектно-ориентированных языках: текущий научный отчет на семинаре MPOOL'07 . ECOOP'07 Материалы конференции 2007 г. по Объектно-ориентированным технологиям. стр. 13–26. ISBN 978-3-540-78194-3 .
Ссылки [ править ]
- ^ «Система Чао» . ciao-lang.org . Проверено 12 августа 2017 г.
- Семейство языков программирования Пролог
- Функциональные языки
- Функционально-логические языки программирования
- Кроссплатформенное программное обеспечение
- Динамически типизированные языки программирования
- Бесплатные компиляторы и интерпретаторы
- Кроссплатформенное бесплатное программное обеспечение
- Объектно-ориентированные языки программирования
- Языки сценариев
- Текстоориентированные языки программирования