Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
lboasso
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
9 ms
·
31.
▲
by
lboasso
9y ago
I own a copy of "The School of Niklaus Wirth" :) I really appreciate the pragmatism of Wirth's designs and his quest for simplicity.
32.
▲
by
lboasso
9y ago
I wrote a simple self-hosting compiler to showcase Niklaus Wirth's approach to writing compilers: https://github.com/lboasso/oberonc Single pass compilers have their advantages.
33.
▲
by
lboasso
9y ago
It makes sense now, Thanks!
34.
▲
by
lboasso
9y ago
> Note that F 1.1 requires G 1.1, but G 1.1 also requires F 1.1. Declaring this kind of cycle can be important when singleton functionality moves from one module to another. Our algorithms must not assume the module requirement graph is
35.
▲
by
lboasso
9y ago
I should have linked the other paper by Ierusalimschy, "Revisiting Coroutines". wahern linked it in his reply. They are both good reads to better understand coroutines.
36.
▲
by
lboasso
9y ago
A good start could be "Coroutines in Lua" [1]. It explains well the terminology and makes comparisons between designs in different languages. [1] http://www.inf.puc-rio.br/~roberto/docs/corosblp.pdf
37.
▲
by
lboasso
9y ago
Thanks, my hope is that the Oberon language will not be forgotten. The Oberon0 language, described in the compiler book, is just a toy to illustrate basic compiler techniques. The full Oberon language is a simple but powerful language, that
38.
▲
by
lboasso
9y ago
I agree, Niklaus Wirth's compiler book is a good introduction to the topic. To showcase Wirth's approach, I wrote a self hosted Oberon compiler for the JVM: https://github.com/lboasso/oberonc The compiler can
39.
▲
by
lboasso
9y ago
The DEFINITION is an extension of my compiler. It sets the compiler in a different mode, accepting only declarations in the source file. You approach would work, but I prefer a new keyword showing the intent of the source file. DEFINITION
40.
▲
by
lboasso
9y ago
The 2013 edition of that book (updated with the latest source code) is available at Wirth's website: http://people.inf.ethz.ch/wirth/ProjectOberon/index.html
41.
▲
by
lboasso
9y ago
Yes a custom foreign function interface is needed. In my compiler I did the bare minimum to bootstrap the compiler. Currently you can create a definition module that makes the bridge between the Java and Oberon worlds. For example the Obero
42.
▲
by
lboasso
9y ago
If you just want to play with the Oberon-07 language (the one used to implement the whole system), there are several compilers available for different platforms. You can find a list here: http://oberon07.com/compilers.xhtml
43.
▲
by
lboasso
9y ago
The Oberon language was instrumental for the creation of the Oberon operating system. Writh makes this clear in several articles. For example http://people.inf.ethz.ch/wirth/ProjectOberon/PO.System.pdf in the &quo
44.
▲
by
lboasso
9y ago
Wirth wrote many articles about the design of his programming languages, a nice starting point for Oberon/Modula-2 is: http://people.inf.ethz.ch/wirth/Articles/Modula-Oberon-June....
45.
▲
by
lboasso
9y ago
Thanks to Robert Griesemer (Phd student of Prof. Wirth), the Go programming language includes some design lessons taken from the Oberon language
46.
▲
by
lboasso
9y ago
For those interested, you can find the latest Oberon system by Prof. Wirth here: http://people.inf.ethz.ch/wirth/ProjectOberon/ You can run Project Oberon with this emulator (pre-built binaries available): https:
47.
▲
by
lboasso
9y ago
I think Wirth's compiler book is more approachable for a beginner. Once you are done with that book you can also read "Project Oberon" from the same author. This way you can understand the implementation of a full graphical O
48.
▲
by
lboasso
9y ago
I would recommend "Compiler Construction" by Niklaus Wirth. This small book (< 200 pages) will teach you the basics and show you how to build a single-pass compiler for a subset of Oberon (a Pascal successor). The book is freel
49.
▲
HATEOAS is for humans (2016)
(intercoolerjs.org)
5 points
by
lboasso
9y ago
|
0 comments
50.
▲
by
lboasso
9y ago
Niklaus Wirth is an amazing engineer/computer scientist, unfortunately he is often unknown by new generations (especially later achievements, like Oberon). I was inspired by his work and never ending quest for simple and effective solu
51.
▲
Show HN: A single pass, self-hosting compiler for the Oberon-07 language (JVM)
(github.com)
9 points
by
lboasso
9y ago
|
2 comments
52.
▲
by
lboasso
12y ago
Gosu is more than 10 years old. For some historical background/design decisions please have a look at this article: http://www.drdobbs.com/open-source/language-of-the-month-gos...
53.
▲
by
lboasso
12y ago
Sorry, it does not, unfortunately. We are working on IDEA 13 support but for now our plug-in supports only IDEA 12.
54.
▲
by
lboasso
12y ago
You can have a look at the pom.xml[1] of SparkGS [2](a micro web framework using Gosu). It uses maven, so a 'mvn package' should generate the jars for you. [1] https://github.com/sparkgs/sparkgs/blob/
55.
▲
by
lboasso
12y ago
So by default the type inferred is ArrayList, if you want a different type you just specify it. ex. var strings = { "red", "green", "blue" } //ArrayList var strings2 : LinkedList<String> = { &
56.
▲
by
lboasso
12y ago
Exactly if you want to return just an expression you can avoid them, otherwise if you use statements in the body of the lambda you need curly braces.
57.
▲
by
lboasso
12y ago
Java 8 lambdas are not real lambdas, they capture only effectively final local variables. In Gosu you can modify the value of a captured variable.
58.
▲
by
lboasso
12y ago
Mainly because of the Open Type System: http://devblog.guidewire.com/2010/11/18/gosus-secret-sauce-t...