Category Archives: Language Design

Cataract Creek – functions and references

I’ve been active on my “Ocean” programming language design project again and have created another point release which I am calling “Cataract Creek”. It contains a number of changes but the most significant are functions and references (aka pointers) so … Continue reading

Posted in Language Design | Leave a comment

LR Parsing with line breaks – 2021 edition

Yes, here it is over a year and a half since the last time I wrote about this, and I’m still working on it. Or maybe working on it again. But I really think I’ve got a much better solution … Continue reading

Posted in Language Design | Leave a comment

LR parsing with line-breaks – yet again

It has been some years since I last wrote about about parsing with indents and line-breaks. Some of that time I’ve been distracted by other things, some of it has involved working on other areas of language design, but some … Continue reading

Posted in Language Design | Leave a comment

Local variables and scope

While I was writing test code for my first toy language I particularly noticed the lack of interesting data structures:  to write interesting loops you can do a lot more if you can build data structures while doing it.  So … Continue reading

Posted in Language Design | Leave a comment

Structured statements and expressions in Ocean

Now that I have my general parsing worked out and understand how I want to use indents and line breaks to give a two dimensional structure to my language, I need to think about the details of some of the … Continue reading

Posted in Language Design | Leave a comment

A case for multiple completed items in LR parser states.

In my earlier note about LR parsing I observed that  many simple grammars will only ever have at most one REDUCE action in any given state. This means that there is no need for an “action table” to list which … Continue reading

Posted in Language Design | Leave a comment

Line breaks – a reprise.

In two previous articles I explored an approach to enhancing an LR parser to work with indents and line breaks.  While I discovered some useful ideas and produced some code that seemed to work, I’ve subsequently discovered some serious flaws … Continue reading

Posted in Language Design | Leave a comment

Linebreaks in a two-dimensional language

My previous note introduced the problem of parsing a two-dimensional language and the need to pay attention to indenting and line breaks and use them to guide the parsing of the language, both to enhance error detection, and to resolve … Continue reading

Posted in Language Design | Leave a comment

Parsing a two-dimensional language.

Many programming languages are essentially one dimensional.  The parser treats them simply as a linear sequence of tokens.  A program could all be written on a single line, or with each token on a separate line and the parser or … Continue reading

Posted in Language Design | Leave a comment

Parsing LR grammars

It is time for another diversion, but it is leading towards the language design – honest. LR grammars are a tool for specifying the grammar for a language, and it is fairly easy to automatically generate a parsing tool from … Continue reading

Posted in Language Design | Leave a comment