comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Build language with weak typing, then add scaffolding later to strengthen it?
Date: Thu, 28 May 2015 18:39:20 -0500
Date: 2015-05-28T18:39:20-05:00	[thread overview]
Message-ID: <mk88v9$im6$1@loke.gir.dk> (raw)
In-Reply-To: 20c56bea-2803-4aa9-a626-2d25e480df20@googlegroups.com

<jan.de.kruyf@gmail.com> wrote in message 
news:20c56bea-2803-4aa9-a626-2d25e480df20@googlegroups.com...
...
>Now Ada has grown with the crowd.
>Ada95's syntax volume stands at roughly 3000 lexemes on par with C#.
>C++ is slightly less at 2500 or so.
>
>The old man (working in Georg's garage :) found scientific reason to follow 
>the 'reduced
>instruction set' trend, that was and still is, popular in hardware CPU 
>design. And came
>up with Oberon, with stands at 700 lexemes.

Other people mentioned it, but the number of pages is a horrible measure. 
Ada's standard was designed to be readable by actual programmers, thus it 
uses lots of extra descriptive text, shows lots of examples, and has lots of 
space-wasting internal headers. And, the Oberon standards contain no runtime 
library, that's a huge part of the Ada Standard. We've also got lots of 
reference indexes which are intended to make it easier to find things. So 
looking at the current Ada 2012+TC1 document:

Total: 951 pages (PDF).
Non-normative indexes, summarys, and tables: (Annex K-Q [106 pages], Table 
of Contents [10 pages], Index [53 pages]) [169 pages]
ISO mandated boilerplate, acknowledgements, other useless cruft: 16 pages.
Description of how the standard is organized (Chapter 1): 8 pages.
Clauses totally devoted to examples: 9.11 (3 pages); 12.8 (2 pages); 11.4.3 
(1 page); 13.11.6 (3 pages). [9 pages]
Libraries included in the core description (half of 3.9 - 2 pages; most of 
9.6, 9.6.1 - 8 pages; most of 13.11, 13.11.4, 13.11.5 - 5 pages).
The core library (Annex A): 227 pages.
Interfacing to foreign languages (mostly libraries): 28 pages.
Specialized needs annexes (these are optional - Annex C-H): 138 pages.
Obsolete stuff (Annex J): 14 pages.

That leaves the actual language definition at 337 pages. To be fair, one 
could eliminate stuff not even contemplated by Oberon - tasks (Chapter 9, 40 
pages), generics (Chapter 12, 18 pages not including the example removed 
earlier), and low-level programming (Chapter 13, 51 pages excluding the 
example removed earlier).

So now we're at 228 pages. With some reformatting, and removing all of the 
introductory text, notes, and examples, we'd save at least 20% of that 
(probably more). So that means that an equivalently formatted Ada standard 
would probably be roughly 180 pages (or maybe 270 if we left everything in).

Surely I could get the core of the Standard into 17 pages if I reformatted 
it enough (you'd probably need a magnifying glass to read it, though). 
Meaning that the number of pages doesn't mean much.

Is that bloat? Dunno. It's certainly a lot of extra precision in describing 
things, making code following the standard more likely to be portable. 
Hardly any programming languages describe the process of elaboration, or 
carefully define how finalization happens, including in weird corner cases 
that aren't likely to actually happen. And so on.

Assuming that your description of the syntax is accurate, the Oberon manual 
is clearly leaving out vast amounts of needed detail. (And no, you can't 
look at source of a compiler to "augment" a language standard!). The Ada 
syntax alone takes up 21 pages in the Ada standard. That means that the 
Oberon syntax should take up 21/3000*700 = 4.9 pages of text. That leaves 
precious little space to describe the visibility rules for packages (to take 
one nasty example).

And, of course, Wirth himself has a long history of writing sloppy language 
standards and leaving when other people try to clean them up (Algol-W, 
Pascal, Modula, Modula 2, ...). He's a brilliant language designer, but he 
always has underdescribed standards. (That surely includes building 
standards without any library description, which is nonsense for any 
purpose.)

Summary: standard page counts are meaningless. One can change them wildly by 
removing non-normative stuff, by reformatting, by leaving out the libraries 
that every programmer will need, and other stuff that has nothing whatsoever 
to do with content.

                                 Randy Brukardt, ARG Editor.



  parent reply	other threads:[~2015-05-28 23:39 UTC|newest]

Thread overview: 111+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-21 19:11 Build language with weak typing, then add scaffolding later to strengthen it? Nasser M. Abbasi
2015-05-21 19:29 ` AdaMagica
2015-05-22  7:27   ` Dmitry A. Kazakov
2015-05-22  7:42 ` Georg Bauhaus
2015-05-22  8:54   ` Nasser M. Abbasi
2015-05-22 11:29 ` kalvin.news
2015-05-22 12:57   ` J-P. Rosen
2015-05-22 14:01     ` kalvin.news
2015-05-22 14:34       ` kalvin.news
2015-05-23 11:09         ` Peter Chapin
2015-05-22 15:37       ` J-P. Rosen
2015-05-22 16:29         ` kalvin.news
2015-05-22 17:39           ` Simon Clubley
2015-05-22 17:51             ` kalvin.news
2015-05-22 19:41               ` J-P. Rosen
2015-05-22 20:04                 ` kalvin.news
2015-05-22 20:32                   ` Jeffrey R. Carter
2015-05-22 21:22                     ` kalvin.news
2015-05-23 11:14                     ` Peter Chapin
2015-05-23 12:42                       ` Jeffrey R. Carter
2015-05-23 17:48                         ` Simon Wright
2015-05-25  8:34                           ` Pascal Obry
2015-05-25 10:22                             ` Simon Wright
2015-05-25 18:12                               ` Georg Bauhaus
2015-05-22 20:39                   ` jan.de.kruyf
2015-05-28 22:33                     ` Randy Brukardt
2015-05-29  6:56                       ` jan.de.kruyf
2015-05-23 12:40                   ` Georg Bauhaus
2015-05-25  7:14                     ` jan.de.kruyf
2015-05-25 12:26                       ` Georg Bauhaus
2015-05-25 18:44                       ` Shark8
2015-05-25 19:54                         ` jan.de.kruyf
2015-05-25 21:25                           ` Shark8
2015-05-26  7:46                           ` Georg Bauhaus
2015-05-26  8:12                           ` Georg Bauhaus
2015-05-25 20:01                         ` Nasser M. Abbasi
2015-05-25 20:04                           ` Nasser M. Abbasi
2015-05-25 20:37                             ` jan.de.kruyf
2015-05-26  7:52                               ` Jacob Sparre Andersen
2015-05-26 11:43                                 ` jan.de.kruyf
2015-05-26 15:38                                   ` jan.de.kruyf
2015-05-28 23:39                                   ` Randy Brukardt [this message]
2015-05-29  8:51                                     ` Stefan.Lucks
2015-05-29 18:04                                       ` Jeffrey R. Carter
2015-05-29 21:51                                       ` Randy Brukardt
2015-05-30 10:28                                         ` jan.de.kruyf
2015-05-30 11:12                                           ` Dmitry A. Kazakov
2015-05-30 13:21                                             ` jan.de.kruyf
2015-05-30 15:00                                               ` Simon Clubley
2015-05-30 18:40                                                 ` jan.de.kruyf
2015-05-30 16:40                                               ` Dmitry A. Kazakov
2015-05-30 20:52                                                 ` jan.de.kruyf
2015-05-31  8:31                                                   ` Nasser M. Abbasi
2015-05-31  8:52                                                   ` Dmitry A. Kazakov
2015-06-04 15:31                                                     ` jan.de.kruyf
2015-06-04 17:23                                                       ` Dmitry A. Kazakov
2015-06-04 20:14                                                         ` Shark8
2015-06-04 23:12                                                           ` Nasser M. Abbasi
2015-06-01 21:36                                                 ` Randy Brukardt
2015-06-04 15:22                                                   ` jan.de.kruyf
2015-05-27 13:41                                 ` jan.de.kruyf
2015-05-25 23:05                             ` Peter Chapin
2015-05-26  8:01                               ` Sylvain Laperche
2015-05-26  8:20                                 ` Georg Bauhaus
2015-05-26  8:49                                 ` J-P. Rosen
2015-05-26 12:36                                   ` Simon Clubley
2015-05-26 13:39                                     ` J-P. Rosen
2015-05-26 14:21                                       ` Dmitry A. Kazakov
2015-05-26 16:19                                       ` Shark8
2015-05-26 20:51                                         ` J-P. Rosen
2015-05-26 17:11                                   ` Jeffrey R. Carter
2015-05-28 23:49                                     ` Randy Brukardt
2015-05-29 21:54                                       ` Randy Brukardt
2015-05-29 22:32                                         ` Jeffrey R. Carter
2015-05-26  8:17                               ` Georg Bauhaus
2015-05-28 22:46                       ` Randy Brukardt
2015-05-28 23:18                         ` Nasser M. Abbasi
2015-05-29 21:27                           ` Randy Brukardt
2015-05-29  7:55                         ` jan.de.kruyf
2015-05-29  9:27                           ` Simon Wright
2015-05-29 10:23                             ` jan.de.kruyf
2015-05-29 12:01                               ` G.B.
2015-05-29 13:43                                 ` jan.de.kruyf
2015-05-29 15:32                             ` Simon Wright
2015-05-29 15:57                               ` jan.de.kruyf
2015-05-29  9:31                         ` Jacob Sparre Andersen
2015-05-29 10:37                           ` jan.de.kruyf
2015-05-29 10:56                           ` Björn Lundin
2015-05-29 12:03                             ` Peter Chapin
2015-05-29 21:00                               ` Shark8
2015-05-29 20:57                           ` Shark8
2015-05-29 21:36                             ` Randy Brukardt
2015-06-01 22:20                               ` Shark8
2015-05-29 21:45                           ` Randy Brukardt
2015-05-29 23:12                             ` Peter Chapin
2015-05-30  9:10                               ` Georg Bauhaus
2015-05-23 13:01                 ` Luke A. Guest
2015-05-22 17:57             ` Simon Wright
2015-05-22 18:31               ` jan.de.kruyf
2015-05-22 14:03     ` jan.de.kruyf
2015-05-22 15:21       ` David Botton
2015-05-22 15:23         ` jan.de.kruyf
2015-05-22 15:31       ` Bob Duff
2015-05-22 15:48         ` jan.de.kruyf
2015-05-22 14:25     ` G.B.
2015-05-22 15:04     ` Bill White
2015-05-22 15:28     ` Bob Duff
2015-05-22 17:46       ` Simon Clubley
2015-05-22 18:16         ` jan.de.kruyf
2015-05-22 19:01           ` Simon Wright
2015-05-22 19:41             ` jan.de.kruyf
replies disabled

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