Curl (язык программирования)
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Парадигмы | мультипарадигмальность : объектно-ориентированная , разметка |
---|---|
Разработано | Стив Уорд , Массачусетский технологический институт |
Разработчик | Curl, Inc., Sumisho Computer Systems Corp., SCSK Corporation |
Впервые появился | 1998 год |
Стабильная версия | 8.0.13
/ 6 сентября 2022 г |
Дисциплина набора текста | сильный |
ТЫ | Окна |
Лицензия | собственный |
Веб-сайт | www |
Диалекты | |
никто | |
Под влиянием | |
HTML , JavaScript , Лисп | |
|
Curl — рефлексивный объектно-ориентированный язык программирования для интерактивных веб-приложений , цель которого — обеспечить более плавный переход между форматированием контента и компьютерным программированием . Это позволяет встраивать сложные объекты в простые документы без необходимости переключения между языками программирования или платформами разработки. Реализация Curl изначально состояла только из интерпретатора ; компилятор . был добавлен позже
Curl сочетает в себе текстовую разметку (как в языке гипертекстовой разметки ( HTML )), сценарии (как в JavaScript ) и тяжелые вычисления (как в Java , C# или C++ ) в одной унифицированной среде. Он используется в ряде корпоративных приложений, приложений «бизнес-бизнес» (B2B) и «бизнес-потребитель» (B2C).
Программы Curl могут быть скомпилированы в апплеты Curl, которые просматриваются с помощью Curl RTE, среды выполнения с плагином для веб-браузеров . В настоящее время он поддерживается в Microsoft Windows . Поддержка Linux и macOS прекращена 25 марта 2019 г. (начиная с версии 8.0.10). [1] Curl поддерживает «отдельные апплеты» , то есть апплеты, развертываемые в сети и работающие на рабочем столе пользователя независимо от окна браузера, как в Microsoft Silverlight 3 и Adobe AIR .
Архитектура
[ редактировать ]Язык Curl пытается решить давнюю проблему: различные строительные блоки, из которых состоит любой современный веб-документ, чаще всего требуют совершенно разных методов реализации: разные языки, разные инструменты, разные платформы, часто совершенно разные команды. Последним и зачастую самым трудным препятствием является обеспечение согласованного взаимодействия всех этих блоков друг с другом. Curl пытается обойти эти проблемы, предоставляя согласованный синтаксический и семантический интерфейс на всех уровнях создания веб-контента: от простого HTML до сложного объектно-ориентированного программирования .
Curl — это язык разметки , подобный HTML, то есть обычный текст отображается как текст; в то же время Curl включает в себя объектно-ориентированный язык программирования, поддерживающий множественное наследование . Приложения Curl не обязаны соблюдать разделение информации, стиля и поведения, которое HTML, каскадные таблицы стилей навязывают (CSS) и JavaScript, хотя при желании этот стиль программирования можно использовать в Curl.
Хотя язык Curl можно использовать в качестве замены HTML для представления форматированного текста, его возможности простираются до уровня компилируемого, строго типизированного, объектно-ориентированного языка системного программирования. [2] Как авторские (уровень HTML), так и программные конструкции Curl могут быть расширены в пользовательском коде. Язык разработан таким образом, чтобы приложения Curl можно было скомпилировать в собственный код клиентского компьютера с помощью JIT-компилятора и запустить на высокой скорости. Апплеты Curl также могут быть написаны так, чтобы они могли работать в автономном режиме при отключении от сети ( иногда подключенных вычислениях ). Curl IDE — это приложение, написанное на Curl.
Синтаксис
[ редактировать ]Простой апплет Curl для команды «Hello, World!» программа может быть:
{Curl 7.0, 8.0 applet}
{text
color = "blue",
font-size = 16pt,
Hello World}
Этот код будет запущен, если у пользователя установлена хотя бы одна из версий Curl 7.0 или 8.0.
Curl предоставляет как макросы , так и текстовые процедуры в дополнение к анонимным процедурам и именованным методам. текстовой процедуры Альтернативой использованию параграфа может быть:
{paragraph
paragraph-left-indent=0.5in,
{text color = "red", font-size = 12pt,
Hello}
{text color = "green", font-size = 12pt,
World}}
Недавно этот стиль компоновки был принят «строителями» языка Groovy для виртуальной машины Java (JVM), но также знаком пользователям CSS или Tcl / Tk . Большинство функций веб-приложений, реализованных сейчас посредством комбинаций библиотек JavaScript + HTML + CSS, уже присутствуют в языке Curl, включая функции, обычно связанные с Prototype + script.aculo.us, такие как панели-аккордеон.
Curl устанавливает обратные вызовы так же, как это принято в Groovy:
{CommandButton width=100pt,
height = 50pt,
label = {center {bold Invokes an event handler when clicked}},
control-color = "orange",
|| Attach the following event handler to this CommandButton
{on Action do
{popup-message
title = "Your Message",
"This is a user message dialog."
}
}}
В комментариях Curl используется вертикальная полоса в нескольких вариантах. Самый простой заключается в следующем:
{text A comment can be on a line by itself,
|| A comment on a line by itself
or it can be at the end || A comment on the same line as code
of a line.}
Как облегченная разметка
[ редактировать ]Поскольку Curl предоставляет как определяемые пользователем текстовые процедуры, так и таблицы стилей , его можно легко использовать в качестве облегченной разметки для конкретной предметной области . Основным преимуществом по сравнению с разметкой HTML в виде простого текста является то, что для текстовой кодировки можно установить UTF-8 , а текст вводить в Unicode с поддержкой текстовом редакторе без экранирования символов (например, JavaScript, Curl поддерживает Unicode). Пример поэзии :
{poem || wraps entire poem
{stanza || first verse here in any language
}
{stanza || another verse here in any language
}
}
который первоначально может быть реализован путем определения разметки стихотворения и строфы как текстовых форматов абзаца. Stanza можно было бы усовершенствовать, включив в него скрытую навигационную привязку для навигации по страницам с использованием Curl {destination}, которая сама по себе является текстовой процедурой.
Одну и ту же разметку можно использовать для разных результатов, поскольку можно стилизовать текст так, чтобы он был видимым в одном контексте и невидимым в другом. Curl также позволяет включать файлы верхнего уровня, поэтому исходный текст в разметке можно включать в разные родительские файлы. Например, в сфере образования можно создать исходный файл тестовых вопросов и включить его в версию текста как для ученика, так и для учителя.
См. также
[ редактировать ]- Гомоиконичность : Curl — это одновременно язык программирования и формат данных. [ нужна ссылка ]
Ссылки
[ редактировать ]- ^ «Изменения в поддерживаемых операционных системах продуктов Curl RTE» . Корпорация СКСК. Архивировано из оригинала 13 мая 2019 г. Проверено 01 апреля 2020 г.
- ^ М. Хостеттер; Д. Кранц; C. Семена; К. Терман; С. Уорд. «Curl: мягкий язык для Интернета» . Лаборатория компьютерных наук Массачусетского технологического института. Архивировано из оригинала 24 декабря 2008 г. Проверено 20 декабря 2005 г.
Внешние ссылки
[ редактировать ]- MIT Curl Project — результаты исследовательского проекта Curl в Массачусетского технологического института (MIT). лаборатории компьютерных наук
- Curl, Inc. и Curl International Corp. разрабатывают и распространяют набор коммерческих продуктов, основанных на результатах исследований MIT. Принадлежит SCSK Corporation, дочернему подразделению Sumitomo Corp.
- Обзор InfoWorld Curl 6.0, автор Мартин Хеллер. Компания InfoWorld наградила Curl наградой «Технология года 2008» в категории «Насыщенные интернет-приложения» .