Чао (язык программирования)
![]() | В данной статье поднимается несколько вопросов. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
![]() | |
Парадигма | Логический , функциональный , модульный , объектно-ориентированный |
---|---|
Впервые появился | 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 г.
- Семейство языков программирования Пролог
- Функциональные языки
- Функционально-логические языки программирования
- Кроссплатформенное программное обеспечение
- Динамически типизированные языки программирования
- Бесплатные компиляторы и интерпретаторы
- Кроссплатформенное бесплатное программное обеспечение
- Объектно-ориентированные языки программирования
- Языки сценариев
- Текстоориентированные языки программирования