From: Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP>
Subject: Re: Build language with weak typing, then add scaffolding later to strengthen it?
Date: Tue, 26 May 2015 12:36:47 +0000 (UTC)
Date: 2015-05-26T12:36:47+00:00 [thread overview]
Message-ID: <mk1pcv$i3j$1@dont-email.me> (raw)
In-Reply-To: mk1c19$u09$1@dont-email.me
On 2015-05-26, J-P. Rosen <rosen@adalog.fr> wrote:
>
> "What remains unsaid is mostly left so intentionally, either because it
> is derivable from stated rules of the language, or because it would
> unnecessarily restrict the freedom of implementors."
>
> Translate: we don't care for portability.
>
The latter bit made me uneasy as well.
> Another good one: Oberon's definition of a static expression:
> "A constant expression can be evaluated by a mere textual scan without
> actually executing the program."
>
> And the list of missing features is stunning, just some of them:
> No user defined integer types (only two integer types: BYTE and INTEGER,
> and they are /not/ incompatible), no enumeration types, no fixed points,
> arrays indexed from 0, no variant records, no exceptions, no tasking, no
> generics, no representation clauses, structural equivalence for array
> parameters, no user defined operators, no overloading, no overriding, etc...
>
Be careful you don't turn Oberon into another Ada with slightly different
syntax. While Oberon is too minimal, there is real potential for a
easy to learn lightweight language which is safer than C and which can be
used for all the things C is currently used for.
When I was thinking about the possibility of a half-way language between
C and Ada (I was thinking about something safer than C which wasn't as
heavyweight as Ada) the above was the list of things I came up with
which was missing from Oberon.
I would have certainly added things like user defined integer types
with ranges, enumeration types and a user definable array base index.
(Basically the core low level features of Ada).
I would not have added tasking or generics (this was a C language
replacement). Given potential implementation issues (code written in
this Oberon variant would have to interact with other languages),
I wasn't sure about exceptions. Maybe local exceptions only.
I was undecided about how strict to make the type conversion as well.
I would never have tolerated silent conversions which cause data loss
(integer to byte for example) but I was undecided about how strict to
make things when going in the other direction.
Given the goal in this theoretical exercise was to create a language to
attract C programmers I was wondering how much the type system could be
relaxed without compromising safety too much. (The language doesn't have
to be as safe as Ada, it just has to be a lot better than C.)
In addition, I would also have added syntax to implement atomic updating
of partial aggregates as per my proposal which was turned into an AI
(ai12-0127). This would allow you to get rid of C style bitmasks when
updating device registers.
I would also have dropped Oberon's case sensitivity or at least made
the keywords lower case.
I/O would be via an I/O library, not as part of the language.
> Looks more like a slightly improved Pascal appropriate for teaching than
> an industrial language.
>
But with the correct amendments, there's potential for growth just as
happened with Pascal.
Simon.
--
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world
next prev parent reply other threads:[~2015-05-26 12:36 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
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 [this message]
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