Opa (язык программирования)

редактировать
Opa
Opa logo cloud.png
Paradigm multi- парадигма : функциональный, императивный
Разработчик MLstate
Впервые появился2011
Стабильный выпуск 1.1.0 (стабильный) / 13 февраля 2013 г.; 7 лет назад (13.02.2013)
Дисциплина печати статическая, сильная, предположительно
OS Linux, OS X, Windows
Лицензия Лицензия MIT, AGPLv3
Веб-сайтopalang.org
Под влиянием
OCaml, Erlang, JavaScript

Opa - это открытый исходный код язык программирования для разработки масштабируемых веб приложения.

Его можно использовать как для на стороне клиента, так и для сценариев на стороне сервера, где полные программы написаны на Opa и впоследствии скомпилированы в Node.js на сервере и JavaScript на клиенте, с компилятором , автоматизирующим все коммуникации между ними. Opa реализует сильную, статическую типизацию, что может быть полезно для защиты от таких проблем безопасности, как SQL-инъекции и атаки межсайтового скриптинга..

Впервые язык был официально представлен на конференции OWASP в 2010 году, а исходный код был выпущен на GitHub в июне 2011 года под лицензией GNU. Стандартная общественная лицензия Affero. Позже лицензия была изменена на лицензию MIT для части фреймворка (библиотеки) и AGPL для компилятора, так что приложения, написанные на Opa, могут быть выпущены по любой лицензии, проприетарной или с открытым исходным кодом.

Содержание
  • 1 Дизайн и функции
  • 2 Примеры
    • 2.1 Hello world
  • 3 См. Также
  • 4 Ссылки
  • 5 Библиография
  • 6 Внешние ссылки
Дизайн и особенности

Opa состоит из веб-сервера, базы данных и механизма распределенного выполнения. Код, написанный на Opa, компилируется в JavaScript с использованием Node.js на стороне сервера и в JavaScript с использованием jQuery для кроссбраузерности на стороне клиента. Преимущество этого подхода по сравнению с некоторыми платформами Rich Internet Application (RIA) заключается в том, что пользователям не требуется устанавливать подключаемый модуль в своем браузере. Opa разделяет мотивацию с веб-фреймворками, но использует другой подход. Его разработчики утверждают, что это помогает Opa избежать многих проблем с безопасностью, таких как SQL-инъекции или атаки межсайтового скриптинга (XSS).

Основной язык: функциональный и имеет статическую систему типов с выводом типа . Opa также предоставляет сеансы, которые инкапсулируют императивное состояние и взаимодействуют с использованием передачи сообщений, подобно процессам Erlang. Opa предоставляет множество структур или функций, которые являются общими для веб-разработки, например, первоклассные объекты, например, HTML и парсеры, на основе Parsing Expression Грамматики. Из-за этой связи между языком и концепциями, связанными с Интернетом, Opa не предназначен для не-веб-приложений (например, настольных приложений ).

В выпуске 0.9.0 в феврале 2012 года была представлена ​​технология сопоставления баз данных для нереляционных, документно-ориентированная база данных MongoDB, аналогичная объектно-реляционному отображению. В выпуске 1.1.0 в феврале 2013 года также добавлена ​​поддержка PostgreSQL, открыв путь для поддержка нескольких баз данных SQL.

Примеры

Hello world

Традиционная программа Hello world, создающая веб-сервер который обслуживает статическую страницу с содержанием «Hello, web!», может быть записан в Opa как:

Server.start (Server.http, {title: "Hello", page: function () {

Opa (язык программирования) - Opa (programming language)

}})

Его можно скомпилировать в автономный исполняемый файл JS с помощью:

$ opa hello_web.opa

Запуск полученного исполняемого файла JS запускает веб-приложение:

$./hello_web.js
См. Также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
  • Ur (язык программирования) - функциональный язык программирования для веб-разработки
  • Dart - альтернатива Javascript для веб-приложений
  • Haxe - аналогичное программирование язык для веб-приложений
  • CoffeeScript - язык программирования, преобразованный в Javascript для веб-приложений
Ссылки
Библиография
Внешние ссылки
Последняя правка сделана 2021-06-01 12:31:53
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте