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.
computer languagedomaingeneral-purpose languagemarkup languagesmodeling languagesspecification languagesprogramming languagesdomain-specific modelingshell scriptsPostScriptTuring-completepage description languagedomain engineeringLanguage-oriented programmingscripting languageprogramming libraryGeneric Eclipse Modeling SystemEclipse Modeling Frameworkregular expressionscripting languagesbyte-codeCsounddata definition languagefunctional languagemodel-driven engineeringMakefileGraphViztype safetySQLAlchemyPythonKotlinvirtual machineregular expression engineredundancyidiomsVerilogMATLABGNU OctaveMathematicaMaximasymbolic mathematicsSpecification and Description Languagespreadsheetrelational databaseparsersregular expressionslexersgraph layoutgraph rewritingTerraformHashicorpPuppetGameMaker StudioDelphiColdFusionColdFusion Markup LanguagePhotoshopMediaWikitransclusionsoftware engineeringrequirements specificationwell-formed formulasmodel checkertheorem provermethodologyMetacompilermetacompilerscode generatorsmetalanguagemetaprogrammingprogram transformation systemsMeta-IITreeMetaUnrealUnreal TournamentUnrealScriptId Tech 2business rules enginesOracle Policy AutomationDroolssubject-matter expertsdecision tablesInterface Description LanguageApache ThriftGoogle Protocol Buffersline-oriented designGame Description LanguageOpenGL Shading LanguageGradleActionScriptvalidationefficiencyJetBrains MPSprojectional editinglanguage workbenchRacketArchitecture description languageLanguage for specific purposesJargonMetalinguistic abstractionProgramming domainLarus, JamesThe Art of Unix ProgrammingEric S. RaymondWayback MachineCiteSeerXTypes of programming languagesMachineAssemblyCompiledInterpretedLow-levelHigh-levelVery high-levelEsotericGenerationSecondFourthComputer scienceACM Computing Classification SystemHardwarePrinted circuit boardPeripheralIntegrated circuitVery Large Scale IntegrationSystems on Chip (SoCs)Energy consumption (Green computing)Electronic design automationHardware accelerationProcessorComputer architectureComputational complexityDependabilityEmbedded systemReal-time computingNetworksNetwork architectureNetwork protocolNetwork componentsNetwork schedulerNetwork performance evaluationNetwork serviceInterpreterMiddlewareOperating systemSoftware qualitySoftware notationsProgramming paradigmProgramming languageCompilerModeling languageSoftware frameworkIntegrated development environmentSoftware configuration managementSoftware librarySoftware repositorySoftware developmentControl variableSoftware development processRequirements analysisSoftware designSoftware constructionSoftware deploymentSoftware maintenanceProgramming teamOpen-source modelTheory of computationModel of computationStochasticFormal languageAutomata theoryComputability theoryComputational complexity theorySemanticsAlgorithmsAlgorithm designAnalysis of algorithmsAlgorithmic efficiencyRandomized algorithmComputational geometrycomputingDiscrete mathematicsProbabilityStatisticsMathematical softwareInformation theoryMathematical analysisNumerical analysisTheoretical computer scienceInformation systemsDatabase management systemInformation storage systemsEnterprise information systemSocial information systemsGeographic information systemDecision support systemProcess control systemMultimedia information systemData miningDigital libraryComputing platformDigital marketingWorld Wide WebInformation retrievalSecurityCryptographyFormal methodsSecurity hackerSecurity servicesIntrusion detection systemHardware securityNetwork securityInformation securityApplication securityHuman–computer interactionInteraction designSocial computingUbiquitous computingVisualizationAccessibilityConcurrencyConcurrent computingParallel computingDistributed computingMultithreadingMultiprocessingArtificial intelligenceNatural language processingKnowledge representation and reasoningComputer visionAutomated planning and schedulingSearch methodologyControl methodPhilosophy of artificial intelligenceDistributed artificial intelligenceMachine learningSupervised learningUnsupervised learningReinforcement learningMulti-task learningCross-validationGraphicsAnimationExtended realityAugmentedVirtualRenderingPhotograph manipulationGraphics processing unitImage compressionSolid modelingQuantum ComputingE-commerceEnterprise softwareComputational mathematicsComputational physicsComputational chemistryComputational biologyComputational social scienceComputational engineeringComputational healthcareDigital artElectronic publishingCyberwarfareElectronic votingVideo gamesWord processingOperations researchEducational technologyDocument managementOutline