Related articles |
---|
From: | Thomas Koenig <tkoenig@netcologne.de> |
Newsgroups: | comp.compilers |
Date: | Sat, 8 Oct 2022 22:44:34 -0000 (UTC) |
Organization: | news.netcologne.de |
References: | 22-09-026 |
Injection-Info: | gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="28675"; mail-complaints-to="abuse@iecc.com" |
Keywords: | design, semantics, comment |
Posted-Date: | 08 Oct 2022 20:20:11 EDT |
Christopher F Clark <christopher.f.clark@compiler-resources.com> schrieb:
> I answered this question on Quora, but I think it is relevant to this
> community (and I know I'll get discussion as a result)..
>
> What attributes of a programming language simplify its implementation.
>
> 1. Simple semantics. That's it. Simple semantics. (Simple meaning
> whatever is easy to implement. Not mathematical elegance. Not
> consistency.)
>
> How do you get there?
If ease of language implementation is the primary concern, then
one could use a stack-based language. Easy to write an interpreter
or compiler for, hard to write in the language itself, so it will
likely be very unpopular (but popularity wasn't in the list of
requirements).
> Have a very simple set of types. BASIC had numbers, strings, and arrays.
> Don't worry about type conversions and floating point versus integer. Sweep
> that all under the rug.
You cannot "sweep it under the rug", you have to define the semantics
somewhere. It is possible to define the semantics ad-hoc and not to
document them (which you seem to be advocating). That is a recipe
for problems later.
> Whatever your implementation does, that's what it
> does. (Even simpler is what a lot of shells do, you have just "strings" and
> if the strings happen to be a number when you pass them to the "add
> function", + operator, it does arithmetic. If they aren't it, whatever it
> does is the definition.)
That strikes me as a bad idea if the language is supposed to be
used for something in the real world. Ill-defined semantics are
a disservice to potential users (but not laying traps for the user
was not on the list of requirements, either).
[...]
[Sounds like we're on our way to reinventing Forth. It had (still has)
famously tiny implementations. -John]
Return to the
comp.compilers page.
Search the
comp.compilers archives again.