Content deleted Content added
m Bot: links syntax |
GreenC bot (talk | contribs) Rescued 1 archive link; reformat 1 link. Wayback Medic 2.5 per WP:USURPURL and JUDI batch #27ae |
||
(10 intermediate revisions by 8 users not shown) | |||
Line 1:
{{multiple issues|
[[File:Subtext_vista.png|thumb|300px|'''Schematic tables.''' An alpha build of the Subtext environment, which illustrates the unique "polymorphic conditionals" present in the IDE.]]▼
{{notability|Products|date=January 2013}}
'''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 [[spreadsheet]]s 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.▼
{{self-published|date=January 2013}}
{{third-party|date=January 2013}}
}}
▲[[File:
▲'''Subtext''' is a moderately [[visual programming language]] and environment, for writing [[application software]]. It is an experimental, research attempt to develop a new [[programming language|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 [[spreadsheet]]s 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.
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==
[[File:
[[File:
Early video previews of the Subtext environment were released circa 2006,<ref>[http://subtextual.org/demo1.html Introduction to Subtext, I/O and Mutable state], first Subtext environment video demo</ref>
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 user interface|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".<ref>[http://www.subtextual.org/OOPSLA06.pdf First Class Copy & Paste], MIT CSAIL draft paper by Jonathan Edwards in 2006.</ref> [[Command-line interface|Console]] input ("invocations") can be utilized via data flow within a Subtext program, allowing users to manipulate values interactively.
==Coherence==
A continuation and subset of the Subtext language using other principles,<ref>{{usurped|1=[https://web.archive.org/web/20090430153310/http://coherence-lang.org/ Coherence home page]}}, states continuation of Subtext</ref>
{{cquote|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.||[http://dspace.mit.edu/handle/1721.1/45563 Coherent Reaction]|Jonathan Edwards, ''Coherent Reaction'', [[MIT CSAIL]]}}
[[File:
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.<ref>[http://dspace.mit.edu/handle/1721.1/45563 DSpace@MIT : Coherent Reaction], CSAIL Digital Archive, Technical Reports</ref>
==References==
*[http://
*[http://
*[http://www.
*[http://
;Cited
Line 30 ⟶ 35:
==External links==
{{commons category|Subtext (programming language)}}
*[http://subtextual.org/ Subtextual.org], official website of Subtext.
[[Category:Experimental programming languages]]
|