HomePage |
RecentChanges |
EditorIndex |
TextEditorFamilies |
Preferences
Difference (from prior major revision)
(no other diffs)
Changed: 47c47
Macro Languages are used to write extensions to TextEditors
Macro Language Family
Popular Macro languages include:
- AutoHotkey - Used by the AutoHotkey keybaord macro program for Windows
- AwkLanguage - String-processing language invented at Bell Labs by Alfred Aho, Peter Weinberger, and Brian Kernighan
- EmacsLisp - The dialect of Lisp implemented by GnuEmacs
- JavaLanguage - Sun's Java Language by Dr. James Gosling
- JavaScriptLanguage - Script language originally for embedding in web pages, now more widely used
- LuaLanguage - A Brazilian language, intended for embedding
- LispLanguage - The language underlying Gnu Emacs and several other Emacs editor variants
- PerlLanguage - Larry Wall's Practical Extraction and Report Language
- PythonLanguage - Guido von Rossum's object-oriented script language
- RexxLanguage - Mike Colishaw's Restructured Extended Executor, derived from PL/1
- RubyLanguage - Yukihiro “matz” Matsumoto's script language
- S-LangLanguage - An embeddable script language interpreter
- TclLanguage - Dr. John Ousterhout's embeddable "glue" language
- TpuLanguage - Digital Equipment Corp's editor implementation language
- VB ScriptLanguage - Microsoft script language modeled on Visual Basic
There is a substantial overlap between MacroLanguage and ScriptLanguage
I remember reading once that somebody was going to create a language called CLike because of the number of other languages that claimed to be CLike but nothing like C.
On Windows, there is the option of using WindowsScriptingHost to allow choice of MacroLanguage. In Java, you can use the BeanScriptingFramework from IBM.
What makes a GoodMacroLanguage??
- Dynamic rather than static typing
- full set of control structures
- good string handling
- complete access into editor's internals
- ability to traverse pointers from object to object
- ability to iterate objects easily
MacroLanguage usage:
- GnuEmacs : EmacsLisp
- Brief, SlickEdit, MultiEdit, Epsilon, VEDIT : CLike
- XEDIT, KEDIT, THE : RexxLanguage
- TPU, LSE : TpuLanguage
- VIM : PerlLanguage, PythonLanguage, RubyLanguage, TclLanguage, VimL?
- Freemacs : MINT (Mint Is Not TRAC)
- SciTE : LuaLanguage