fbpx
Wikipedia

Subtext (programming language)

Subtext is a moderately visual programming language and environment, for writing application software. It is an experimental, research attempt to develop a new programming model, called Example Centric Programming, by treating copied blocks as first class prototypes, for program structure. It uses live text, similar to what occurs in spreadsheets as users update cells, for frequent feedback. It is intended to eventually be developed enough to become a practical language for daily use. It is planned to be open software; the license is not yet determined.

Schematic tables. An alpha build of the Subtext environment, which illustrates the unique "polymorphic conditionals" present in the IDE.

Subtext was created by Jonathan Edwards who submitted a paper on the language to OOPSLA. It was accepted as part of the 2005 conference.

Environment edit

 
Early build of the Subtext environment with the program's current state visible. The employee data (like "wage") is visibly changed after invoking the "Raise" method by clicking its "invoke arrow", and the hypothetical state (displayed within the Raise method) is also updated.
 
Early build of the Subtext environment with interactive console inputs.

Early video previews of the Subtext environment were released circa 2006,[1] which demonstrated the semantics of Subtext programs, and the close integration with the Subtex environment and runtime.

Subtext programs are declared and manipulated (or mutated) by adding and linking elements of various types to a syntax tree, and entering in values or names as necessary, as opposed to typing out textual programs. Due to the design of the Subtext language and environment, there is no distinction between a program's representation and its execution. Like spreadsheets, Subtext programs are live executions within an environment and runtime, and programming is direct manipulation of these executions via a graphical environment. Unlike typical functional programming languages, Subtext has simple semantics and is easily applicable to reactive systems that require mutable state, I/O, and concurrency, under a model known as "Reactive Programming".[2] Console input ("invocations") can be utilized via data flow within a Subtext program, allowing users to manipulate values interactively.

Coherence edit

A continuation and subset of the Subtext language using other principles,[3] is Coherence, an experimental programming language and environment, which uses a new model of change-driven computation called "Coherent reaction", to coordinate the effects and side-effects of programs interactively as they are being developed. The language is specialized for interactive application software, and is being designed by the creator of Subtext, Jonathan Edwards, who reports upon its development by publishing white papers.

Side effects are both the essence and bane of imperative programming. The programmer must carefully coordinate actions to manage their side effects upon each other. Such coordination is complex, error-prone, and fragile. Coherent reaction is a new model of change-driven computation that coordinates effects automatically. Automatically coordinating actions lets the programmer express what to do, not when to do it.

— Jonathan Edwards, Coherent Reaction, MIT CSAIL
 
Logo for the Coherence programming language

State changes trigger events called reactions, that in turn change other states. A coherent execution order is one in which each reaction executes before any others that are affected by its changes. A coherent order is discovered iteratively by detecting incoherencies as they occur and backtracking their effects. The fundamental building block of Coherence is the dynamically typed mutable tree. The fundamental abstraction mechanism is the virtual tree, whose value is lazily computed, and whose behavior is generated by coherent reactions.[4]

References edit

  • Example Centric Programming Jonathan Edwards. In OOPSLA October ’04. Describing IDE improvements using advanced UI techniques to present the results of a program during development, instead of the programmer interpreting the program code mentally. Screenshots from a prototype IDE using Eclipse illustrate the techniques with functional examples.
  • Subtext: uncovering the simplicity of programming Jonathan Edwards. In OOPSLA October ’05: Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications.
  • First Class Copy & Paste Jonathan Edwards. MIT CSAIL draft paper in March 2006. Detailed description and illustrations of the various functional programming elements within the first Subtext environment, including data flow, assignments, "action" invocation, current and hypothetical data state, concurrent transactions and operation of a console agent.
  • Coherent Reaction Jonathan Edwards. In OOPSLA Onward '09. Documents the beginnings of an experimental programming language loosely based upon Subtext, which uses "Coherent reaction", a new model of change-driven computation to coordinate the effects and side-effects of programs automatically. (report)
Cited
  1. ^ Introduction to Subtext, I/O and Mutable state, first Subtext environment video demo
  2. ^ First Class Copy & Paste, MIT CSAIL draft paper by Jonathan Edwards in 2006.
  3. ^ Coherence home page, states continuation of Subtext
  4. ^ DSpace@MIT : Coherent Reaction, CSAIL Digital Archive, Technical Reports

External links edit

  • Subtextual.org, official website of Subtext.

