Skip to main content
9 votes
Accepted

Runtime/Backend for a lazy, pure functional, lambda-calculus-based language?

I guess, the best-known modern optimizing back-end for lazy functional languages specifically (and strict ones too) is GRIN. On the other hand, Pure Language for example is implemented directly on top ...
Alex Chichigin's user avatar
8 votes

What kind programming language corresponds to sequent calculus?

I don't think there's any "canonical PL" for sequent calculus, because languages based on it are rare, and none are well-known. Sequent Calculus as a Compiler Intermediate Language is an ...
James Martin's user avatar
8 votes
Accepted

What kind programming language corresponds to sequent calculus?

There are languages like the μ̃μ calculus, as described by e.g. this tutorial (particularly section 4 onward): https://ix.cs.uoregon.edu/~pdownen/publications/sequent-intro.pdf Lambda calculus terms ...
rpjohnst's user avatar
  • 863
8 votes
Accepted

Possible ways for a system interface in a lazy LC language?

The standard approach: monadic I/O Modern pure, functional programming languages have overwhelmingly standardized on monadic approaches for embedding sequential programs into a language that otherwise ...
Alexis King's user avatar
  • 10.4k
7 votes

Does a Rust implementation of the Monkey programming language require a garbage collector?

This will depend on your implementation strategy, but anything that is heap-allocated needs to be freed somewhere if there is not to be a memory leak. Arrays, hash maps, and closures are prime ...
Michael Homer's user avatar
  • 13.6k
6 votes
Accepted

A lambda calculus backend without data constructors and `case`, what could go wrong?

There is nothing fundamentally wrong about doing this. It is semantically correct. However, I wouldn’t recommend it: there are many reasons you might not want to do things this way. Optimization GHC ...
Alexis King's user avatar
  • 10.4k
4 votes
Accepted

What are some useful corollaries of the preservation theorem?

In short: Progress doesn't really matter if you don't have preservation. Note that progress only applies to well-typed terms. Without preservation, you could have a runtime type error. Progress says ...
David Young's user avatar
  • 2,412
4 votes

What's the point of type safety?

well-typed programs never go wrong “Go wrong” is an informal expression and you need to understand what it means in this context. It doesn't mean that programs written in type-safe languages don't ...
Gilles 'SO- stop being evil''s user avatar
3 votes

Does a Rust implementation of the Monkey programming language require a garbage collector?

The obvious and trivial answer is: you don't need any sort of memory deallocation at all if the programs you execute don't allocate more memory than you have available. If all your test programs are ...
Jörg W Mittag's user avatar
2 votes

What's the point of type safety?

The wikipedia article on type safety expands upon your "don't go wrong" characterization: Intuitively, type soundness is captured by Robin Milner's pithy statement that well-typed programs ...
Eric Lippert's user avatar
  • 4,136
1 vote

What's the point of type safety?

Type safety is another layer of bug prevention. A type unsafe language would let you freely and without any diagnostic message and without conversion (think the auto ...
ratchet freak's user avatar
1 vote

Call-by-value: Left-to-right vs right-to-left

Java uses left to right because this is what most users seem to expect. Actually, there is another approach: unspecified and let the compiler decide based on whatever it needs or wants to do and let ...
feldentm's user avatar
  • 2,192

Only top scored, non community-wiki answers of a minimum length are eligible