Wikipedia says:
Extensible programming is a term used in computer science to describe a computer programming style that focuses on the extension mechanisms of a programming language, compiler, and runtime.
For example, Tcl allows you to write your own control structures. See here .
I am interested in compiling a list of extensible programming languages ββthat are used in real code. It would be nice if you could give an example for your language.
LISP (Common Lisp, Guile ..) - , , - . , C . , + : !
LISP , Guile ( ) GNU.
Ruby , , , , , ... .
, Ruby: -)
Scala , , . , :
val romanNumeral = Map( 1 -> "I", 2 -> "II", 3 -> "III" )
The β - , 1, .
Jetbrains MPS (Meta-Programming System) . , , , . Java .
mbeddr - C, . , send/receive + / , , , PLE. , gdb . C , C M2T.
Aynth - , mbeddr /.
, , , , , , . . .
Seed7. Seed7 :
. Seed7 Seed7. : , .
Seed7 . . Seed7 , . IMHO Seed7 - , , . , , .
Jeebox - , , .
, ...
Jeebox.
( , Jeebox, , - , . , , , , . , , , Jeebox, , .)
TCL - :
Tcl " " , " - " , .
, while .
# rename original while to orig_while for future usage. rename while orig_while; #redefine while proc while {cond body} { # add customization code # calculate while call count. global while_call_count; incr while_call_count; # call original while in uper level stack uplevel orig_while $cond $body; # add customization code }
Tcl has a C language interface that makes it easy to integrate Tcl into an existing program. Tcl is used very widely in EDA tools .
And finally, TCL is so strong that it is impossible to determine Tcl BNF , which brings a lot of headaches .
Source: https://habr.com/ru/post/1725992/More articles:Grails - How do I create a model-restricted drop-down list for a view owned? - grailsProblem creating a web service from WSDL - javaphp insert sql function - sqlUse NMAKE to create all sources in a directory? - c ++Get the latest data for a list of objects - javaCommon classes / source code for solving Java algorithmic problems? - javaC # Interfaces and Disguise Type - inheritanceSynchronizing multiple asynchronous requests - asynchronousHow to avoid unintentionally encoding UTF-8 files as ASCII / ANSI? - notepad ++MDX filtering measures - pentahoAll Articles