Opa(프로그래밍 언어)

Opa (programming language)
오파
Opa logo cloud.png
패러다임멀티탭: 기능, 필수
개발자ML스테이트
처음 등장한2011
안정된 릴리스
1.1.1 (안정적) / 2014년 3월 8일; 8년 전 (2014-03-08)[1][2]
타이핑 분야정적, 강력, 추론
OSLinux, OS X, Windows
면허증.MIT 라이선스, AGPLv3
웹 사이트opalang.org
영향을 받다
OCaml, Erlang, JavaScript

Opa는 확장 가능한 웹 애플리케이션개발하기 위한 오픈 소스 프로그래밍 언어입니다.

클라이언트측서버측의 양쪽의 스크립트에 사용할 수 있습니다.이 스크립트는 완전한 프로그램을 Opa로 작성한 서버의 Node.js와 클라이언트의 JavaScript컴파일러[3][4]둘 사이의 모든 통신을 자동화합니다.Opa는 강력한 정적 타이핑을 구현하여 SQL 주입 및 사이트 간 스크립팅 [5]공격과 같은 보안 문제로부터 보호하는 데 유용합니다.

이 언어는 2010년 [6]OWASP 컨퍼런스에서 공식적으로 발표되었으며 소스 코드는 GNU Affero General Public License에 따라 2011년 6월에 GitHub에서[7] 공개되었습니다.나중에 라이선스는 프레임워크 부분(라이브러리)의 경우 MIT 라이선스로 변경되었으며 컴파일러의 경우 AGPL로 변경되어 Opa로 작성된 어플리케이션은 라이선스, 소유권 또는 오픈 소스의 경우 모두 릴리스할 수 있게 되었습니다.

설계 및 기능

Opa는 웹 서버, 데이터베이스 및 분산 실행 [8]엔진으로 구성됩니다.Opa로 작성된 코드는 서버 에서 Node.js를 사용하여 JavaScript로 컴파일되고 클라이언트 [9]에서 크로스 브라우저 호환성을 위해 jQuery를 사용하여 JavaScript로 컴파일됩니다.특정 리치 인터넷애플리케이션(RIA) 플랫폼과 비교하여 이 접근방식의 장점은 사용자가 브라우저에 [10]플러그인을 설치할 필요가 없다는 것입니다.Opa는 웹 프레임워크와 동기를 공유하지만 다른 접근법을 [11]취합니다.Opa의 설계자는 이를 통해 SQL 주입이나 XSS([12]크로스 사이트 스크립팅) 공격과 같은 많은 보안 문제를 방지할 수 있다고 주장합니다.

핵심 언어는 기능하며 유형 추론을 가진 정적 유형 시스템을 가지고 있습니다.Opa는 Erlang 프로세스와 마찬가지로 필수 상태를 캡슐화하고 메시지 전달을 사용하여 통신하는 세션도 제공합니다.Opa는 구문 분석식 [14]그래머를 기반으로 HTML[13]파서 등 웹 개발에서 공통적인 많은 구조 또는 함수를 제공합니다.Opa는 언어와 웹 관련 개념 간의 이러한 유착 때문에 웹이 아닌 애플리케이션(데스크탑 애플리케이션 [15]등)을 위한 것이 아닙니다.

2012년 2월 0.9.0 릴리즈에서는 객체-관계 [16][17][18]매핑과 유사한 비관계형 문서 지향 데이터베이스 MongoDB용 데이터베이스 매핑 기술이 도입되었습니다.2013년 2월 1.1.0 릴리즈에서는 Postgre 지원도 추가되었습니다.SQL을 통해 여러 SQL 데이터베이스를 지원할 수 있습니다.

안녕 세계

기존의 Hello world 프로그램은 "Hello, web!"을 콘텐츠로 하는 정적 페이지를 제공하는 웹 서버를 생성하며 Opa에서는 다음과 [19]같이 기술할 수 있습니다.

Server.start(Server.http, {title: "Hello" , page: function() {<h1> 안녕하세요, Web!</h1> } } )

다음 기능을 사용하여 독립 실행형 실행 파일 JS 파일로 컴파일할 수 있습니다.

$opa hello_web.opa

결과 실행 파일 JS 파일을 실행하면 웹 응용 프로그램이 실행됩니다.

$./hello_web.web.s

「 」를 참조해 주세요.

  • Ur - 웹 개발을 위한 기능적 프로그래밍 언어
  • Dart - 웹 앱용 Javascript 대체 프로그램
  • Haxe - 웹 애플리케이션용 유사한 프로그래밍 언어
  • CoffeeScript - 웹 앱용 Javascript로 변환된 프로그래밍 언어
  • 다크(Dark)는 서버리스 서비스 개발과 도입을 통합하는 프로그래밍 언어입니다.

레퍼런스

  1. ^ "Release 1.1.1 · MLstate/opalang". GitHub. Retrieved 2021-01-29.
  2. ^ "Some great news on Opa". Retrieved 2021-01-29.
  3. ^ Adam Koprowski (24 February 2012). "Node.js vs. Opa: Web Framework Showdown". developer.com.
  4. ^ Opa는 실제로 다양한 서버 측 백엔드를 지원하며, Nodej가 가장 인기 있는 백엔드입니다.
  5. ^ Robertson, William; Giovanni, Vigna (2009). "Static Enforcement of Web Application Integrity Through Strong Typing". SSYM'09 Proceedings of the 18th Conference on USENIX Security Symposium.[영구 데드링크]
  6. ^ "OPA: Language Support for a Sane, Safe and Secure Web, at OWASP 2010". OWASP. June 2010.
  7. ^ "GitHub repository".
  8. ^ "Opa – The Scalable Open Source Cloud Language". WebAppers. 22 July 2011.
  9. ^ "Interview: François-Régis Sinot on Opa, a Web Development Platform". InfoQ. 7 September 2011.
  10. ^ Neil McAllister (8 September 2011). "Introducing Opa, a Web dev language to rule them all". InfoWorld.
  11. ^ "InfoWorld review: Tools for rapid Web development". InfoWorld. 12 May 2010.
  12. ^ "Auch Opa ist für Cloud-Anwendungen". Heise Online. 29 July 2011.
  13. ^ "Opa - a unified approach to web programming". i-Programmer. 28 August 2011.
  14. ^ Koprowski, Binsztok (2011). "TRX: A Formally Verified Parser Interpreter". Logical Methods in Computer Science.
  15. ^ "Opa, un nouveau langage pour le développement d'applications Web" (in French). LinuxFr. 22 June 2011.
  16. ^ "Hello, database". Opa Documentation. Archived from the original on 2014-01-12. Retrieved 2012-02-22.
  17. ^ "Low-level MongoDB support". Opa Documentation. Archived from the original on 2014-01-12. Retrieved 2012-02-22.
  18. ^ "Programming Opa: Web development, reimagined". Computerworld. 1 February 2012.
  19. ^ Alastair Aitken (26 July 2011). "Opa, the cloud language – a test drive". Morgan Hill. Archived from the original on 25 September 2011. Retrieved 6 September 2011.

참고 문헌

외부 링크