subtext, programming, language, this, article, multiple, issues, please, help, improve, discuss, these, issues, talk, page, learn, when, remove, these, template, messages, topic, this, article, meet, wikipedia, notability, guidelines, products, services, pleas. This article has multiple issues Please help improve it or discuss these issues on the talk page Learn how and when to remove these template messages The topic of this article may not meet Wikipedia s notability guidelines for products and services Please help to demonstrate the notability of the topic by citing reliable secondary sources that are independent of the topic and provide significant coverage of it beyond a mere trivial mention If notability cannot be shown the article is likely to be merged redirected or deleted Find sources Subtext programming language news newspapers books scholar JSTOR January 2013 Learn how and when to remove this message This article may contain excessive or inappropriate references to self published sources Please help improve it by removing references to unreliable sources where they are used inappropriately January 2013 Learn how and when to remove this message This article may rely excessively on sources too closely associated with the subject potentially preventing the article from being verifiable and neutral Please help improve it by replacing them with more appropriate citations to reliable independent third party sources January 2013 Learn how and when to remove this message Learn how and when to remove this message Subtext is a moderately visual programming language and environment for writing application software It is an experimental research attempt to develop a new programming model called Example Centric Programming by treating copied blocks as first class prototypes for program structure It uses live text similar to what occurs in spreadsheets as users update cells for frequent feedback It is intended to eventually be developed enough to become a practical language for daily use It is planned to be open software the license is not yet determined Schematic tables An alpha build of the Subtext environment which illustrates the unique polymorphic conditionals present in the IDE Subtext was created by Jonathan Edwards who submitted a paper on the language to OOPSLA It was accepted as part of the 2005 conference Contents 1 Environment 2 Coherence 3 References 4 External linksEnvironment edit nbsp Early build of the Subtext environment with the program s current state visible The employee data like wage is visibly changed after invoking the Raise method by clicking its invoke arrow and the hypothetical state displayed within the Raise method is also updated nbsp Early build of the Subtext environment with interactive console inputs Early video previews of the Subtext environment were released circa 2006 1 which demonstrated the semantics of Subtext programs and the close integration with the Subtex environment and runtime Subtext programs are declared and manipulated or mutated by adding and linking elements of various types to a syntax tree and entering in values or names as necessary as opposed to typing out textual programs Due to the design of the Subtext language and environment there is no distinction between a program s representation and its execution Like spreadsheets Subtext programs are live executions within an environment and runtime and programming is direct manipulation of these executions via a graphical environment Unlike typical functional programming languages Subtext has simple semantics and is easily applicable to reactive systems that require mutable state I O and concurrency under a model known as Reactive Programming 2 Console input invocations can be utilized via data flow within a Subtext program allowing users to manipulate values interactively Coherence editA continuation and subset of the Subtext language using other principles 3 is Coherence an experimental programming language and environment which uses a new model of change driven computation called Coherent reaction to coordinate the effects and side effects of programs interactively as they are being developed The language is specialized for interactive application software and is being designed by the creator of Subtext Jonathan Edwards who reports upon its development by publishing white papers Side effects are both the essence and bane of imperative programming The programmer must carefully coordinate actions to manage their side effects upon each other Such coordination is complex error prone and fragile Coherent reaction is a new model of change driven computation that coordinates effects automatically Automatically coordinating actions lets the programmer express what to do not when to do it Jonathan Edwards Coherent Reaction MIT CSAIL nbsp Logo for the Coherence programming language State changes trigger events called reactions that in turn change other states A coherent execution order is one in which each reaction executes before any others that are affected by its changes A coherent order is discovered iteratively by detecting incoherencies as they occur and backtracking their effects The fundamental building block of Coherence is the dynamically typed mutable tree The fundamental abstraction mechanism is the virtual tree whose value is lazily computed and whose behavior is generated by coherent reactions 4 References editExample Centric Programming Jonathan Edwards In OOPSLA October 04 Describing IDE improvements using advanced UI techniques to present the results of a program during development instead of the programmer interpreting the program code mentally Screenshots from a prototype IDE using Eclipse illustrate the techniques with functional examples Subtext uncovering the simplicity of programming Jonathan Edwards In OOPSLA October 05 Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming systems languages and applications First Class Copy amp Paste Jonathan Edwards MIT CSAIL draft paper in March 2006 Detailed description and illustrations of the various functional programming elements within the first Subtext environment including data flow assignments action invocation current and hypothetical data state concurrent transactions and operation of a console agent Coherent Reaction Jonathan Edwards In OOPSLA Onward 09 Documents the beginnings of an experimental programming language loosely based upon Subtext which uses Coherent reaction a new model of change driven computation to coordinate the effects and side effects of programs automatically report Cited Introduction to Subtext I O and Mutable state first Subtext environment video demo First Class Copy amp Paste MIT CSAIL draft paper by Jonathan Edwards in 2006 Coherence home page states continuation of Subtext DSpace MIT Coherent Reaction CSAIL Digital Archive Technical ReportsExternal links edit nbsp Wikimedia Commons has media related to Subtext programming language Subtextual org official website of Subtext Retrieved from https en wikipedia org w index php title Subtext programming language amp oldid 1091276300, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.