Live data from Hacker News

Om is a novel, maximally-simple concatenative language

om-language.org

41–50 of 53 posts

Re: Om is a novel, maximally-simple concatenative language

#41

Earlier quoted context omitted.

I don't know, maybe someone wanted to try writing a program in it, which seems not irrelevant to programming languages. To most people, even an experimental programming language isn't just an objet d'art ; it's more like an ornate tennis racket, and it doesn't look like this one will ever be strung.

> objet d'art Why french?

Why do you think it's French? The term has developed a distinct meaning among speakers of English. It has slightly different connotations than alternative phrases, as the sibling comment points out.

It may be derived from French, but it has a distinct meaning in English. You might as well ask why someone is using French when they say they're going to see a ballet. It's a feature of English (and really, most languages) that foreign words and phrases are often imported and given connotations distinct from both the meaning in the language of origin and from other words or phrases in English. Once that adoption is widely recognized, is it really not English?

Re: Om is a novel, maximally-simple concatenative language

#42
post #13

Could someone explain this bit from the intro to me? > Recursion is very efficient in the Om language, due to (a) the "eager" evaluation model enabled by prefix concatenative syntax... How is the syntax of any relevance for the evaluation model? Once the AST is parsed, the syntax is gone and we're just left with pairs of 'operator' and 'operand'.

The syntax allows to describe structures in a way that makes the evaluation model efficient, or even possible.

Look at what lengths one has to go constructing a Y combinator when syntax does not allow to refer to the current expression to simply describe recursion.

Re: Om is a novel, maximally-simple concatenative language

#43
post #14

Earlier quoted context omitted.

Another question about the syntax: Why are the curly braces also part of the syntax for operators? They are delimiters for the operands but also play some part in the definition of operators? Is this solving some problem or did the author just like curlies?

If you're talking about the curly braces after the backtick in the syntax diagram for operators, I think that's just a way to escape those special characters so you can use them in operator names. It would be the same as escaping a double quotation mark in a string literal with a backslash, i.e: "\""

Merci. Thets also the explanation I came up with for myself. And I guess it allows for some trickery with unquoting.

Re: Om is a novel, maximally-simple concatenative language

#44
Has anyone seen use of a concatenative language, to build vocabulary for broader programming language implementation? So vocabulary for linkage and PICs and stacks and gc and threads and so much else. Not merely "I have this language, so I'll implement and tool it in itself", but moonshot "here's a vocabulary to start implementing other languages... all other languages". Aspiring to implement a C, a V8, an OCaml, and more. Perhaps with bootstrap aids on the side, like a Z3 prover. Sort of like a lisp machine approach, with an integrated commonality from low-level bit twiddling to OS to AI. But with a Racket or Poplog flavor of scaffolding language-like platforms on which to stand. Something like a forth bootstrap, but which doesn't stall out having reached forth, but keeps going, describing a richer and richer space of computation. Has anyone seen anything remotely like that?

Re: Om is a novel, maximally-simple concatenative language

#45
post #40
post #11

Earlier quoted context omitted.

Right? Its creator obviously knows Forth, but it feels like they've gone to extreme lengths to make it prefix rather than postfix, at the price of making it much more confusing than it needs to be? It's really not obvious to me that if they were both equally complete, there'd be any advantage at all to choosing this over Factor... (That said, I did a lot of Forth programming in the old days, and while I am utterly in…

We have a Factor Discord if you want some help starting out! https://discord.gg/QxJYZx3QDf

Wow, somehow I thought Factor died. I know Slava stopped working on it several years ago.

Re: Om is a novel, maximally-simple concatenative language

#46

Has anyone seen use of a concatenative language, to build vocabulary for broader programming language implementation? So vocabulary for linkage and PICs and stacks and gc and threads and so much else. Not merely "I have this language, so I'll implement and tool it in itself", but moonshot "here's a vocabulary to start implementing other languages... all other languages". Aspiring to implement a C, a V8, an OCaml, and…

> describing a richer and richer space of computation

So, changing the compiler from targeting a stack / finite state machine (no register allocation - see zero address format) to registers (NP complete to allocate the registers)?

Alternatively, changing the available static / compiled features of a language is usually offered with compiler flags or keywords. Concatenative languages are already Turing complete up the restrictions on functions as such to being total.

Re: Om is a novel, maximally-simple concatenative language

#48

Has anyone seen use of a concatenative language, to build vocabulary for broader programming language implementation? So vocabulary for linkage and PICs and stacks and gc and threads and so much else. Not merely "I have this language, so I'll implement and tool it in itself", but moonshot "here's a vocabulary to start implementing other languages... all other languages". Aspiring to implement a C, a V8, an OCaml, and…

> describing a richer and richer space of computation So, changing the compiler from targeting a stack / finite state machine (no register allocation - see zero address format) to registers (NP complete to allocate the registers)? Alternatively, changing the available static / compiled features of a language is usually offered with compiler flags or keywords. Concatenative languages are already Turing complete up the…

Why would using registers make it NP complete? Is there a reason concatenative languages aren't (naturally) primal chordal graphs?

I mean other than the conservative approximation being to assume it is not?

Re: Om is a novel, maximally-simple concatenative language

#49

Has anyone seen use of a concatenative language, to build vocabulary for broader programming language implementation? So vocabulary for linkage and PICs and stacks and gc and threads and so much else. Not merely "I have this language, so I'll implement and tool it in itself", but moonshot "here's a vocabulary to start implementing other languages... all other languages". Aspiring to implement a C, a V8, an OCaml, and…

Well, there is LLVM. Of course, LLIR isn't concatenative, but if you wrote a LLIR interpreter in your language of choice, you could at least compile a ton of other languages into your language of choice. Which isn't exactly what you're looking for, but you said remotely...

Re: Om is a novel, maximally-simple concatenative language

#50
post #48

Earlier quoted context omitted.

> describing a richer and richer space of computation So, changing the compiler from targeting a stack / finite state machine (no register allocation - see zero address format) to registers (NP complete to allocate the registers)? Alternatively, changing the available static / compiled features of a language is usually offered with compiler flags or keywords. Concatenative languages are already Turing complete up the…

Why would using registers make it NP complete? Is there a reason concatenative languages aren't (naturally) primal chordal graphs? I mean other than the conservative approximation being to assume it is not?

Why would using registers make it NP complete? If there are no registers to allocate, then there is no Core Register Allocation (NP complete) problem.

Is there a reason concatenative languages aren't (naturally) primal chordal graphs? "Naturally" is not distinctive, but concatenative languages can be compiled to registers & induce the Core Register Allocation problem that was proven NP complete by use of primal chordal graphs.

Post reply on HN