Ocsigen
Encyclopedia
Ocsigen is a Web application framework
Web application framework
A web application framework is a software framework that is designed to support the development of dynamic websites, web applications and web services. The framework aims to alleviate the overhead associated with common activities performed in Web development...

 based on concepts derived from recent research in the field of programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

s, namely that of continuation-based web programming
Continuation
In computer science and programming, a continuation is an abstract representation of the control state of a computer program. A continuation reifies the program control state, i.e...

. It is developed in OCaml, which is also the target language for users of this framework.

Ocsigen is composed of the following components:
  • A complete and extensible Web server
    Web server
    Web server can refer to either the hardware or the software that helps to deliver content that can be accessed through the Internet....

    , supporting features such as CGI
    Common Gateway Interface
    The Common Gateway Interface is a standard method for web servers software to delegate the generation of web pages to executable files...

    , a reverse proxy
    Reverse proxy
    In computer networks, a reverse proxy is a type of proxy server that retrieves resources on behalf of a client from one or more servers. These resources are then returned to the client as though it originated from the reverse proxy itself...

    , data compression, and access control. Extensions for this server may be written in Ocaml.
  • A module named Eliom for the creation of dynamic web sites using high-level abstractions. Its goal is to allow the implementation of complex behaviour using only a handful of lines, while ensuring correctness thanks to strong static typing
    Type system
    A type system associates a type with each computed value. By examining the flow of these values, a type system attempts to ensure or prove that no type errors can occur...

    . In particular, programmers may choose a page generation mode which enforces the output to comply with the recommendations of the W3C
    World Wide Web Consortium
    The World Wide Web Consortium is the main international standards organization for the World Wide Web .Founded and headed by Tim Berners-Lee, the consortium is made up of member organizations which maintain full-time staff for the purpose of working together in the development of standards for the...

    . This feature relies heavily on the strong static typing features of the OCaml language. Eliom allows for the entire application (both server side and client side) to be written in OCaml; compiling part of the code to JavaScript
    JavaScript
    JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....

     so as to be executed inside a Web Browser
    Web browser
    A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...

    . Client-server bidirectional communication is abstracted away by Eliom. Data exchange between client and server is facilitated by the fact that both are implemented using the same programming language and therefore the same data type
    Data type
    In computer programming, a data type is a classification identifying one of various types of data, such as floating-point, integer, or Boolean, that determines the possible values for that type; the operations that can be done on values of that type; the meaning of the data; and the way values of...

    s.


Ocsigen uses the Lwt cooperative threading library in order to handle concurrency.

The word Ocsigen is a homophone of the French
French language
French is a Romance language spoken as a first language in France, the Romandy region in Switzerland, Wallonia and Brussels in Belgium, Monaco, the regions of Quebec and Acadia in Canada, and by various communities elsewhere. Second-language speakers of French are distributed throughout many parts...

 Oxygène (the chemical element Oxygen
Oxygen
Oxygen is the element with atomic number 8 and represented by the symbol O. Its name derives from the Greek roots ὀξύς and -γενής , because at the time of naming, it was mistakenly thought that all acids required oxygen in their composition...

). Similarly, Eliom is a homophone of Hélium (the chemical element Helium
Helium
Helium is the chemical element with atomic number 2 and an atomic weight of 4.002602, which is represented by the symbol He. It is a colorless, odorless, tasteless, non-toxic, inert, monatomic gas that heads the noble gas group in the periodic table...

).

See also

  • OCaml, the programming language used by Ocsigen
  • Seaside, a Web application framework for Smalltalk
    Smalltalk
    Smalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis." It was designed and created in part for educational use, more so for constructionist...

    which is also continuation-aware
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK