Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Oldest / First Domain specific language

Tags:

dsl

I've got an assignment in school, but I keep having problems with finding any information. We're currently programming and working with internal and external DSLs together with java. We are trying to make our own parser for External DSL, something like:

entity [ Room "bedroom"
         item "lamp",
         item "bed",
         item "sheets"
]

BUT. My assignment was to find the OLDEST or the FIRST domain specific language ever, so we could try to analyze it and reconstruct it. It doesn't have to be programming related. But it can be a language between humans even prehistoric. I just have to find some proof it was DOMAIN-SPECIFIC, that it was created to comunicate about something specific and thus it was easier to understand. I googled for hours but nothing. I don't know if there is anyone who is somthing like a language professional or studies languages.

like image 567
markedone66 Avatar asked Nov 10 '15 01:11

markedone66


People also ask

What is a language that is domain specific?

A Domain Specific Language is a programming language with a higher level of abstraction optimized for a specific class of problems. A DSL uses the concepts and rules from the field or domain.

Is Python a domain specific language?

A Domain Specific Language, or DSL for short, is a language that's specialized to a particular application domain. In other words, it's a programming language that's used for a more specific application or use case than a general-purpose language like Python. For example, regular expressions are a DSL.

Which is the best example of Domain Specific Language 1 point?

A good example of a DSL is HTML. It is a language for the web application domain. It can't be used for, say, number crunching, but it is clear how widely used HTML is on the web.

Is SQL a domain specific language?

Lesson Summary We also learned that a Domain Specific Language (DSL) is a specialized programming language that's used for a single purpose. DSLs include: SQL (used for database queries and data manipulation) HTML (web application development)


2 Answers

Domain-specific languages have existed as long as there have been people. The first candidates would have been spoken - like the DSLs for ordering at Starbucks or Subway - but the first from which we have records will be the written ones. I wouldn't require a DSL to have a separate mechanical or computing interpreter. That's something relatively new, unnecessarily limits the search, and is not part of a standard definition of DSL. A DSL need not generate anything; it can be used simply for recording and communicating something. I also wouldn't require a DSL to be widely used: many computing DSLs today are for only small numbers of people, and limited to within a single company or project. I think I would rule out the most simple or direct representations like tally sticks: if anyone can understand it, even out of context, it probably doesn't form its own language.

  • Knitting patterns are a clear DSL, and the first book containing them dates back to at least 1524 AD (not many books printed before that!).

  • Even older is musical notation, with the earliest found dating back to 2000 BC.

  • Astronomical records are truly ancient, with the earliest being bone sticks marked in ways that tracked the moon's phases, from possibly as long ago as 35,000 BC. A rather clear example of a moon phase DSL exists from around 32,000 BC:Aurignacian Lunar Calendar / diagram, drawing after Marshack, A. 1970; Notation dans les Gravures du Paléolithique Supérieur, Bordeaux, Delmas / Don’s Maps

like image 145
stevek_mcc Avatar answered Dec 31 '22 20:12

stevek_mcc


I would propose the Jacquard loom, or at least the pattern of holes it processed.

The loom is a special purpose (mechanical) interpreter of cards containing weaving patterns. So one "writes" weaves on the cards by making holes in them (the hole pattern is the DSL), and the loom interprets the cards to "compile" a woven document.

From wikipedia:

"Multiple rows of holes were punched on each card, with one complete card corresponding to one row of the design"

It has all the properties of DSL:

  • a special notation used and shared (actually, widely) by experts in a problem domain
  • a notation that makes it significantly easier to express the problem/solution more easily than other available notations
  • a precise interpretation/meaning independent of the person reading it
  • an automated interpreter

I don't have any evidence, but I assume there were some directions written about configuring and operating it; if nothing else, the patent on the loom. That would be reference manual and a user guide :-}

This precedes even Babbage's mechanical engines.

Even older than that is Napiers Bones, a set of marked rods used to perform multiplication.

like image 30
Ira Baxter Avatar answered Dec 31 '22 20:12

Ira Baxter