Domain Specific Programming Language Classification

Domain Specific Programming Language Classification

Wikipedia http://en.wikipedia.org/wiki/Domain-specific_language:

In software development and domain engineering, a domain-specific language (DSL) is a programming language or specification language dedicated to a particular problem domain… The opposite is a general-purpose language, such as C, Java or Python…

Related to my post on emergent programming languages, here’s my first proposal for taxonomy for the domain classifications:

 Image

  • According to customer requirements
    • Business Domain (E.g. insurance, banking, sales)
    • situated applications
  • Programmers
    • According to age (e.g. languages for kids)
    • According to experience (e.g. beginner’s languages)
    • collaborative programming
  • Programming paradigms
    • Imperative
    • Functional (e.g. Haskell)
    • Meta-Programming (e.g. Rascal)
    • … (see Wikipedia)
  • Classify according to Output
    • For websites (e.g. HTML output)
    • For diagrams
    • For texts (e.g. regular expressions)
    • Code generation (e.g. Compiler generators, metacompilers)
    • Game developing
    • Natural language generation
  • Manipulating Objects / Input
    • Text manipulation (e.g. regular expressions)
    • File manipulation (e.g. shell scripting)
    • Media manipulation (pictures, videos, sound)
    • Natural language processing
    • Relational database querying
    • Mapping Reality
      • Business rules engines
      • Simulation tools
      • Artificial intelligence
  • Support Software Development Process
    • Code checking (e.g. profilers, consistency checker)
    • Documentation
    • Tools for build and deployment
    • Versioning and archiving code
    • Support management processes
    • Rapid software prototyping
    • Support for design patterns
  • Special Hardware Target
    • Microcode
    • Assembler
    • Programmable controller (PLC/SPS)

0 thoughts on “Domain Specific Programming Language Classification

Leave a Reply

Your email address will not be published. Required fields are marked *