Metaprogramming (synonym: generative programming): a style of programming in which, in some way, a program writes or modifies some code in some language. Compilers and self-modifying programs are two examples of metaprograms. Metaprogramming Programming Computers.
Metaprogramming is the art of writing of computer programs with the ability to treat programs as their data. (wikipedia)
- Wikipedia: Metaprogramming is a programming technique in which computer programs have the ability to treat programs as their data. It means that a program can be designed to read, generate, analyse or transform other programs, and even modify itself while running. In some cases, this allows programmers to minimize the number of lines of code to express a solution, thus reducing the development time. It also allows programs greater flexibility to efficiently handle new situations without recompilation.
- Metaprogramming Category
- Aspect weaver - An aspect weaver is a metaprogramming utility for aspect-oriented languages designed to take instructions specified by aspects and generate the final implementation code. The weaver integrates aspects into the locations specified by the software as a pre-compilation step.
- Compile-time reflection - In computer science, reflection is the ability of a computer program to examine, introspect, and modify its own structure and behavior at runtime.
- Genetic programming - In artificial intelligence, genetic programming is a technique whereby computer programs are encoded as a set of genes that are then modified using an evolutionary algorithm ? it is an application of genetic algorithms where the space of solutions consists of computer programs.
- Homoiconicity - In computer programming, homoiconicity is a property of some programming languages in which the program structure is similar to its syntax, and therefore the program's internal representation can be inferred by reading the text's layout.
- Inferential programming - In ordinary computer programming, the programmer keeps the program's intended results in mind and painstakingly constructs a computer program to achieve those results. Inferential programming refers to techniques and technologies enabling the inverse.
- Instruction set simulator - An instruction set simulator is a simulation model, usually coded in a high-level programming language, which mimics the behavior of a mainframe or microprocessor by "reading" instructions and maintaining internal variables which represent the processor's registers.
- Programming paradigms
- Researches Tim Sheard's Page www
Researches the design, Sheard's Page, implementation, use of metaprogramming systems, created MetaML, many links on functional metaprogramming, NSF papers. Portland State University, Computer Science Department. Tim Sheard's Page.
- Investigation A Comparative Analysis of Meta-programming and Aspect-Orientation www
Investigation of language constructs to support improved separation of crosscutting concerns. Comparative Analysis of Meta-programming and Aspect-Orientation. By Jeffrey G. Gray, Assistant Professor, University of Alabama, Birmingham. A Comparative Analysis of Meta-programming and Aspect-Orientation.
- Meta IPAD Pro www
Meta CASE tool. Pro. It allows developers to build CASE tools that allow end users to use graphical object manipulation to design and maintain end user systems. It incorporates a high level visual programming interface and provides multiplatform GUI and execution environment. IPAD Pro.
- Covers Dynamic Languages Group - MIT AI Lab www
Covers reflection, Languages Group - MIT AI Lab, self-modifying code or mutable MOPs, Dylan, and aspect-oriented programming. Dynamic Languages Group - MIT AI Lab.
- Page Automated Code Generation www
Page on the original (Ward) Cunningham and Cunningham, Code Generation, Inc., Wiki. Automated Code Generation.
- Methods The Art of Metaprogramming, Part 3: Enterprise Metaprogramming www
Methods and uses of metaprogramming in Scheme language, Art of Metaprogramming, Part 3: Enterprise Metaprogramming, how macros are programmed and can make large-scale programming easier. Explores limits of metaprogramming, describes MDA and problems it solves, short example of text system using MDA. IBM developerWorks. The Art of Metaprogramming, Part 3: Enterprise Metaprogramming.
- Controversy Code Generation is a Design Smell www
Controversy page on the original (Ward) Cunningham and Cunningham, Generation is a Design Smell, Inc., Wiki. Code Generation is a Design Smell.
- Focuses Eclipse Modeling Project www
Focuses on evolving and promoting model-based development technologies by providing unified set of modeling frameworks, Modeling Project, tooling, standards implementations; EMF, modeling framework and code generator to build tools and other programs based on structured data model. Descriptions, documents, downloads. Eclipse Modeling Project.
- Methods The Art of Metaprogramming, Part 2: Metaprogramming Using Scheme www
Methods and uses of metaprogramming in Scheme programming language, Art of Metaprogramming, Part 2: Metaprogramming Using Scheme, see how macros are programmed and how they can make large-scale programming tasks easier. IBM developerWorks. The Art of Metaprogramming, Part 2: Metaprogramming Using Scheme.
- An The Art of Metaprogramming, Part 1: Introduction to Metaprogramming www
An under-used programming technique is writing programs that generate programs or program parts. Art of Metaprogramming, Part 1: Introduction to Metaprogramming. Covers: why metaprogramming is needed, some components of it, building a code generator; language-sensitive macro programming in Scheme. IBM developerWorks. The Art of Metaprogramming, Part 1: Introduction to Metaprogramming.
- Dedicated ModelBased.net www
Dedicated to tools and information related to model-driven system development, ModelBased.net, aiming at supporting OMG's vision of MDA. ModelBased.net.
- Organisers Aspect-Oriented Software Development www
Organisers of a conference about Aspect-oriented Development Aspect-Oriented Software Development.
- Modular, Composition Filters www
Modular, Filters, orthogonal, aspect-oriented filters which are attached to classes and intercept messages. Composition Filters.
- GCC Links and Selected Readings for Compiler Writers www
GCC extending specific literature, and Selected Readings for Compiler Writers, processor chips documentation, collected papers/sites on language standards, compilers, optimization. Links and Selected Readings for Compiler Writers.
- Multi-site Programming Language and Compiler Research Groups www
Multi-site working groups and projects listing. Programming Language and Compiler Research Groups.
- ACM PEPM'94 www
ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation. PEPM'94. With PLDI'94 and LFP'94. Orlando, Florida; June 1994. Online and printed workshop proceedings, program committee. PEPM'94.
- ACM PEPM'02 www
ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation. PEPM'02. Preceding POPL'02. Portland, Oregon, USA; 14--15 January 2002. PEPM'02.
- Brief Concept Programming www
Brief description, Programming, long forum exchange with many insights. Slashdot. Concept Programming.
- Growing Generative Programming Wiki www
Growing resource treats many GP topics. Programming Wiki. Part of Program Transformation Wiki. Generative Programming Wiki.
- Article Self-Writing Software www
Article describes basics of IP simply. Software. PC Magazine. Self-Writing Software.
- Deep Intentional Programming: A Talk with Charles Simonyi (The WYSIWYG) www
Deep interview. Programming: A Talk with Charles Simonyi (The WYSIWYG). Edge Foundation. Intentional Programming: A Talk with Charles Simonyi (The WYSIWYG).
- Brief Language Oriented Programming www
Brief reference, Oriented Programming, forum exchange with many insights. Lambda the Ultimate. Language Oriented Programming.
- Information Personal Site of Sergey Dmitriev www
Information and links on Dmitriev and LOP. Personal Site of Sergey Dmitriev.
- Online Wikipedia - Computer Programming www
Online encyclopedia article. Wikipedia - Computer Programming.
- Alexa: Metaprogramming Programming
Alexa Directory Top Sites: Metaprogramming Programming
- DMOZ: Metaprogramming Programming
dmoz.org Directory: Metaprogramming Programming