
Aram Hăvărneanu
@aramh
Followers
3K
Following
11K
Media
91
Statuses
6K
Mathematical engineer bringing type safety to the cloud. Previously worked on CUE @cue_lang. JSR PC, @(R6)+; I wrote the arm64, sparc64, and Solaris Go ports.
Joined May 2009
Understanding means understanding the duality between the concrete and the abstract.
3
5
59
In some sense a variable and the space its value resides in form something akin to an entangled pair. But they also from something like a traversable wormhole. Hmm.
There is an uncanny correspondence between computation and physics:. linearity ≅ unitarity.confluence ≅ causality.parallelism ≅ relativity.nondeterminism ≅ Cauchy surface.divergence ≅ naked singularity.
1
0
4
More on the advantages of separating capabilities from pointers, using linear logic.
@jameskjx Yes, they can all point into the same graph. To use a (Ptr l) as a (mutable!) value of t you need a (Cap l t). But t can be any type, including a type that contains other capabilities. So the traversal function, when it finds the "next" (Ptr l1), it must already have the (Cap l1.
0
0
6
I already have several counter-arguments to my own idea. One of them would be that it doesn't behave very well with weakening, requiring syntactic transpositions.
A function is codata defined by application. To reduce a function one interacts it with an argument. One can view this as "the argument is being passed into the function, where it interacts with the body". A mutable value is codata defined by map. To mutate a value one interacts.
1
1
14
Will Crichton, Gavin Gray, and Shriram Krishnamurthi. 2023. A Grounded Conceptual Model for Ownership Types in Rust. Proc. ACM Program. Lang. 7, OOPSLA2, Article 265 (October 2023), 29 pages.
dl.acm.org
Programmers learning Rust struggle to understand ownership types, Rust’s core mechanism for ensuring memory safety without garbage collection. This paper describes our attempt to systematically...
1
1
17