Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

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 г. по объектно-ориентированным технологиям.

Ссылки [ править ]

  1. ^ "Система Чао" . ciao-lang.org . Проверено 12 августа 2017 .