The technical arguments I see about the form of generics e.g <T>
vs [T] are so full of shit it's insane it's an aesthetics argument plain and simple there's nothing technical about it aside from the fact people suck at writing parsers "Ohh how do you disambiguate Foo<K, List<T>> because >> is token"... is one of the dumbest things I've ever had said to me. I dunno learn how to write a parser.

#compilerdev #languagedev

There is a lack of EBNF tools written in C/C++ that generate First and Follow sets. Most of them are web tools without source code and I want something to run locally. I've seen one in Go and some in Python. They don't look complete or well tested though. Does anybody know of a C/C++ based EBNF grammar analyzer? #ebnf #languagedev

#releaseannouncement SixtyPical version 0.11 has been released! It's got:

• typedefs
• vector tables
• small syntax changes to allow the above 2 things play nicely together
• a slightly nicer demo "game" program, applying the above 3 things
• a few bugfixes that are actually fairly significant

🡺 http://catseye.tc/article/Languages.md#sixtypical

#languagedev #retrocomputing #abstractinterpretation

Languages | Cat's Eye Technologies

Languages at Chris Pressey's modest esolang concern; serves as a database and gallery of open-source projects, primarily esoteric programming languages.

#releaseannouncement: We've released version 0.10 of SixtyPical:

https://github.com/catseye/SixtyPical

As we had hoped at the end of 2017, this version is enough to write a silly little video game in. (It's pretty awful actually, but it's video-game-like enough that you could argue that it is one.)

#commodore64 #c64 #6502 #languagedev #langdev

https://a.weirder.earth/media/LbQGo1X3bXighFFpy2U https://a.weirder.earth/media/6zl0parPMxIdiTJ-GbU

catseye/SixtyPical

SixtyPical - A 6502-like programming language with advanced static analysis [BSD license]

Finally starting to get an idea how objects should work in a dynamic way while still being usable from C 😄

Now writing code like `return (*(object * (*) (object *)) aangeroepen->waarde.geheugen)(voorwerpen);' so you don't have to!

#swail #plt #languagedev