Content deleted Content added
→Modern movement: describing extensible syntax in Coq |
m Disambiguating links to Coq (link changed to Coq (software)) using DisamAssist. |
||
Line 29:
=== Extensible syntax ===
{{category see also|Extensible syntax programming languages}}
This simply means that the source language(s) to be compiled must not be closed, fixed, or static. It must be possible to add new keywords, concepts, and structures to the source language(s). Languages which allow the addition of constructs with user defined syntax include [[Coq (software)|Coq]],<ref>{{Cite web |title=Syntax extensions and notation scopes — Coq 8.17.0 documentation |url=https://coq.inria.fr/refman/user-extensions/syntax-extensions.html |access-date=2023-05-25 |website=coq.inria.fr}}</ref> [[Racket (programming language)|Racket]], [[Camlp4]], [[OpenC++ (software tool)|OpenC++]], [[Seed7]],<ref name="Zingaro2007">Zingaro, Daniel, "[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.69.2848&rep=rep1&type=pdf Modern Extensible Languages]", SQRL Report 47 McMaster University (October 2007), page 16.</ref> [[Red (programming language)|Red]], [[Rebol]], and [[Felix (programming language)|Felix]]. While it is acceptable for some fundamental and intrinsic language features to be immutable, the system must not rely solely on those language features. It must be possible to add new ones.
=== Extensible compiler ===
|