• Compiler Design in C (1990) the book

    From Mr. Man-wai Chang@3:633/10 to All on Mon Jul 20 22:50:55 2026

    Is it a standard textbook in computer science
    courses among US universities?

    Comments? ;)

    Compiler Design in C : Holub, Allen I.: Amazon.com.au: Books <https://www.amazon.com.au/Compiler-Design-Allen-I-Holub/dp/0131551515>

    Compiler design in C : Holub, Allen I : Free Download, Borrow, and
    Streaming : Internet Archive
    Publication date: 1990
    <https://archive.org/details/compilerdesignin0000holu>

    compilerDesignInC.pdf <https://holub.com/goodies/compiler/compilerDesignInC.pdf>



    --

    @~@ Simplicity is Beauty! Remain silent! Drink, Blink, Stretch!
    / v \ May the Force and farces be with you! Live long and prosper!!
    /( _ )\ https://sites.google.com/site/changmw/
    ^ ^ https://github.com/changmw/changmw
    The game is afoot... Meow...


    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From David Brown@3:633/10 to All on Mon Jul 20 17:37:41 2026
    On 20/07/2026 16:50, Mr. Man-wai Chang wrote:

    Is it a standard textbook in computer science
    courses among US universities?

    Comments? ;)

    Please do not post advert links, or links to possibly copyright
    violating content. Everyone here is perfectly capable of using a web
    search. If a book is still in print, it is unlikely that you can
    legally download a copy for free. There are exceptions, and a link to
    an author's or publisher's website where they make this clear and
    provide a valid source of the book is not unreasonable.



    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Dan Cross@3:633/10 to All on Mon Jul 20 16:06:35 2026
    In article <113lfc5$19buk$2@dont-email.me>,
    David Brown <david.brown@hesbynett.no> wrote:
    On 20/07/2026 16:50, Mr. Man-wai Chang wrote:

    Is it a standard textbook in computer science
    courses among US universities?

    Comments? ;)

    Please do not post advert links, or links to possibly copyright
    violating content. Everyone here is perfectly capable of using a web >search. If a book is still in print, it is unlikely that you can
    legally download a copy for free. There are exceptions, and a link to
    an author's or publisher's website where they make this clear and
    provide a valid source of the book is not unreasonable.

    Holub publishes that book on his web site, but he's an idiot,
    and I would not use that as any of a reference for writing a
    compiler, a reference for a C, or a reference for writing a C
    compiler in C. It's mostly regurgitation of the Dragon book
    with C syntax.

    - Dan C.


    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Mr. Man-wai Chang@3:633/10 to All on Tue Jul 21 00:44:46 2026
    On 7/21/2026 12:06 AM, Dan Cross wrote:

    Holub publishes that book on his web site, but he's an idiot,
    and I would not use that as any of a reference for writing a
    compiler, a reference for a C, or a reference for writing a C
    compiler in C. It's mostly regurgitation of the Dragon book
    with C syntax.


    So I was very lucky that the project
    never quite take off. Thanks. :)

    --

    @~@ Simplicity is Beauty! Remain silent! Drink, Blink, Stretch!
    / v \ May the Force and farces be with you! Live long and prosper!!
    /( _ )\ https://sites.google.com/site/changmw/
    ^ ^ https://github.com/changmw/changmw
    The game is afoot... Meow...

    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Janis Papanagnou@3:633/10 to All on Mon Jul 20 18:46:50 2026
    On 2026-07-20 18:06, Dan Cross wrote:

    Holub publishes that book on his web site, but he's an idiot,
    and I would not use that as any of a reference for writing a
    compiler, a reference for a C, or a reference for writing a C
    compiler in C. It's mostly regurgitation of the Dragon book
    with C syntax.

    Is this, quasi en passant, meant as a critique of the books of the
    authors of the "Dragon Book" as well?

    I'm asking because the authors (specifically Aho, Hopcroft, Sethi,
    Ullman) and their books had been authoritative during the 70's/80's
    in that area.

    Janis


    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From bart@3:633/10 to All on Mon Jul 20 19:30:19 2026
    On 20/07/2026 17:46, Janis Papanagnou wrote:
    On 2026-07-20 18:06, Dan Cross wrote:

    Holub publishes that book on his web site, but he's an idiot,
    and I would not use that as any of a reference for writing a
    compiler, a reference for a C, or a reference for writing a C
    compiler in C.ÿ It's mostly regurgitation of the Dragon book
    with C syntax.

    Is this, quasi en passant, meant as a critique of the books of the
    authors of the "Dragon Book" as well?

    I'm asking because the authors (specifically Aho, Hopcroft, Sethi,
    Ullman) and their books had been authoritative during the 70's/80's
    in that area.

    I wouldn't recommend the Dragon Book to anyone unless they are
    particularly interesting in the theory behind lexing and parsing. 1000
    pages and 500 pages of that seem to be spent on what is usually
    considered the simplest part of a compiler.

    There are newer and more practical works around.

    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Mr. Man-wai Chang@3:633/10 to All on Tue Jul 21 02:36:46 2026
    On 7/21/2026 12:06 AM, Dan Cross wrote:


    Holub publishes that book on his web site, but he's an idiot,
    and I would not use that as any of a reference for writing a
    compiler, a reference for a C, or a reference for writing a C
    compiler in C. It's mostly regurgitation of the Dragon book
    with C syntax.

    Compilers: Principles, Techniques, and Tools - Wikipedia <https://en.wikipedia.org/wiki/Compilers:_Principles,_Techniques,_and_Tools>

    Amazon.com : Compilers: Principles, Techniques, and Tools <https://www.amazon.com/s?k=Compilers%3A+Principles%2C+Techniques%2C+and+Tools>

    books/Compilers Principles Techniques and Tools (2nd Edition) .pdf at
    master ú qshadun/books ú GitHub <https://github.com/qshadun/books/blob/master/Compilers%20Principles%20Techniques%20and%20Tools%20(2nd%20Edition)%20.pdf>

    --

    @~@ Simplicity is Beauty! Remain silent! Drink, Blink, Stretch!
    / v \ May the Force and farces be with you! Live long and prosper!!
    /( _ )\ https://sites.google.com/site/changmw/
    ^ ^ https://github.com/changmw/changmw
    The game is afoot... Meow...

    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Mr. Man-wai Chang@3:633/10 to All on Tue Jul 21 02:37:48 2026

    Does it make sense to write your own
    C compiler? For what purposes?

    On 7/21/2026 2:30 AM, bart wrote:
    On 20/07/2026 17:46, Janis Papanagnou wrote:
    On 2026-07-20 18:06, Dan Cross wrote:

    Holub publishes that book on his web site, but he's an idiot,
    and I would not use that as any of a reference for writing a
    compiler, a reference for a C, or a reference for writing a C
    compiler in C.ÿ It's mostly regurgitation of the Dragon book
    with C syntax.

    Is this, quasi en passant, meant as a critique of the books of the
    authors of the "Dragon Book" as well?

    I'm asking because the authors (specifically Aho, Hopcroft, Sethi,
    Ullman) and their books had been authoritative during the 70's/80's
    in that area.

    I wouldn't recommend the Dragon Book to anyone unless they are
    particularly interesting in the theory behind lexing and parsing. 1000
    pages and 500 pages of that seem to be spent on what is usually
    considered the simplest part of a compiler.

    There are newer and more practical works around.


    --

    @~@ Simplicity is Beauty! Remain silent! Drink, Blink, Stretch!
    / v \ May the Force and farces be with you! Live long and prosper!!
    /( _ )\ https://sites.google.com/site/changmw/
    ^ ^ https://github.com/changmw/changmw
    The game is afoot... Meow...

    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lawrence D?Oliveiro@3:633/10 to All on Mon Jul 20 22:41:51 2026
    On Mon, 20 Jul 2026 19:30:19 +0100, bart wrote:

    I wouldn't recommend the Dragon Book to anyone unless they are
    particularly interesting in the theory behind lexing and parsing.
    1000 pages and 500 pages of that seem to be spent on what is usually considered the simplest part of a compiler.

    There continue to be quite a few interesting developments in those
    lines. For example, these new PEG things with their ?packrat? parsers.

    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Dan Cross@3:633/10 to All on Tue Jul 21 12:15:14 2026
    In article <113ljdq$qnef$1@dont-email.me>,
    Janis Papanagnou <janis_papanagnou+ng@hotmail.com> wrote:
    On 2026-07-20 18:06, Dan Cross wrote:

    Holub publishes that book on his web site, but he's an idiot,
    and I would not use that as any of a reference for writing a
    compiler, a reference for a C, or a reference for writing a C
    compiler in C. It's mostly regurgitation of the Dragon book
    with C syntax.

    Is this, quasi en passant, meant as a critique of the books of the
    authors of the "Dragon Book" as well?

    No, it's specifically about Holub's treatment. The Dragon book
    is much better, in my opinion, though showing its age.

    I'm asking because the authors (specifically Aho, Hopcroft, Sethi,
    Ullman) and their books had been authoritative during the 70's/80's
    in that area.

    For parsing and so on, I would argue they still mostly are. If
    you want to understand how regular expressions actually work,
    and you've outgrown things like Russ Cox's pages, you can do a
    lot worse than to read the dragon book.

    However, my friends who work on compilers tell me that the main
    areas of interest have moved on, and the Dragon book does not
    give a lot of treatment to code generation, modern optimization
    techniques, abstractions that allow parts of a compiler to be
    reused (e.g., in tooling) and so on.

    I'm not sure there is a great book for these; John Levine would
    know much better than I, but some friends who work on compilers
    say that "Engineering a Compiler" by Cooper and Torczon is
    better in those areas. I still have a soft spot for Appel's,
    "Modern Compiler Implementation in ML"; itself a bit dated now,
    I'm afraid, but in some senses a better treatment since the
    implementation language allows a higher level of abstraction, so
    less minutia to track while trying to concentrate on the
    material.

    - Dan C.

    (Disclaimer: I took compilers from Aho; one of the few Computer
    Science courses I took. And )

    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Janis Papanagnou@3:633/10 to All on Tue Jul 21 14:42:13 2026
    On 2026-07-21 14:15, Dan Cross wrote:
    In article <113ljdq$qnef$1@dont-email.me>,
    Janis Papanagnou <janis_papanagnou+ng@hotmail.com> wrote:
    On 2026-07-20 18:06, Dan Cross wrote:

    Holub publishes that book on his web site, but he's an idiot,
    and I would not use that as any of a reference for writing a
    compiler, a reference for a C, or a reference for writing a C
    compiler in C. It's mostly regurgitation of the Dragon book
    with C syntax.

    Is this, quasi en passant, meant as a critique of the books of the
    authors of the "Dragon Book" as well?

    No, it's specifically about Holub's treatment.

    Ah, okay.

    The Dragon book
    is much better, in my opinion, though showing its age.

    I just know a couple of their yet earlier books.[*]


    I'm asking because the authors (specifically Aho, Hopcroft, Sethi,
    Ullman) and their books had been authoritative during the 70's/80's
    in that area.

    For parsing and so on, I would argue they still mostly are. If
    you want to understand how regular expressions actually work,
    and you've outgrown things like Russ Cox's pages, you can do a
    lot worse than to read the dragon book.

    (Actually I'm just peripherally interested in the details of
    compiler constructions; in my professional life these topics
    didn't matter at all.)


    However, my friends who work on compilers tell me that the main
    areas of interest have moved on, and the Dragon book does not
    give a lot of treatment to code generation, modern optimization
    techniques, abstractions that allow parts of a compiler to be
    reused (e.g., in tooling) and so on.

    Yeah. It would have been surprising if the world didn't evolve.


    I'm not sure there is a great book for these; John Levine would
    know much better than I, but some friends who work on compilers
    say that "Engineering a Compiler" by Cooper and Torczon is
    better in those areas. I still have a soft spot for Appel's,
    "Modern Compiler Implementation in ML"; itself a bit dated now,
    I'm afraid, but in some senses a better treatment since the
    implementation language allows a higher level of abstraction, so
    less minutia to track while trying to concentrate on the
    material.

    Thanks for your insights.


    - Dan C.

    (Disclaimer: I took compilers from Aho; one of the few Computer
    Science courses I took. And )

    The person who taught us about compilers was horrible! So I was
    really glad to have access to the books of the authors mentioned
    above.

    Janis

    [*] Back then they told us that there was a group of authors who
    just copied parts of every book to publish new ones. (Not that
    this would be bad per se.) But I think it was these authors.
    I wouldn't be surprised if they extended on their earlier work
    to create the Dragon book (but I'm just speculating).


    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Dan Cross@3:633/10 to All on Tue Jul 21 15:29:12 2026
    In article <113npf5$qnef$2@dont-email.me>,
    Janis Papanagnou <janis_papanagnou+ng@hotmail.com> wrote:
    [snip]
    (Disclaimer: I took compilers from Aho; one of the few Computer
    Science courses I took. And )
    [snip]

    [*] Back then they told us that there was a group of authors who
    just copied parts of every book to publish new ones. (Not that
    this would be bad per se.) But I think it was these authors.
    I wouldn't be surprised if they extended on their earlier work
    to create the Dragon book (but I'm just speculating).

    That's a bit of a simplification, but largely true: Aho, Ullman,
    et al have written several books on data structures, algorithms,
    compilers, and so on, all of which cover overlapping material.
    Of course, much of that is because there's inherently a lot of
    overlap between those topics; the difference is in
    specialization, and in that sense, they are rather different.

    To bring it back to C, consider that the Dragon book was written
    on Unix, using Unix tools, all of which were written in C, and
    Aho also contributed much of the early Unix software in C, such
    as `egrep`, which extended `grep` by compiling regexp's to a DFA
    (instead of Thompson's NFA construction) and extended the
    earlier tool's regular expression syntax. A few years later,
    Andrew Hume wrote a lovely paper about speeding up `egrep`.

    - Dan C.


    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From BGB@3:633/10 to All on Wed Jul 22 15:29:57 2026
    On 7/20/2026 1:37 PM, Mr. Man-wai Chang wrote:

    Does it make sense to write your own
    C compiler? For what purposes?


    Targeting a target for which there are no other C compilers...
    Wanting a C compiler that isn't a behemoth.
    ...


    But, yeah, if your goal is to just write code on a normal PC, no reason
    to use your own.

    Just join the crowd, and use one of-typically:
    MSVC / Visual Studio: Native Windows
    GCC or Clang: Linux or similar.



    Dunno about modern MacOS land, apparently there people use Apple's tools
    and (unlike pretty much everyone else at this point) they charge
    subscription fees to have access to a compiler.

    IIRC, they keep other compilers out of their ecosystem partly by also requiring a digital signature on binaries so that they can be run (so
    like a FOSS compiler would not generate binaries that carry Apple's
    digital signatures; then with like a "developer signature" for binaries
    that could be run on the developer's machine, and also app-signing for distribution to other machines, ...).

    But, yeah, ...


    Not personally sure why anyone would choose this.
    Well, vs MS which is almost actively trying to drive people off their
    platform over to Linux or similar.

    Where, ideally, the main things they would need to do to keep people
    around being: keep old stuff working; and not screwing up the OS... Now
    they keep breaking stuff and screwing stuff up.

    Inertia will only last so long, and if they drive everyone to just
    running Linux or similar, this is presumably not an ideal situation for
    them.



    As for parsing:
    I usually just go with recursive descent.
    There are seemingly few good reasons to not just go with a recursive
    descent parser.

    Typically the major long-standing pain areas IME tend to be with code-generation stuff (unless you can tolerate "dead slow" then it is a
    lot easier).

    Would personally rather see more smaller and more specialized compilers
    (with at least semi-consistent interfaces) than the "forge one compiler
    to rule them all" approach that both GCC and Clang seem to be trying to
    take.


    Though, this does still leave C++ support as a problem area, as many
    codebases do actually use C++, and it is much harder to support than
    plain C (or other superficially similar languages, like C#).

    And, sadly, Cfront is little more than a relic...


    But, then again, the world of C++ has also partly become one of bloated
    build times and bloated binaries. Despite the limitations of what
    software one can compile, it maybe isn't too huge of a loss...

    Well, partly it is also a consequence of C++ land attracting a lot of developers with no regards for efficiency, often thinking that "good"
    coding practice is to chase after whatever are the newest language
    features (or, like, that the purpose of newer versions of the language
    are just to endlessly pile on new features...).

    To some extent, C has had a higher resistance to this sort of thing.



    On 7/21/2026 2:30 AM, bart wrote:
    On 20/07/2026 17:46, Janis Papanagnou wrote:
    On 2026-07-20 18:06, Dan Cross wrote:

    Holub publishes that book on his web site, but he's an idiot,
    and I would not use that as any of a reference for writing a
    compiler, a reference for a C, or a reference for writing a C
    compiler in C.ÿ It's mostly regurgitation of the Dragon book
    with C syntax.

    Is this, quasi en passant, meant as a critique of the books of the
    authors of the "Dragon Book" as well?

    I'm asking because the authors (specifically Aho, Hopcroft, Sethi,
    Ullman) and their books had been authoritative during the 70's/80's
    in that area.

    I wouldn't recommend the Dragon Book to anyone unless they are
    particularly interesting in the theory behind lexing and parsing. 1000
    pages and 500 pages of that seem to be spent on what is usually
    considered the simplest part of a compiler.

    There are newer and more practical works around.




    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Scott Lurndal@3:633/10 to All on Wed Jul 22 22:23:21 2026
    BGB <cr88192@gmail.com> writes:

    Dunno about modern MacOS land, apparently there people use Apple's tools
    and (unlike pretty much everyone else at this point) they charge >subscription fees to have access to a compiler.

    The Apple developer tool suite is free.

    https://en.wikipedia.org/wiki/Xcode


    IIRC, they keep other compilers out of their ecosystem partly by also

    GCC is available for MacOS. Install homebrew, then 'brew install gcc'.

    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From BGB@3:633/10 to All on Wed Jul 22 18:07:59 2026
    On 7/22/2026 5:23 PM, Scott Lurndal wrote:
    BGB <cr88192@gmail.com> writes:

    Dunno about modern MacOS land, apparently there people use Apple's tools
    and (unlike pretty much everyone else at this point) they charge
    subscription fees to have access to a compiler.

    The Apple developer tool suite is free.

    https://en.wikipedia.org/wiki/Xcode


    Other stuff I had read before said Xcode was only available via paying a licensing fee, with the OS otherwise locked down...

    Unlike, say, Windows or Linux...



    IIRC, they keep other compilers out of their ecosystem partly by also

    GCC is available for MacOS. Install homebrew, then 'brew install gcc'.

    OK.

    I don't actually have a Mac (nor the willingness to dump that much money
    on a computer), only stuff I had heard second-hand.



    My main PC is built using a CPU that is nearly a decade old at this
    point... Has 112GB of RAM, but fairly slow. Partly because the RAM kit
    was sold claiming speeds well in excess of what the RAM can actually run
    at reliably (and 112GB because it turns out the MOBO goes wonky and
    boot-loops before claiming 4GB, if you try putting in 128GB...).


    A lot of the other computers I had bought recently had mostly been
    things like refurbished Dell OptiPlex computers and similar (and they
    were, for a brief moment, fairly cheap...).

    So, not likely really in the market Macs are sold to...



    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Keith Thompson@3:633/10 to All on Wed Jul 22 16:59:10 2026
    BGB <cr88192@gmail.com> writes:
    On 7/22/2026 5:23 PM, Scott Lurndal wrote:
    BGB <cr88192@gmail.com> writes:
    Dunno about modern MacOS land, apparently there people use Apple's tools >>> and (unlike pretty much everyone else at this point) they charge
    subscription fees to have access to a compiler.
    The Apple developer tool suite is free.
    https://en.wikipedia.org/wiki/Xcode

    Other stuff I had read before said Xcode was only available via paying
    a licensing fee, with the OS otherwise locked down...

    Xcode is currently available for free, as you can see here: <https://apps.apple.com/us/app/xcode/id497799835>

    Whatever you read before was apparently either outdated or wrong.
    Why repeat it?

    Unlike, say, Windows or Linux...

    IIRC, they keep other compilers out of their ecosystem partly by also
    GCC is available for MacOS. Install homebrew, then 'brew install
    gcc'.

    OK.

    I don't actually have a Mac (nor the willingness to dump that much
    money on a computer), only stuff I had heard second-hand.

    Then you don't really know. Which is fine, but why speculate
    when there are plenty of people here with first-hand information?
    (The question is not directly topical, but C development for a
    popular platform is close enough IMHO.)

    Upthread, you said something vague about requiring digital signature
    on binaries. I don't *think* it's correct, and the availability
    of gcc via homebrew strongly suggests it isn't, but I'm not a Mac
    user either. It might be different for iOS and/or for applications
    installed from Apple's app store.

    --
    Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
    void Void(void) { Void(); } /* The recursive call of the void */

    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lawrence D?Oliveiro@3:633/10 to All on Thu Jul 23 04:04:54 2026
    On Wed, 22 Jul 2026 15:29:57 -0500, BGB wrote:

    IIRC, they keep other compilers out of their ecosystem partly by
    also requiring a digital signature on binaries so that they can be
    run (so like a FOSS compiler would not generate binaries that carry
    Apple's digital signatures; then with like a "developer signature"
    for binaries that could be run on the developer's machine, and also app-signing for distribution to other machines, ...).

    Locking down the platform so the user can only run apps that the
    platform owner has approved ... then it?s not a ?general-purpose
    computer? any more.

    But then, remember Apple dropped the ?Computer? from the company name
    a while back, so I guess you can?t say you didn?t see this coming ...

    Linux distros commonly use signed packages now. Note this is different
    from signing the actual binaries; the distribution system allows the
    user to add keys for certifying packages from alternative sources, not controlled by the official distro organization (or even not bothering
    to certify them at all, if they so choose), so there is no ?vendor
    lock-in?.

    Inertia will only last so long, and if they drive everyone to just
    running Linux or similar, this is presumably not an ideal situation
    for them.

    Companies too frequently make decisions for reasons of short-term
    gain, even if it causes them to lose in the long term. They can?t seem
    to help themselves, even when the stupidity of this is evident to
    everybody around them.

    A lot of politicians seem to work this way as well, particularly
    nowadays ...

    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From BGB@3:633/10 to All on Wed Jul 22 23:14:54 2026
    On 7/22/2026 6:59 PM, Keith Thompson wrote:
    BGB <cr88192@gmail.com> writes:
    On 7/22/2026 5:23 PM, Scott Lurndal wrote:
    BGB <cr88192@gmail.com> writes:
    Dunno about modern MacOS land, apparently there people use Apple's tools >>>> and (unlike pretty much everyone else at this point) they charge
    subscription fees to have access to a compiler.
    The Apple developer tool suite is free.
    https://en.wikipedia.org/wiki/Xcode

    Other stuff I had read before said Xcode was only available via paying
    a licensing fee, with the OS otherwise locked down...

    Xcode is currently available for free, as you can see here: <https://apps.apple.com/us/app/xcode/id497799835>

    Whatever you read before was apparently either outdated or wrong.
    Why repeat it?


    If not repeated it would have led to contextual ambiguity as to what is
    being referred to. I prefer to avoid creation of needless ambiguity,
    even if the detail being referred to turns out to be incorrect, it still
    needs to be addressed as to what is being addressed.


    Reading more stuff (and, cough, asking Gemini about it), apparently it
    wasn't that the tools require money, but rather that the binary signing
    costs money (but newly built binaries can apparently be used on a
    developer's machine for 7 days until the temporary build-time digital signature expires, but with a paid version the binaries don't expire).

    Or, at least, this is what I got when asking Gemini about it.
    No actual firsthand experience...



    As a weird bit of irony, I have more first hand experience with MPW than
    I do with Xcode:
    I was exposed to MPW once in elementary school;
    I have not seen or used Xcode at all...

    Nor really any first-hand experience with modern Apple systems...

    Well, since much after System 7 (when they were still using the M68K),
    Mac's effectively completely disappeared from view anywhere IRL (whole
    world from then on being mostly being a world of Windows boxes).


    Well, except the phone space, where pretty much everyone uses Android.


    Like, theoretically, the modern Apple stuff exists, but one never sees it...


    But, it is also references to hardware that seems *absurdly* expensive.
    Like computers solidly into $k territory...


    Well, there was at least a brief moment where one could get usable PC's
    for under $100 (mostly around the time on the Win11 release, there were
    a whole lot of 2nd hand OptiPlex's and similar; mostly with things like
    7th and 8th gen Core i3 and i5 CPUs; and coming usually with Win10).

    Not exactly high end, but bought a few, sadly these times have passed
    and not these things are going for closer to $300 ...

    Still enough PC to run games like Minecraft and similar though.


    The thing though (if building a new PC) is mostly to get parts that are
    around 2 or 3 generations behind, as then they are a bit cheaper.

    Though, annoyingly, had noted that it is seemingly getting harder to
    find new PC cases that have 5.25" bays and similar. Like, where exactly
    is one supposed to put their DVD-RW drive?...

    Well, or they become like floppy drives, where one now needs to plug in
    a floppy drive via USB if they want to use a 3.5" floppy or similar.


    Granted, relatively few of the computers I have still have floppy drives (mostly like a 2000s era PowerEdge rack server with a 3.5" floppy drive
    and DVD-ROM drive, *).

    *: Has dual Xeons, and 8GB of RAM via a crapton of RAM sticks.

    Granted, not really a PC one would use for general use (its onboard
    graphics suck, and no audio, and no ability to plug in a normal sound or graphics card). But, the HDD bays make it useful for copying HDDs.
    Can also be used like a space-heater in the winter, but sounds like one
    is running a vacuum cleaner. Was running CentOS on this thing.

    For a while, it was impressively fast at CPU based tasks, but my current
    PC has surpassed it (well, and 14x more RAM on a fraction as many DIMMs).


    Well, not sure what sorts of computers everyone else is running...


    Unlike, say, Windows or Linux...

    IIRC, they keep other compilers out of their ecosystem partly by also
    GCC is available for MacOS. Install homebrew, then 'brew install
    gcc'.

    OK.

    I don't actually have a Mac (nor the willingness to dump that much
    money on a computer), only stuff I had heard second-hand.

    Then you don't really know. Which is fine, but why speculate
    when there are plenty of people here with first-hand information?
    (The question is not directly topical, but C development for a
    popular platform is close enough IMHO.)

    Upthread, you said something vague about requiring digital signature
    on binaries. I don't *think* it's correct, and the availability
    of gcc via homebrew strongly suggests it isn't, but I'm not a Mac
    user either. It might be different for iOS and/or for applications
    installed from Apple's app store.


    Yeah, I don't really know here.


    There were references to programs requiring signatures, but if people
    can just build and run stuff on their own using 3rd party compilers, distribute binaries online, etc... Yes, this would seem to discredit the
    need for digital signatures to run programs.

    But, yeah, if people do actually know what is going on with all this,
    they are free to step in and address any misconceptions...

    Not sure why people would be talking about digital signing if there were
    no digital signing though.




    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lawrence D?Oliveiro@3:633/10 to All on Thu Jul 23 05:42:36 2026
    On Wed, 22 Jul 2026 23:14:54 -0500, BGB wrote:

    As a weird bit of irony, I have more first hand experience with MPW
    than I do with Xcode:
    I was exposed to MPW once in elementary school;
    I have not seen or used Xcode at all...

    I used MPW heavily from about 1988 until I gave up on Macs as my
    primary platform. Even when I was doing contract work where the
    deliverable had to build with Metrowerks CodeWarrior, I still used MPW
    to do most of the actual code editing.

    It was a powerful command-line-style environment, clearly
    Unix-inspired, within the limitations of the old MacOS. Thus, for
    example, because of the lack of multitasking, the Make command could
    not execute the generated build commands, it just output them. But
    since every command window was also a text-editor window, it was easy
    enough to select the commands and execute them.

    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From BGB@3:633/10 to All on Thu Jul 23 01:22:22 2026
    On 7/22/2026 11:04 PM, Lawrence D?Oliveiro wrote:
    On Wed, 22 Jul 2026 15:29:57 -0500, BGB wrote:

    IIRC, they keep other compilers out of their ecosystem partly by
    also requiring a digital signature on binaries so that they can be
    run (so like a FOSS compiler would not generate binaries that carry
    Apple's digital signatures; then with like a "developer signature"
    for binaries that could be run on the developer's machine, and also
    app-signing for distribution to other machines, ...).

    Locking down the platform so the user can only run apps that the
    platform owner has approved ... then it?s not a ?general-purpose
    computer? any more.

    But then, remember Apple dropped the ?Computer? from the company name
    a while back, so I guess you can?t say you didn?t see this coming ...


    Yeah, I am not sure what is going on.
    Some stuff I am hearing is that it isn't quite that locked down.

    I don't have any first-hand experience with modern Macs, so this is
    mostly what I had heard/read elsewhere on the internet.


    There was a rumor that MS was also considering such an app-signing thing
    for Win11, but from my own (albeit limited) experience with Win11, it
    can still run normal programs (though there was a setting I needed to
    find to stop Windows Defender from auto-deleting unknown EXEs).

    Though, it would appear MS's system is more something like running a
    hash over the EXE and asking MS's servers about it (with the intent of auto-deleting malware). But, just sorta lumps "I have no idea what this
    is" with "probably malware".

    Still, I wouldn't exactly hold up Windows 11 as a model of "goodness"
    either, more just that I had gotten a laptop that came with it, so it is
    just sorta there...



    Linux distros commonly use signed packages now. Note this is different
    from signing the actual binaries; the distribution system allows the
    user to add keys for certifying packages from alternative sources, not controlled by the official distro organization (or even not bothering
    to certify them at all, if they so choose), so there is no ?vendor
    lock-in?.


    OK.

    It is more a concern I think for whether people can freely compile and
    run programs.

    Though, things like validating binaries or packages can still make sense
    for a "stopping malware" or "stopping people from trying to inject
    harmful packages into distribution systems" thing.



    Though, it is like, hindering malware should not be used to try to
    control users or take away user freedoms.

    Though, if designing an installer system, it would make more sense if
    the scope of what programs can do is implicitly restricted; and software general installers should not have the implicit ability to modify the OS itself or to install things outside the scope of the specific program
    being installed or explicit registered dependencies.

    This is a weak point with Windows:
    Normal programs either operate with the full strength of the current
    user, or are effectively promoted to Admin level access (say, installers
    with the UAC thing).

    Personally, I think neither Windows nor Linux got this quite right though: Windows: Programs have separate install paths, but installers are
    arbitrary programs and have too much power;
    Linux: Everything goes into OS directories, to it is just sort of the
    grace of the distro's package-management system that installing stuff
    doesn't wreck the whole OS install.


    Though, would mean an implicit need to separate normal app installation
    from installation of system level components or drivers.

    Like, it is acceptable IMO if something like installing a driver "feels"
    like a different sort of task, and is maybe made to feel a little more ominous, so that the user doesn't just casually install malware.

    But, also, make it unlike with UAC where the user gets used casually confirming UAC whenever using *any* installer (any of which could then
    install system-level malware). And using UAC for installers is weakened
    when *most* of the executable files that people download off the
    internet are likely to be installers (so now you are relying on the user
    to not having been misled into downloading something that was mislabeled
    or tainted).

    So, yeah, I wouldn't be against seeing this system go away, it it could
    be replaced by something better (where the appearance of UAC style box actually means something).


    Inertia will only last so long, and if they drive everyone to just
    running Linux or similar, this is presumably not an ideal situation
    for them.

    Companies too frequently make decisions for reasons of short-term
    gain, even if it causes them to lose in the long term. They can?t seem
    to help themselves, even when the stupidity of this is evident to
    everybody around them.

    A lot of politicians seem to work this way as well, particularly
    nowadays ...

    Yes.

    There is MS, doing what MS does...



    Then there is everyone chasing "AI" and creating a situation that is
    likely to just come crashing down...

    But, with any luck, the AI crash will at least make computer hardware
    cheaper again (granted, if the economy doesn't entirely crash in the
    process).

    But, it does maybe hint that centralization over the control of various technologies is something better off avoided, but people don't really
    seem to get this...


    But, yeah, hand waving extrapolation:
    Now: AI wave;
    AI crash;
    Stuff then looks more like Max Headroom;
    Recovers some...
    Humanoid robots become the next big thing,
    possibly taking on a form like in Mega-Man;
    (Though, more like Classic Series...)
    (Can really hope it is not X or Zero series...).
    (But, yeah, still 20XX for now, not 21XX or 22XX).
    (Hint: everyone dies, human extinction...).
    (Note: The characters in Legends weren't actually humans).
    (Say: 2030s/2040s era).
    This also goes to crap;
    ...

    Much like "The Web" was necessary to create the world for LLM AI, then
    LLM AI will create the world for the rise of autonomous humanoid robots; though people will have realized by this point that trying to run
    everything in centralized datacenters isn't going to fly.

    One can just hope that we don't doom everyone, but it is likely that the
    "more likely" Doom scenarios will happen after my lifespan.

    Existential risk would come sooner if true AGI appears in the immediate future, but I will make a prediction that the current wave of AI will
    crash before true AGI or ASI appears.


    As for robots, while currently complex/expensive, it is likely that both access to stronger AI and also scaling manufacture would make mass
    production of humanoid robots much cheaper (less need for expensive
    servos, or even steppers in many cases, probably a lot of pulleys and brushed-DC motors like in power tools and toys). Like with humans, the
    robot brains could rely on more crude controls and sensory feedback and "figure it out".

    Though, might still need either CVTs or motors with variable or multiple torque bands (muscle can be faster but weaker or slower but stronger as
    need; which is harder to achieve cost-effectively with electric motors,
    and it is debatable if per-motor CVTs could be made cheap enough; but
    CVTs are still likely the cheaper option here; just need to come up with
    a CVT design that doesn't add significantly to the cost of an $0.25 10W
    PMDC motor or similar; where it would be too much cost and bulk to use
    things like 200W power-drill motors to articulate things like fingers in
    order to have non-piss-ant grip strength; etc...).



    But, people will still need to deal with the fallout of the relative
    value of human labor becoming nearly meaningless. Older economic models
    will no longer work going forward, as they assumes a growing population
    and labor scarcity, things will flip around in a world of shrinking
    population and labor abundance...

    One could think, maybe the collapse of AI would get rid of all the "vibe"/"slop", but this isn't any more likely than the "dot-com crash"
    leading to the end of the internet (just the "stupid amounts of money
    and resources into an unsustainable arm's race" thing will end).


    Then, maybe some time later, an ASI emerges from the ashes and
    (possibly) everything is f'ed.

    My previous guesstimates had put the ASI rise near the end of my current lifespan, but if it happens sooner, well, this isn't good. Would prefer
    it in any case if humanity survives, like we have come too far to just
    shoot ourselves in the foot and cease existing.

    But, past estimate was that when AGI emerges, people try to shove the
    genie back into the bottle; and it is when an AGI breaks free again that
    ASI emerges.

    But, also, I will predict that the current LLMs will not achieve AGI
    (and people will just run out of money before finding the route that
    does lead to AGI). But, when it does happen, will be characteristically different than the current LLMs.

    ...



    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From BGB@3:633/10 to All on Thu Jul 23 05:20:19 2026
    On 7/23/2026 12:42 AM, Lawrence D?Oliveiro wrote:
    On Wed, 22 Jul 2026 23:14:54 -0500, BGB wrote:

    As a weird bit of irony, I have more first hand experience with MPW
    than I do with Xcode:
    I was exposed to MPW once in elementary school;
    I have not seen or used Xcode at all...

    I used MPW heavily from about 1988 until I gave up on Macs as my
    primary platform. Even when I was doing contract work where the
    deliverable had to build with Metrowerks CodeWarrior, I still used MPW
    to do most of the actual code editing.

    It was a powerful command-line-style environment, clearly
    Unix-inspired, within the limitations of the old MacOS. Thus, for
    example, because of the lack of multitasking, the Make command could
    not execute the generated build commands, it just output them. But
    since every command window was also a text-editor window, it was easy
    enough to select the commands and execute them.


    This was sort of the weird childhood memory I had, like the use mouse to select command-text and a keyboard shortcut to run it command, was
    entirely bewildering to the version of myself that existed in elementary school...



    Like, a weird/surreal thing (defying much rational explanation), like
    some day a guy brings in a Mac II style computer to the elementary
    school, and shows me (and a girl that also hanged around) basically how
    to use it (including ejecting and reinstalling the large MO-disk (on an external drive), something like drag the drive to the trash, then look
    at the status light on the drive and wait for it to turn off, then push
    hard on the button to eject it). I think, when the disk was put back it
    (also requiring a good hard shove), the drive would spin back to life
    and after a moment the drive would reappear on the desktop.

    This being unlike the 3.5 drive, where dragging it to the trash would
    cause the disk to eject itself. Or PC floppy drives where much less
    force was needed for the eject.

    But, yeah, IIRC, the guy brought up MPW, with some commands in one
    window and a Pascal program in another (I mostly just remember that it
    was Pascal, something fairly simple, like a "Hello World" or similar).

    Some ritual of selecting the commands and hitting the keyboard shortcut
    would cause things to happen.

    But, I think, me and the girl tried to do so, but seemingly despite
    repeating the same basic actions, it didn't work. I think neither of us figured it out, and the guy got frustrated. He took the computer and
    left, never seen again.


    But, like I didn't know why he was there.


    Otherwise (prior to this), it was a case of I showed up in school, and I
    guess when the teacher realized I already knew how to read and similar,
    she went and got the school librarian, who then mostly took me off to
    mess around with computers in some back corner of the school, mostly
    doing Basic and similar (well, that or Oregon Trail on an Apple II, or
    some sort of progression from Oregon Trail and similar, to Apple BASIC,
    to QBasic).


    Well, like, I started going to classes, and other kids were around and
    can't do much. Teacher was showing letter cards, and I got annoyed so
    just sorta told the teacher what the smaller text under the letter said.
    The teacher froze, then got up and left the room. Very soon, another
    girl in the class got up and went over to the chalk board, grabbed some
    chalk, and started trying to draw stuff on the part of the board she
    could reach. A short time later, the teacher came back with the
    librarian, and I was taken elsewhere (then for a while, it was mostly
    more of a one-on-one thing).

    Well, also was taken to a building, where people did some cognitive type
    tests (like, look at pictures of patterns and tell which comes next,
    etc). I think one of the final things, was like I was in a brightly lit
    room with a one way mirror, and then some guy brought in a wooden puzzle (consisting of various interlocking wooden pieces) and then had me
    assemble it.

    I think the result of this was that I was diagnosed as autistic, and
    then the teachers mostly just sorta left me along and left me to mess
    around with computers and similar.


    I think this was sometime around the time the guy with the Mac II showed
    up... And then disappeared again...



    As for computers, there was the Apple II, and DOS PC's with QBasic.

    QBasic was available on the PCs, and was more readily available in other contexts. I think I was mostly up to the level of figuring out how to
    make spinning wireframe cubes in QBasic. It didn't take much to realize
    that QBasic on DOS had a lot more going for it than on an Apple II.


    Then a girl showed up, and kinda crowded my space. I think she was also tinkering around with the computers. I mostly remember that she was
    kinda loud, and prone to odd behaviors; I remember her being around felt unpleasant, but not sure how to describe the feeling much better. Was
    also around a similar age, and I remember she had long blonde hair.


    Somewhere around this time, I ended up being friends with another kid in
    the school, but this lasted until an incident (my own fault, not
    inclined to talk about it). This whole experience was mostly just an illustration of my own character flaws at the time.

    Well, one time I ended up boasting about my Basic skills, and his dad
    was like "prove it" and pulled up QBasic, but for whatever reason I
    didn't feel up to writing anything so proceeded to not write anything, realizing it would have been better had I not said anything. Like, I was
    just not in the right mental state to write code at that moment.

    ...

    Sometime around this time parents got a 486, and I could play various
    games on this... I think, mostly Duke Nukem (the 2D platformer version), Wolfenstein 3D, and Doom. Ended up mostly getting into Doom.


    Then ended up getting internet, and on the internet managed to find the
    Wolf3D source (on the ID Software FTP server), and started trying to understand this arcane relic.

    Seemingly went and got Turbo C, but was unable to get the Wolf3D code to
    build or work. Did start tinkering with other.

    By the end of elementary school, was moving from QBasic to C.

    Partly it was because it became obvious that C was far more capable than QBasic, even if C was harder to use. I also tried to mimic some parts of
    the Wolf3D code even if I didn't really understand it. Got to the level
    of doing a single rotating Wolf3D style block, using a texture from the
    game.

    It was very slow, but I remember that I had tried to use a sort of naive
    3D projection strategy that I had used for wireframe cubes in QBasic,
    namely taking X and Y and dividing by Z. I think at the time, I didn't
    have the idea of caching or linearly interpolating the values, so would
    do the X/Z and Y/Z division for every column, and then walk across 64
    columns for each face.

    It sorta worked, but nowhere near fast enough to be scaled up to an
    actual game.

    Also in these years, went from Win3.x to Win95.

    After 6th grade, family moved elsewhere (to a different part of the US).


    Then (then around 7th grade) HDD hard crash happened (and I lost
    basically everything). After this crash, went over to WinNT4 and Cygwin
    (and dual-booting to Linux). I remember that after the crash, I also
    went entirely over to C (so, the HDD crash was the final end to my
    QBasic era).

    Middle School also sucked, they just sorta expected me to sit around in
    the classes all day with little else to do, which was boring and sucked. High-school experience was mostly similar (bigger challenge was just to
    get through it and not freak out due to the general unpleasantness of
    the experience).

    Well, and I had also been told not to talk about any of the stuff from
    the old school, etc. To just try to be "normal", etc. Which partly meant trying to adopt a persona sorta like "Forest Gump" as the archetypal
    "normal person" (though in a way, also failing to recognize a few major details from the character). Though, ironically, it wouldn't be until I
    was much later that I understood the "heart" or intent of the movie,
    like him being a generally nice character and being witness to the
    relative tragedies in the lives of those around him. Though, the main
    thing at the time was sorta "try not to say or do anything that draws
    needless attention" (and in some ways, I was actually someone somewhat different, *1), ...

    *1: It wouldn't be until decade later that I started trying to reconcile
    some of this.



    Well, and in the High School years:
    Getting and tinkering with the Quake source;
    Then soon eroding Quake into a broken and unusable mess.
    Also trying to write a small experimental OS kernel;
    Got something to boot off a floppy,
    also a basic filesystem and shell, ...
    Writing a Scheme interpreter;
    Early work on a JavaScript interpreter.
    Then, taking college classes:
    Tinkering with Quake 2 source;
    Advancing my JS clone (then known as BGBScript);
    Writing the first version of BGBCC
    As a fork of the first VM for my JS clone;
    Initially, for using C as a script lang,
    Sorta like Quake 3...
    But, this sucked...
    Partly abandoning the Quake2 engine and writing a new 3D engine.
    Tried to mimic the Doom 3 engine.
    With stencil shadows and material shaders, etc;
    Then Minecraft came out, and I pivoted to cloning Minecraft.
    Failed to actually get a degree though...
    I didn't exactly have "study skills".
    Post college years:
    Wrote a new 3D engine, aiming to be simpler/smaller/faster.
    Was still a Minecraft clone though...
    Was partly written in a custom language (BGBScript2).
    BS2 was a language sort of inspired by Java and C#.
    Went for a cruder art style, as I got annoyed with whiny gamers.
    Crude sprite graphics, low res textures, ...,
    these guys went away.
    wasn't doing stuff to have people complain about the graphics.
    Make graphics "retro" and these guys leave me alone...
    Also the framerate wasn't quite so "dog crap".
    Then started tinkering with the SuperH / SH-4 ISA;
    Then got BGBCC to target SH-4.
    This mutated into an ISA that I called BJX1.
    Rebooted BJX1 into BJX2,
    mostly to clean up some of the awful mess...
    Mostly continued mutation of my ISA project.
    Wrote a 3rd 3D engine (yet another Minecraft clone)
    But, aiming to be lighter still...
    Needed to run on a 50MHz soft processor with small RAM footprint.
    ...
    <Present>


    Now I am old...


    Then again, it wasn't until I was well into my 20s that my coding skills mostly stopped being "total crap"... Did stuff, but the code wasn't
    exactly "good"...



    And, I have basically spent half my adult life tinkering with a custom
    ISA, and I still don't know if there was a point to any of this...

    But, at least the ISA project managed to be half-way interesting, even
    if it is lacking any sort of practical use.

    Does kinda seem like whatever potential value I had mostly just amounted
    to nothing though.

    Well, or I wasn't really ever much of anything, or maybe just defective...

    ...




    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Johann 'Myrkraverk' Oskarsson@3:633/10 to All on Fri Jul 24 00:45:37 2026
    On 20/07/2026 10:50 PM, Mr. Man-wai Chang wrote:

    Is it a standard textbook in computer science
    courses among US universities?

    Comments? ;)

    Compiler Design in C : Holub, Allen I.: Amazon.com.au: Books <https://www.amazon.com.au/Compiler-Design-Allen-I-Holub/dp/0131551515>

    Compiler design in C : Holub, Allen I : Free Download, Borrow, and
    Streaming : Internet Archive
    Publication date: 1990
    <https://archive.org/details/compilerdesignin0000holu>

    compilerDesignInC.pdf <https://holub.com/goodies/compiler/compilerDesignInC.pdf>

    Skipping over the noise that followed.

    I personally like Holub's book. It explains some things much better
    than the dragon book (2nd edition) in my experience. Holub is a solid
    start for your own compiler. That said, I think Appel's book in C is
    probably a better first start, assuming you start with C. The ML
    edition is fine if you want to use ML. I don't have either in front
    of me, and since the ML book was mentioned in the noise, I'll leave
    the exact title out for now.

    Appel's chapter on instruction selection is rather /terse/, and I
    recommend /Instruction Selection/ (2016) by Gabriel Hjort Blindell to
    fill in the gaps. You'll also want to brush up on your graph theory
    after reading that book, if you need a refresh of the subject; I did.

    I can recommend a book on graph theory, but I'll stick to compilers for
    now.

    Then there's the /SSA-Based Compiler Design/ (2022), edited by Fabrice Rastello, and Florent Bouchez Tichadou to catch up with some of the more
    modern optimization techniques.

    So, if you really want to build your own C compiler, in C, both Holub
    and Appel offer a start; the rest is up to more modern books.


    Good lucky, and happy compiling!
    --
    Johann | email: invalid -> com | www.myrkraverk.com/blog/
    I'm not from the Internet, I just work there.

    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lawrence D?Oliveiro@3:633/10 to All on Thu Jul 23 23:28:49 2026
    On Fri, 24 Jul 2026 00:45:37 +0800, Johann 'Myrkraverk' Oskarsson wrote:

    You'll also want to brush up on your graph theory after reading that
    book, if you need a refresh of the subject; I did.

    I can recommend a book on graph theory, but I'll stick to compilers
    for now.

    Interesting that the first edition of Andrew Tanenbaum?s ?Computer
    Networks? text also had a big section on graph theory, which was
    dropped in later editions.

    Just pointing out that the same mathematical theory can have
    applications across seemingly-unrelated areas ...

    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lawrence D?Oliveiro@3:633/10 to All on Thu Jul 23 23:37:08 2026
    On Thu, 23 Jul 2026 05:20:19 -0500, BGB wrote:

    On 7/23/2026 12:42 AM, Lawrence D?Oliveiro wrote:

    [MPW] was a powerful command-line-style environment, clearly
    Unix-inspired, within the limitations of the old MacOS. Thus, for
    example, because of the lack of multitasking, the Make command
    could not execute the generated build commands, it just output
    them. But since every command window was also a text-editor window,
    it was easy enough to select the commands and execute them.

    This was sort of the weird childhood memory I had, like the use
    mouse to select command-text and a keyboard shortcut to run it
    command, was entirely bewildering to the version of myself that
    existed in elementary school...

    The behaviour was, if you had a region of text selected, it would
    execute that, otherwise it would execute the current line.

    But, yeah, IIRC, the guy brought up MPW, with some commands in one
    window and a Pascal program in another (I mostly just remember that
    it was Pascal, something fairly simple, like a "Hello World" or
    similar).

    Some ritual of selecting the commands and hitting the keyboard
    shortcut would cause things to happen.

    But, I think, me and the girl tried to do so, but seemingly despite
    repeating the same basic actions, it didn't work. I think neither of
    us figured it out, and the guy got frustrated. He took the computer
    and left, never seen again.

    Remember that, on the Apple Macs, the ?Return? (main keypad) and
    ?Enter? (numeric keypad) keys were treated differently. In MPW, Return
    inserted a newline, while Enter executed commands (as per above).
    Alternatively you could hit ?-Return instead of Enter.

    --- PyGate Linux v1.5.18
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From BGB@3:633/10 to All on Thu Jul 23 21:05:05 2026
    On 7/23/2026 6:37 PM, Lawrence D?Oliveiro wrote:
    On Thu, 23 Jul 2026 05:20:19 -0500, BGB wrote:

    On 7/23/2026 12:42 AM, Lawrence D?Oliveiro wrote:

    [MPW] was a powerful command-line-style environment, clearly
    Unix-inspired, within the limitations of the old MacOS. Thus, for
    example, because of the lack of multitasking, the Make command
    could not execute the generated build commands, it just output
    them. But since every command window was also a text-editor window,
    it was easy enough to select the commands and execute them.

    This was sort of the weird childhood memory I had, like the use
    mouse to select command-text and a keyboard shortcut to run it
    command, was entirely bewildering to the version of myself that
    existed in elementary school...

    The behaviour was, if you had a region of text selected, it would
    execute that, otherwise it would execute the current line.


    I think the issue (from a very vague memory) was partly like I tried to imitate the actions, but seemingly nothing would happen (and I didn't
    know why). I had in some way been messing up the ritual in some way that seemingly mostly just made it entirely ineffective.
    But, yeah, I don't know now, it was a very long time ago.

    I don't know now whether the mouse or keyboard part of the ritual was
    messed up, only that it was something (that at least looked to me at the
    time) as if nothing had happened (no memory of text appearing or
    disappearing, just nothing).

    Actually, then again, the memory also seems to have the conspicuous lack
    of a visible cursor. Well, selecting text was visible, and I think the key-combo would cause the text to deselect, or something to this effect.

    (Like, in some sense, similar to when one uses the copy function in the Windows Command Prompt window, and upon hitting enter, the selection disappears, the text now copied into the clipboard).



    The other person could make it do the thing, giving a "Hello World" type
    box (with an 'OK' button or similar that made it disappear). My attempts
    to repeat the ritual simply giving nothing.


    The guy soon lost patience with my inability to figure out how to make
    it do the thing after having it been demonstrated.


    ( But, as the disclaimer, I still don't know whether any of this is
    real. Just that this is what sort of things it seems to contain... )




    But, yeah, IIRC, the guy brought up MPW, with some commands in one
    window and a Pascal program in another (I mostly just remember that
    it was Pascal, something fairly simple, like a "Hello World" or
    similar).

    Some ritual of selecting the commands and hitting the keyboard
    shortcut would cause things to happen.

    But, I think, me and the girl tried to do so, but seemingly despite
    repeating the same basic actions, it didn't work. I think neither of
    us figured it out, and the guy got frustrated. He took the computer
    and left, never seen again.

    Remember that, on the Apple Macs, the ?Return? (main keypad) and
    ?Enter? (numeric keypad) keys were treated differently. In MPW, Return inserted a newline, while Enter executed commands (as per above). Alternatively you could hit ?-Return instead of Enter.


    I think was trying to use Option-Return or similar in this case...

    There is a stronger "sense-resonance" towards it being a two-key combo
    with the main "Return" key.



    But, either way, something wasn't working...

    And, for a long time I wasn't sure why he was there, or if this event
    had happened at all. It seemed like he was someone who was familiar with
    the school librarian (but I don't know more). I remember after, he was
    talking some to the librarian, but I don't know what was said.

    Some time after this session (when we were no longer around) he just
    sorta packed up his stuff up and left.


    There are no real other memories of having seen him around anywhere.


    I remember the girl being around, but she didn't really have any luck at
    it either; seemingly running into the same basic issue. I don't remember
    her saying anything about it after, but she was usually pretty vocal
    (like the sort of person that would say whatever random thing crossed
    her mind; except being oddly quiet in this case).


    Though, to admit something, remembering stuff back this far does make me
    feel oddly paranoid.

    ...



    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Keith Thompson@3:633/10 to All on Thu Jul 23 19:13:12 2026
    BGB <cr88192@gmail.com> writes:
    [...]
    I remember the girl being around, but she didn't really have any luck
    at it either; seemingly running into the same basic issue. I don't
    remember her saying anything about it after, but she was usually
    pretty vocal (like the sort of person that would say whatever random
    thing crossed her mind; except being oddly quiet in this case).
    [...]

    Let me gently remind you that we discuss the C programming language
    here.

    --
    Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
    void Void(void) { Void(); } /* The recursive call of the void */

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lawrence D?Oliveiro@3:633/10 to All on Fri Jul 24 03:18:51 2026
    On Thu, 23 Jul 2026 21:05:05 -0500, BGB wrote:

    On 7/23/2026 6:37 PM, Lawrence D?Oliveiro wrote:

    Alternatively you could hit ?-Return instead of Enter.

    I think was trying to use Option-Return or similar in this case...

    That could have been the problem, if you were using ? instead of ?.

    Though, to admit something, remembering stuff back this far does
    make me feel oddly paranoid.

    You remind me of a similar sort of situation I encountered much
    earlier, back in my own student days, on the PDP-11/70 timeshared
    machine. There was this TECO-based full-screen editor that had become
    very popular. However, every now and then, somebody would press CTRL/C
    without meaning to, which was the command to exit the full-screen mode
    and go to the TECO prompt.

    This was particularly confusing because TECO could accept multiline
    input in this mode; pressing Return didn?t end input, it just started
    a new line. Instead, you had to press ESC twice to end the input and
    execute what you?d typed so far. The full-screen-mode editor was a
    TECO macro loaded in string register I, so the correct command to
    resume full-screen mode was ?execute the contents of string register I
    as a macro?:

    MI<ESC><ESC>

    I showed this to a friend, got out of full-screen mode again, let him
    try it ... and it didn?t work.

    I should also add that, when you pressed the ESC key, TECO echoed it
    as ?$?. So guess what my friend was typing ... yes, based on what he
    saw on the screen, not which key I was hitting, he was going for the
    ?$? key, not the ESC key.

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Mr. Man-wai Chang@3:633/10 to All on Fri Jul 24 18:16:30 2026
    On 7/24/2026 7:28 AM, Lawrence D?Oliveiro wrote:

    Interesting that the first edition of Andrew Tanenbaum?s ?Computer
    Networks? text also had a big section on graph theory, which was
    dropped in later editions.

    Just pointing out that the same mathematical theory can have
    applications across seemingly-unrelated areas ...


    You sure that programming was/is just about
    mathematics? Should all disciplines, be it
    science or art or engineering or whatever,
    in an university be governed, controlled,
    monitored, managed by department of
    mathematics? :)


    --

    @~@ Simplicity is Beauty! Remain silent! Drink, Blink, Stretch!
    / v \ May the Force and farces be with you! Live long and prosper!!
    /( _ )\ https://sites.google.com/site/changmw/
    ^ ^ https://github.com/changmw/changmw
    The game is afoot... Meow...

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Mr. Man-wai Chang@3:633/10 to All on Fri Jul 24 18:21:32 2026
    On 7/24/2026 12:45 AM, Johann 'Myrkraverk' Oskarsson wrote:

    So, if you really want to build your own C compiler, in C, both Holub
    and Appel offer a start; the rest is up to more modern books.
    Good lucky, and happy compiling!


    I just want to know why that lecturer in CityU
    wanted me to modify a C compiler. But his
    project never took off, I believe.

    OTOH, maybe I should finish reading that red
    book to hunt for useful codes that might be
    useful in future programming.

    Mathematics can be useful in a lot of things.
    BUT, mathematics might sometimes be an
    overkill and/or distraction for the tasks on
    hand. It's NOT talk about your talent in
    counting and extrapolation using numbers. :)

    --

    @~@ Simplicity is Beauty! Remain silent! Drink, Blink, Stretch!
    / v \ May the Force and farces be with you! Live long and prosper!!
    /( _ )\ https://sites.google.com/site/changmw/
    ^ ^ https://github.com/changmw/changmw
    The game is afoot... Meow...

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Johann 'Myrkraverk' Oskarsson@3:633/10 to All on Fri Jul 24 20:31:35 2026
    Subject: Re: Compiler Design in C ... Graph theories? /Handbook of Graph Drawing and Visualization/ and /Mastering Algorithms in C/

    On 24/07/2026 6:16 PM, Mr. Man-wai Chang wrote:
    On 7/24/2026 7:28 AM, Lawrence D?Oliveiro wrote:

    Interesting that the first edition of Andrew Tanenbaum?s ?Computer
    Networks? text also had a big section on graph theory, which was
    dropped in later editions.

    Just pointing out that the same mathematical theory can have
    applications across seemingly-unrelated areas ...

    Yes, if you want concrete examples in C, you can take a look at
    Loudon's /Mastering Algorithms with C/ (1999); chapter 11. He
    gives counting network hops and topological sorting as examples.

    And that's only reading the table of contents. I'll probably want
    to re-read that chapter soon because I have a feeling I skipped the
    examples last time I read it.

    I'm not looking up Sedgewick, nor CLRS [which I believe is the current university standard textbook these days] yet.

    You sure that programming was/is just about
    mathematics? Should all disciplines, be it
    science or art or engineering or whatever,
    in an university be governed, controlled,
    monitored, managed by department of
    mathematics? :)



    If you want some introductory notes about how to display
    graphs with your own code, and not just rely on GraphViz,
    you can take a look at their theory section. I've read
    some of these books, and may have bought some not on this
    list.

    https://graphviz.org/theory/


    Happy graphing in C!
    --
    Johann | email: invalid -> com | www.myrkraverk.com/blog/
    I'm not from the Internet, I just work there. | twitter: @myrkraverk

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Johann 'Myrkraverk' Oskarsson@3:633/10 to All on Mon Jul 27 00:41:01 2026
    On 21/07/2026 6:41 AM, Lawrence D?Oliveiro wrote:
    On Mon, 20 Jul 2026 19:30:19 +0100, bart wrote:

    I wouldn't recommend the Dragon Book to anyone unless they are
    particularly interesting in the theory behind lexing and parsing.
    1000 pages and 500 pages of that seem to be spent on what is usually
    considered the simplest part of a compiler.

    There continue to be quite a few interesting developments in those
    lines. For example, these new PEG things with their ?packrat? parsers.

    I quite like the LPEG parser. It's written in C, so it's implementation
    is on-topic in c.l.c, but it's used in Lua so it's usage is kind of off
    topic; that's why I didn't mention it before.

    What's your favorite PEG implementation?

    --
    Johann | email: invalid -> com | http://www.myrkraverk.com/blog/
    I'm not from the Internet, I just work there. | via Easynews.com

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Johann 'Myrkraverk' Oskarsson@3:633/10 to All on Mon Jul 27 00:42:45 2026
    On 21/07/2026 3:45 AM, Singapore wrote:
    On 20/07/2026 19:37, Mr. Man-wai Chang wrote:
    For what purposes?

    To piss you.

    Have you stopped taking your meds? It is unwise to do that especially with your mental state .

    Dear Mr. Singapore, how's your C compiler project getting along?

    --
    Johann | email: invalid -> com | http://www.myrkraverk.com/blog/
    I'm not from the Internet, I just work there. | via Easynews.com

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lawrence D?Oliveiro@3:633/10 to All on Sun Jul 26 22:47:15 2026
    On Mon, 27 Jul 2026 00:41:01 +0800, Johann 'Myrkraverk' Oskarsson
    wrote:

    What's your favorite PEG implementation?

    I found a use for Arpeggio, in this project
    <https://gitlab.com/ldo/darlink>.

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Mr. Man-wai Chang@3:633/10 to All on Wed Jul 29 16:03:46 2026
    On 7/27/2026 12:42 AM, Johann 'Myrkraverk' Oskarsson wrote:

    Dear Mr. Singapore, how's your C compiler project getting along?



    For cheating purposes in casinos worldwide?? :)

    --

    @~@ Simplicity is Beauty! Remain silent! Drink, Blink, Stretch!
    / v \ May the Force and farces be with you! Live long and prosper!!
    /( _ )\ https://sites.google.com/site/changmw/
    ^ ^ https://github.com/changmw/changmw
    The game is afoot... Meow...

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Johann 'Myrkraverk' Oskarsson@3:633/10 to All on Wed Jul 29 17:17:48 2026
    On 29/07/2026 4:03 PM, Mr. Man-wai Chang wrote:
    On 7/27/2026 12:42 AM, Johann 'Myrkraverk' Oskarsson wrote:

    Dear Mr. Singapore, how's your C compiler project getting along?



    For cheating purposes in casinos worldwide?? :)


    I wouldn't know. I've only played a bit in Grosvenor Casinos in London,
    I didn't play at all in the casino I found in Singapore. I believe it's
    been featured in several movies. You know, it's the casino with the
    elevator on top of the roof. I took a picture of the elevator on top of
    the roof, and then went down past the casino floor, and got myself a
    pink breakfast. I may still have the picture.

    And for the record, I don't cheat in casinos. Everyone at Grosvenor,
    London knows that. Well, for some value of /everyone/.

    Where have you played in casinos?

    --
    Johann | email: invalid -> com | http://www.myrkraverk.com/blog/
    I'm not from the Internet, I just work there. | via Easynews.com

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Mr. Man-wai Chang@3:633/10 to All on Fri Jul 31 00:44:21 2026
    On 7/29/2026 5:17 PM, Johann 'Myrkraverk' Oskarsson wrote:

    And for the record, I don't cheat in casinos. Everyone at Grosvenor,
    London knows that. Well, for some value of /everyone/.

    Where have you played in casinos?

    I did visit Las Vegas and one of its
    casinos decades ago, but only
    sight-seeing. Couldn't even notice
    nor remember the name of the casino.

    I do gamble in Hong Kong Jockey Club.
    Mark Six, but only when the jackpot
    is big. :)


    --

    @~@ Simplicity is Beauty! Remain silent! Drink, Blink, Stretch!
    / v \ May the Force and farces be with you! Live long and prosper!!
    /( _ )\ https://sites.google.com/site/changmw/
    ^ ^ https://github.com/changmw/changmw
    The game is afoot... Meow...

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Johann 'Myrkraverk' Oskarsson@3:633/10 to All on Fri Jul 31 04:10:21 2026
    On 31/07/2026 12:44 AM, Mr. Man-wai Chang wrote:
    On 7/29/2026 5:17 PM, Johann 'Myrkraverk' Oskarsson wrote:

    And for the record, I don't cheat in casinos.ÿ Everyone at Grosvenor,
    London knows that.ÿ Well, for some value of /everyone/.

    Where have you played in casinos?

    I did visit Las Vegas and one of its
    casinos decades ago, but only
    sight-seeing. Couldn't even notice
    nor remember the name of the casino.

    I do gamble in Hong Kong Jockey Club.
    Mark Six, but only when the jackpot
    is big. :)



    Well, I'll keep in mind to let you know, if I find myself heading
    to Hong Kong in the future. Until then, enjoy the HK Jockey Club!

    --
    Johann | email: invalid -> com | http://www.myrkraverk.com/blog/
    I'm not from the Internet, I just work there. | via Easynews.com

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)