BYU -Spring 2013 - CS 630 - 6/6 - Paper

0 views
Skip to first unread message

Noonan

unread,
Jun 5, 2013, 1:30:10 AM6/5/13
to byu-cs-630-spring-2013

Languages as Libraries


Summary: The author starts talking about language platforms and how racket can be ones and how that’s awesome. The author then start talking about language extension capabilities. The first one is macros. They show a simple macro that calculates time elapsed since compiled. The next part talks about syntax objects and operations that come with them. The author discusses the operation that expands a syntax object into core racket. Then the author discusses modules and importing. The author then tells how that can be used to import modules into racket written in different languages, you specify a language as the module’s language and then it can be imported and used. The author then talks about the troubles with having to accomodate extensions that are languages themselves, like adding types to variable declaration. The author then talked about module compilation orderings and then how typed racket could be used with untyped racket modules and how the typed modules could use untyped ones. The author then moved onto an illustrative example of a language with a simple type system. He mentions the begin-module construct being used in order to invoke the typechecker on programs written in that language. he then explains how the typechecker is invoked when something is written in the toy language. He then explains how the typechecker works. The author then briefly explains that the toy language is pretty similar to the actual language it was designed to mimic for the example. The author then explains how racket deals with programs written with multiple modules not just one. The author then talks about how to use modules that are untyped with modules that are typed with the actual typed language and how to set up safety contracts between calls between the modules. He then talks about how to type-check identifiers exported to typed language modules effectively without replicating the whole module. The author then discusses how typed racket can be optimized using optimization libraries in order to further improve performance. Racket’s performance is then compared to that of other languages. The author then talks about related work in the fields of macros, extensible compilers and rewriting-based optimization.


Major Contributions: This seems like a paper showing racket as a competitive language in many ways. It shows how to make a complete language in a functional way.


Things I learned: When given powerful enough tools, languages can be made and extended in powerful, dynamic ways.


Things I had trouble understanding: Didn’t quite catch what he was driving at with the module compilation order of the server and client when discussing modules.


Reply all
Reply to author
Forward
0 new messages