User loginNavigation |
How OCaml type checker works -- or what polymorphism and garbage collection have in commonHow OCaml type checker works -- or what polymorphism and garbage collection have in common
As usual with Oleg, there's a lot going on here. Personally, I see parallels with "lambda with letrec" and "call-by-push-value," although making the connection with the latter takes some squinting through some of Levy's work other than his CBPV thesis. Study this to understand OCaml type inference and/or MLF, or for insights into region typing, or, as the title suggests, for suggestive analogies between polymorphism and garbage collection. By Paul Snively at 2013-03-10 16:25 | Functional | Implementation | Type Theory | 1 comment | other blogs | 18335 reads
Socio-PLT: Principles for Programming Language AdoptionIn their survey paper and their website, Leo Meyerovich and Ari Rabkin take Jared Diamond approach to explaining Programming Language adoption.
There are also videos of talks available from Splash 2012 and Google Tech Talks. See also previous discussions. By bashyal at 2013-02-27 03:49 | General | Teaching & Learning | 1 comment | other blogs | 13258 reads
Simple Generators v. Lazy EvaluationOleg Kiselyov, Simon Peyton-Jones and Amr Sabry: Simple Generators:
This is fascinating work that shows how to gain the benefits of lazy evaluation - decoupling of producers, transformers, and consumers of data, and producing only as much data as needed - in a strict, effectful setting that works well with resources that need to be disposed of once computation is done, e.g. file handles. The basic idea is that of Common Lisp signal handling: use a hierarchical, dynamically-scoped chain of handler procedures, which get called - on the stack, without unwinding it - to parameterize code. In this case, the producer code (which e.g. reads a file character by character) is the parameterized code: every time data (a character) is produced, it calls the dynamically innermost handler procedure with the data (it yields the data to the handler). This handler is the data consumer (it could e.g. print the received character to the console). Through dynamic scoping, each handler may also have a super-handler, to which it may yield data. In this way, data flows containing multiple transformers can be composed. I especially like the OCaml version of the code, which is just a page of code, implementing a dynamically-scoped chain of handlers. After that we can already write map and fold in this framework (fold using a loop and a state cell, notably.) There's more sample code. This also ties in with mainstream yield. By Manuel J. Simoni at 2013-02-21 13:30 | Fun | Paradigms | Software Engineering | 10 comments | other blogs | 26373 reads
Photoshop 1.0 Source CodeSome people are amazed that it's in Pascal... HN discussion is here. Cognitive Architectures: A Way Forward for the Psychology of Programming
This describes an interesting attempt to formalize comparison of programming languages from point of view of cognitive psychology. There are also some some interesting references from the presentation. Ada 2012 Language Standard Approved by ISODecember 18, 2012 - The Ada Resource Association (ARA) and Ada-Europe today announced the approval and publication of the latest version of the Ada programming language by the Geneva-based International Organization for Standardization (ISO). The language revision, known as Ada 2012, was under the auspices of ISO/IEC JTC1/SC22/WG9 and was conducted by the Ada Rapporteur Group (ARG) subunit of WG9, with sponsorship in part from the ARA and Ada-Europe. The formal approval of the standard was issued on November 20 by ISO/IEC JTC 1, and the standard was published on December 15. I am glad to say that the major area of improvement is the ability to specify contracts, something I was urging the Ada community to do back in 2002. The new features include the ability to specify preconditions and postconditions for subprograms, and invariants for private types. Another important area that received attention in this iteration is multi-core programming. So if you are serious about mission critical software, head on to the web site and see what you have been missing. What will programming look like in 2020?Things are too quiet lately, so maybe its time to start a fun thread. I used this question as a lead in to a presentation on live programming I recently gave at a working group, but I thought it would be fun to gather a bunch of predictions if anyone is willing. What will programming look like in 2020? Keep in mind that programming in 2012 mostly resembles programming in 2004, so could we even expect any significant changes 8 years from now in the programmer experience? Consider the entire programming stack of language, environment, process, libraries, search technology, and so on. Eighth draft of Scheme R7RS-small publishedThe eighth draft of the Scheme R7RS-small standard has just been published. This draft contains editorial corrections to the seventh draft, as well as changing the definition of eqv? on inexact numbers to the style of R6RS operational equivalence. This draft will be used for the ratification vote by the Scheme community, though we will continue to correct mistakes before the final draft. Details on the ratification vote will be published at scheme-reports.org and on the scheme-reports@scheme-reports.org mailing list. A module system for the C familyDoug Gregor of Apple presented a talk on "A module system for the C family" at the 2012 LLVM Developers' Meeting.
Slide[PDF] and Video[MP4] Slides and videos from other presentations from the meeting are also available. |
Browse archives
Active forum topics |
Recent comments
22 weeks 2 days ago
22 weeks 2 days ago
22 weeks 2 days ago
44 weeks 3 days ago
48 weeks 5 days ago
50 weeks 3 days ago
50 weeks 3 days ago
1 year 6 days ago
1 year 5 weeks ago
1 year 5 weeks ago