comp.lang.ada
 help / color / mirror / Atom feed
From: Georg Bauhaus <rm.dash-bauhaus@futureapps.de>
Subject: Re: ada without ada libraries?
Date: Thu, 09 Feb 2012 14:48:50 +0100
Date: 2012-02-09T14:48:50+01:00	[thread overview]
Message-ID: <4f33cec2$0$7617$9b4e6d93@newsspool1.arcor-online.net> (raw)
In-Reply-To: <cb760726-7845-4b2f-97f4-9165504b44b9@b18g2000vbz.googlegroups.com>

On 09.02.12 12:08, Gautier write-only wrote:
> Interesting debate: theoretically, I would support fully Yannick.
> But when looking at my practice the strange fact is that the only DSL
> I'm using is command-line interpreter scripts.
> I can do everything else straight in Ada, even:
> 1) on-purpose data conversions, sorting, aggregation (in one case,
> replacing a R script; the Ada version ran hundred times faster and
> solved a data modelling bottleneck for several people)
> 2) 3D models (instead of VRML or MAXScript)
> 3) random language generators (Ada is used there in a purely
> functional way)
> 4) recompression of Zip archives by calling different Zippers and
> taking the best compression ratio
> 
> In cases 2) and 4) I can definitely do a lot more than using a
> corresponding DSL

I'd view this from a different angle, too. It isn't decisive,
I'm sure. The difference is not in the vocabulary, or in
convenience. Rather, there are things that one can do at the
language level (whatever the problem domain is) that is not
easily done using another language.

Suppose that some programming language has both data types
and associated sets of operations that are fundamental to handling
objects of this data type. Like one would expect addition to be
available with objects of numeric types. Such operations could
be somewhat like Ada's intrinsics, or like type attributes. Or they
could be somewhat like the schematic patterns of operations on
containers, etc. In any case, they, too, follow the conventional
scheme of (values, operations). But, what makes them different
is the kinds of values on the one hand and their "initial functions"
(from which to built more operations) on the other.

Suppose that data from some problem domain have a physical
structure that is very much comparable to the structure of the
above mentioned data types (data types as-is, not composed).
Likewise, the typical ways of using the data in the
domain are comparable to (language-based) operations on objects
of that data type (the "initial functions").

Then, "operational modes", the ways of doing things in the domain
will actually suggest such a "matching" programming language.
For example, "search" � la Prolog, or "generators" � la Icon
have influenced the types of built-in data structures and operations,
and have also influenced the interpretation of expressions.
The result is a different language, but a suitably different
language that is still a general purpose programming language.

The choice of a domain specific programming language in this sense
will be influenced by the domain: the data structures of the
domain might match the data structures in the language better.
The operations in the domain might match the ones of the language
better.

The difference between the languages when seen from this angle
is this: no need to produce yet another DSL to get language features
that are valuable in some domain.



  reply	other threads:[~2012-02-09 13:49 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-07 21:14 ada without ada libraries? Patrick
2012-02-08  2:04 ` BrianG
2012-02-08  3:11 ` Gautier write-only
2012-02-08  8:35 ` tonyg
2012-02-08  9:10 ` Simon Wright
2012-02-08 12:02 ` Stephen Leake
2012-02-08 13:07   ` Dmitry A. Kazakov
2012-02-08 21:10     ` Patrick
2012-02-08 21:39       ` Gautier write-only
2012-02-09  2:11       ` Shark8
2012-02-09  2:08     ` Shark8
2012-02-09  3:43       ` Jeffrey Carter
2012-02-09  4:17         ` Shark8
2012-02-09 12:26         ` mockturtle
2012-02-09  8:34       ` Dmitry A. Kazakov
2012-02-09  9:55         ` Yannick Duchêne (Hibou57)
2012-02-09 10:45           ` Dmitry A. Kazakov
2012-02-09 11:08             ` Gautier write-only
2012-02-09 13:48               ` Georg Bauhaus [this message]
2012-02-09 14:17                 ` Yannick Duchêne (Hibou57)
2012-02-09 14:05               ` Yannick Duchêne (Hibou57)
2012-02-09 16:47               ` Pascal Obry
2012-02-09 17:03                 ` Yannick Duchêne (Hibou57)
2012-02-09 17:08                   ` Yannick Duchêne (Hibou57)
2012-02-09 17:26                   ` Pascal Obry
2012-02-10  0:51                     ` Randy Brukardt
2012-02-09 17:31                   ` Dmitry A. Kazakov
2012-02-09 13:42             ` Yannick Duchêne (Hibou57)
2012-02-09 14:40               ` Dmitry A. Kazakov
2012-02-09 15:50                 ` Yannick Duchêne (Hibou57)
2012-02-09 17:21                   ` Dmitry A. Kazakov
2012-02-09 17:44                     ` Yannick Duchêne (Hibou57)
2012-02-10  0:56                 ` Randy Brukardt
2012-02-10  9:38                   ` Dmitry A. Kazakov
2012-02-14 19:08                 ` Yannick Duchêne (Hibou57)
2012-02-09 13:42             ` Yannick Duchêne (Hibou57)
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox