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.
- 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.
- Intentional Programming - In computer programming, Intentional Programming is a programming paradigm developed by Charles Simonyi that encodes in software source code the precise intention which programmers have in mind when conceiving their work.
- Programming paradigms
- Intentional Software Corp. www
Software engineering company begun by Charles Simonyi to advance IP; readings, Software Corp., presentations, news. Bellevue, Washington, USA.
- Language Oriented Programming: The Next Programming Paradigm www
Seminal article introduces, Oriented Programming: The Next Programming Paradigm, formalizes, defines LOP; by Sergey Dmitriev, cofounder, CEO of JetBrains, Inc. JetBrains onBoard Online Magazine.
- 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.
- Page Automated Code Generation www
Page on the original (Ward) Cunningham and Cunningham, Code Generation, Inc., Wiki. Automated Code Generation.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Hyperspaces Multi-Dimensional Separation of Concerns: Software Engineering using Hyperspaces www
Hyperspaces allow software enginners to split code - and other software artifacts such as requirements and design documents - along multiple concern dimensions, Separation of Concerns: Software Engineering using Hyperspaces, and recombine them automatically. Multi-Dimensional Separation of Concerns: Software Engineering using Hyperspaces.
- Cites MIT Technology Review and Aspect-Oriented and Adaptive Programming www
Cites AOP as one of top 10 innovations, Technology Review and Aspect-Oriented and Adaptive Programming, predicts that the power of aspect-orientation to separate previously hard-to-disentangle concerns will make it a big success. MIT Technology Review and Aspect-Oriented and Adaptive Programming.
- A The Compiler Connection www
A listing of compiler companies, Compiler Connection, compiler research projects, benchmarks, and compiler job listings. The Compiler Connection.
- Home The comp.compilers Newsgroup www
Home page of newsgroup. comp.compilers Newsgroup. Searchable full archive of messages from 1986, file archive, RSS feed. The comp.compilers Newsgroup.
- 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.
- Archive PEPM (Partial Evaluation and Semantics-Based Program Manipulation) www
Archive of workshop proceedings at ACM Digital Library Portal. (Partial Evaluation and Semantics-Based Program Manipulation). PEPM (Partial Evaluation and Semantics-Based Program Manipulation).
- Growing Generative Programming www
Growing article, Programming, with links to many related topics. Wikipedia. Generative Programming.
- Edited Generative Programming and Component Engineering www
Edited by Don Batory, Programming and Component Engineering, Charles Consel, Walid Taha; Springer, 2002, ISBN 3540442847. Proceedings of ACM SIGPLAN/SIGSOFT Conference, GPCE 2002, Pittsburgh, PA, USA, 6-8 October 2002. Generative Programming and Component Engineering.
- Papers Intentional Programming www
Papers on the metaprogramming system and former MS research project in which software is viewed as a database and multiple source code representations can be used. Intentional Programming.
- Abstract Domain-Specific Languages www
Abstract with many references, Languages, citations. Useful to research this topic. IEEE Transactions on Software Engineering. Domain-Specific Languages.
- 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