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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
lambda-calculus × 8functional-programming × 4
backend × 2
runtime × 2
garbage-collection × 1
rust × 1
language-design × 1
semantics × 1
implementation × 1
type-safety × 1