User loginNavigation |
Resource PolymorphismResource Polymorphism, by Guillaume Munch-Maccagnoni:
An ambitious goal, and it would be an incredibly useful addition to OCaml. Might even displace Rust in some places, since you can theoretically avoid triggering the GC, but you have the excellent GC available when needed. This is definitely a pain point for Rust. By naasking at 2018-03-08 14:40 | Functional | login or register to post comments | other blogs | 2070 reads
The Left Hand of EqualsThe Left Hand of Equals, by James Noble, Andrew P. Black, Kim B. Bruce, Michael Homer, Mark S. Miller:
This covers a lot of ground, not only historical, but conceptual, like the meaning of equality and objects. For instance, they consider Ralph Johnson on what object oriented programming means:
And constrast with William Cook's autognosis/procedural-abstraction view, which we've discussed here before. The paper's goal then becomes clear: "What can we do to provide an equality operator for a pure, autognostic object-oriented language?" They answer this question in the context of the Grace programming language. As you might expect from some of the authors, security and trust are important considerations. Site migrationUpdate: The migration of LtU to new servers is complete. If you notice any issues with the site, please post in this thread (if you can), or email me at antonvs8 at (gmail domain). Original announcement appears below:
By Anton van Straaten at 2018-02-04 20:03 | Site Discussion | 10 comments | other blogs | 8390 reads
Compiling a Subset of APL Into a Typed Intermediate Language
Compiling a Subset of APL Into
a Typed Intermediate Language
by Martin Elsman, Martin Dybdal Traditionally, APL is an interpreted language ... In this paper, we present a compiler that compiles a subset of APL into a typed intermediate representation, which should serve as a practical and well-defined intermediate format for targeting parallel-architectures through a large number of existing tools and frameworks. The intermediate language is conceptually close to the language Repa. It supports shape-polymorphic functions and types that classify shapes. The compiler takes a simplified approach to certain aspects of APL. Following other APL compilation approaches, the compiler is based on lexical (i.e., static) identifier scoping and has no support for dynamic compilation (APL execute).Terseness of APL is legendary, for good or bad. I keep finding more and more papers by Haskell community (and especially GHC contributors) working on efficient (parallel) arrays in Haskell. People of Programming Languages InterviewsThere is a growing set of fascinating interviews with PL folks at People of Programming Languages. Exploiting Vector Instructions with Generalized Stream Fusion
Exploiting Vector Instructions with Generalized Stream Fusion
By Geoffrey Mainland, Roman Leshchinskiy, and Simon Peyton Jones. A.k.a. "Haskell beats C".
Our ideas are implemented in modified versions of the GHC compiler and vector library. Benchmarks show that high-level Haskell code written using our compiler and libraries can produce code that is faster than both compiler- and hand-vectorized C. This paper continues the promising line of research started in 1990 by Wadler (at least, that was how I learned of deforestation). Of course, there was a lot of development since then, but this specific paper introduces an interesting idea of multiple representations - potentially changing the game. By Andris Birkmanis at 2017-12-22 03:33 | Implementation | login or register to post comments | other blogs | 26547 reads
How efficient is partial sharing?Partial sharing graphs offer a reduction model for the lambda calculus that is optimal in a sense put forward by Jean Jacques Levy. This model has seen interest wax and wane: initially it was thought to offer the most efficient possible technology for implementing the lambda calculus, but then an important result showed that bookkeeping overheads of any such model could be very high (Asperti & Mairson 1998). This result had a chilling effect on the initial wave of excitement over the technology. Now Stefano Guerrini, one of the early investigators of partial sharing graphs, has an article with Marco Solieri (Guerrini & Solieri 2017) arguing that the gains from optimality can be very high and that partial sharing graphs can be relatively close to the best possible efficiency, within a quadratic factor on a conservative analysis (this is relatively close in terms of elementary recursion). Will the argument and result lead to renewed interest in partial sharing graphs from implementors of functional programming? We'll see... (Asperti & Mairson 1998) Parallel beta reduction is not elementary recursive. (Guerrini & Solieri 2017) Is the Optimal Implementation inefficient? Elementarily not. Is Haskell the right language for teaching functional programming principles?No! (As Simon Thompson explains.) "8th" - a gentle introduction to a modern ForthFound on the ARM community's embedded blog. It seems that Forth may be making a comeback.
Other differences from traditional Forth appear to include automatic memory management and some kind of signed and encrypted application deployment. [Edit: per gasche's comment, please note that 8th appears to be closed source. From their FAQ: By Allan McInnes at 2017-10-02 00:26 | Cross language runtimes | 17 comments | other blogs | 46978 reads
Project Loom: adding fibers and continuations to JavaJust saw this on Hacker News -- Project Loom: Fibers and Continuations for the Java Virtual Machine with the following overview:
I'm a fan of fibers, and this has quite a bit of interesting material in it for like-minded folks. |
Browse archivesActive forum topics |
Recent comments
7 hours 7 min ago
7 hours 59 min ago
11 hours 12 min ago
11 hours 27 min ago
12 hours 34 min ago
15 hours 33 min ago
1 day 2 hours ago
1 day 11 hours ago
1 day 13 hours ago
1 day 16 hours ago