In the first and second parts of this blog series, I defined lexical and dynamic scope, and demonstrated interesting cases of scoping in R.
In this third and final part of my blog series, I’d like to discuss a paper by the creators of R, where they motivate the need for lexical scoping in a statistical programming language.
This is a “bonus” blog post, because I’m going to dive into some of the hairier R features to show how four different kinds of scoping can be simulated in R.
In the previous post of this three-part blog series, we discussed lexical and dynamic scope. Now, in this second part, we can return to the original question: is R lexically or dynamically scoped?
This all started with a simple question about the R programming language: is R lexically or dynamically scoped?
To answer that question, we need to understand what scope is, along with lexical scope and dynamic scope.
Forgetful and heedful are two methods for space-efficient contracts developed by Michael Greenberg in 2014. These methods were born in the shadow of a third method, eidetic, with stronger theoretic properties. Since then, however, the forgetful method has been re-invented at least twice. Both deserve a second look.
We love programming languages (PLs), and we should all be in on the ins and outs of implementing them. If you’re interested in learning the tricks of the trade of PL design and implementation, what better opportunity than the second Programming Languages Implementation Summer School (PLISS for short).
PLISS will be held from May 19th to 24th 2019, and the deadline to express your interest is March 29th, 2019 at 17:00 GMT. More details can be found here.
This post explains how to get started using Scribble to write a research paper.
Last semester, I took a course where the final project was to write a survey paper on “a topic in the intersection between computer systems and your area.” So I wrote about on-stack replacement.
The transient approach to migratory typing (circa 2014) is similar to type erasure in Java (circa 2004) in a few interesting ways.