Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.compilers > #3542

Re: Which comes first, languages or compilers?

From Thomas Koenig <tkoenig@netcologne.de>
Newsgroups comp.compilers
Subject Re: Which comes first, languages or compilers?
Date 2023-11-02 07:20 +0000
Organization Compilers Central
Message-ID <23-11-001@comp.compilers> (permalink)
References <23-10-008@comp.compilers> <23-10-011@comp.compilers> <23-10-012@comp.compilers> <23-10-014@comp.compilers>

Show all headers | View raw


Luke A. Guest <laguest@archeia.com> schrieb:
> On 30/10/2023 03:26, Hans-Peter Diettrich wrote:
>> On 10/27/23 5:57 PM, Luke A. Guest wrote:
>>
>>> I don't really consider any of Wirth's languages to be designed as
>>> they would not have the gaping big holes they have.
>>
>> The *languages* are all well designed,
>
> That's not what the Oakwood guidelines say.

What do they say?

> system *libraries* are incomplete
>> or missing.
>
> Yes.

There is actually a problem with language design - how to handle I/O.
Kernighan discusses briefly this in "UNIX: A History and a Memoir".

You can make I/O part of the language, as FORTRAN first did with
FORMAT (which was an excellent idea). You can leave it unspecified
(which has been shown to be a bad idea). Or you can leave it to
libraries, like C or Modula-2 do.

If you leave it to libraries, the question is how to make up complex
format strings. You can use C's varargs, which make for easy use (but
somewhat difficult error checking), or you can use the Modula-2
approach where each type has its own library function, which makes I/O
a pain to use.

And varargs certainly has issues for compilers, especially in ABI
definition when arguments are usually passed in registers. Lenient
ABIs which allow you to call a normal functions with a varargs
argument list without crashing are certainly a source of errors, even
now.

> [I'd prefer not to refight 30 year old arguments about language design details here.
> At this point Oberon is purely of historical interest and Pascal is close to dead. -John]

A Pascal descendant, Delphi, is still being sold.

And Modula-2 has just gained a gcc front end, so not all of Wirth's
languages are dead.
[The line between language I/O and library I/O is quite blurry. The C
standard makes includes the stdio library as a mandatory part of the
language so compilers often do static compatibility checks of printf
strings and arguments at compile time. Sure, you can build the format
at runtime but it's almost always a static string. And, Fortran lets
you build the FORMAT statement in a runtime string, too. -John]

Back to comp.compilers | Previous | NextPrevious in thread | Find similar


Thread

Which comes first, languages or compilers? gah4 <gah4@u.washington.edu> - 2023-10-25 12:39 -0700
  Re: Which comes first, languages or compilers? Kaz Kylheku <864-117-4973@kylheku.com> - 2023-10-26 21:46 +0000
  Re: Which comes first, languages or compilers? "minf...@arcor.de" <minforth@arcor.de> - 2023-10-27 03:19 -0700
  Re: Which comes first, languages or compilers? "Luke A. Guest" <laguest@archeia.com> - 2023-10-27 16:57 +0100
    Re: Which comes first, languages or compilers? Hans-Peter Diettrich <DrDiettrich1@netscape.net> - 2023-10-30 04:26 +0100
      Re: Which comes first, languages or compilers? OrangeFish9737 <OrangeFish9737@invalid.invalid> - 2023-10-30 10:02 -0400
      Re: Which comes first, languages or compilers? "Luke A. Guest" <laguest@archeia.com> - 2023-10-30 20:35 +0000
        Re: Which comes first, languages or compilers? Thomas Koenig <tkoenig@netcologne.de> - 2023-11-02 07:20 +0000

csiph-web