Domain-specific language
Language-oriented programming considers the creation of special-purpose languages for expressing problems as standard part of the problem-solving process.A good example is the functional language XSLT, specifically designed for transforming one XML graph into another, which has been extended since its inception to allow (particularly in its 2.0 version) for various forms of filesystem interaction, string and date manipulation, and data typing.[clarification needed] A domain-specific language is like an electric drill: it is a powerful tool with a wide variety of uses, but a specific context, namely, putting holes in things.[citation needed] DSLs implemented via an independent interpreter or compiler are known as External Domain Specific Languages.[citation needed] DSL code embedded in a host language may have special syntax support, such as regexes in sed, AWK, Perl or JavaScript, or may be passed as strings.Domain-specific language could possibly provide a robust set of tools for efficient software engineering.A newer development is language-oriented programming, an integrated software engineering methodology based mainly on creating, optimizing, and using domain-specific languages.Complementing language-oriented programming, as well as all other forms of domain-specific languages, are the class of compiler writing tools called metacompilers.Besides parsing domain-specific languages, metacompilers are useful for generating a wide range of software engineering and analysis tools.The Id Tech engine used standard C code meaning C had to be learned and properly applied, while UnrealScript was optimized for ease of use and efficiency.Similarly, the development of more recent games introduced their own specific languages, one more common example is Lua for scripting.These languages provide a syntax for describing a Bayesian model and generate a method for solving it using simulation.