Introduction to Extension programming Languages

As typically envisioned, an extensible programming language consisted of a base language providing elementary computing facilities, and a meta-language capable of modifying the base language. A program then consisted of meta-language modifications and code in the modified base language. The most prominent language-extension technique used in the movement was macro definition. Grammar modification was also closely associated with the movement, resulting in the eventual development of adaptive grammar formalisms. The Lisp language community remained separate from the extensible language community, apparently because, as one researcher observed, any programming language in which programs and data are essentially interchangeable can be regarded as an extendible [sic] language. ... this can be seen very easily from the fact that Lisp has been used as an extendible language for years

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 Camlp4, OpenC++, Seed7.

Extension compiler

For just the task of translating source code into something that can be executed on a computer, an extensible compiler should:

  • Use a plug-in or component architecture for nearly every aspect of its function.
  • Determine which language or language variant is being compiled and locate the appropriate plug-in to recognize and validate that language.
  • Use formal language specifications to syntactically and structurally validate arbitrary source languages.
  • assist with the semantic validation of arbitrary source languages by invoking an appropriate validation plug-in.
  • Allow users to select from different kinds of code generators so that the resulting executable can be targeted for different processors, operating systems, virtual machines, or other execution environment.

Extensible programming systems should regard programs as data to be processed. Those programs should be completely devoid of any kind of formatting information. The visual display and editing of programs to users should be a translation function, supported by the extensible compiler, that translates the program data into forms more suitable for viewing or editing.

List of Extension programming Languages

Extension programming Languages

An esoteric programming language (sometimes shortened to esolang) is a programming language designed to test the boundaries of computer programming language design, as a proof of concept, or as a joke. The use of esoteric distinguishes these languages from programming languages that working developers use to write software. Usually, an esolang's creators do not intend the language to be used for mainstream programming, although some esoteric features, such as visuospatial syntax, have inspired practical applications in the arts. Such languages are often popular among hackers and hobbyists.

  • AutoLISP
  • CAL
  • Python
  • Ruby
  • SQL
  • Squirrel
  • Tcl
  • Vim script

Python is a high-level programming language and extensible language. It is designed with code readability and its syntax allows programmers to express concept in few lines of code. It support multiple programming paradigms, including object-oriented, imperative and functional programming or procedural styles.

Read more

AutoLisp is an Extension languages and it is a dialect of Lisp Programming language which is built to used the full version of AutoCAD. It is used in artificial intelligence(AI) system. It is easy to understand programming language.

Read more

CAL is an event processing language that is used for extend Pro Audio and Professional with custom editing commands.It was started as a Musical Instrument Digital Interface equencer made by Twelve Tone systems.

Read more

Ruby Programming Language is an intepreted,object-oriented programming language. It was developed in 1995 by Yukihiro Matsumoto, a.k.a “Matz,” in Japan. It is influenced by Eiffel and Lisp Programming language. It supports Multiple Prgramming Paradiagms.

Read more

SQL(Structured Query Language) is a database computer programming language designed for the retrieval and management of data in relational database. IBM first developed of SQL in 1970s. Also it is an ANSI/ISO standard. It has become a standard universal language used mostly in relational database management system(RDBMS).

Read more

Tcl is a scripting language and extending programming language. It is used for rapid prototyping ,scripted application. It is used on enbeded systems platforms. Tcl can work on Windows, Linux, Mac OS X, as well as other platforms. It is an Open Source Programming language. The combination of TCL and Tcl GUI is called Tcl/Tk.

Read more