Sam Tobin-Hochstadt on Composable and Compilable Macros

Meetup: http://www.meetup.com/papers-we-love/events/220021234/ Paper: https://www.cs.utah.edu/plt/publications/macromod.pdf Slides: http://bit.ly/1KNwpjC Audio: https://www.mixcloud.com/paperswelove/sam-tobin-hochstadt-on-composable-and-compilable-macros/ -------------------------------------------------------------------------------------------------------------------------------------------------- Sponsored by Two Sigma (@twosigma), The Ladders (@TheLaddersDev), and LispNYC (@lispnyc) -------------------------------------------------------------------------------------------------------------------------------------------------- Description --------------- "Composable and Compilable Macros" introduces the Racket module system, which addresses the following problem: When you have macros that run programs at compile-time, how does this interact with separate compilation and ahead-of-time compilation. The paper introduces "phases", which enable Racket to behave the same regardless of when and how you compile your program. It also introduces the idea of writing different modules in different languages, which is now used for systems like Typed Racket. A few related papers: - Syntactic Abstraction in Scheme, Dybvig Hieb & Bruggeman, Lisp andSymbolic Computation 1993 - Macros that Work Together, Flatt, Findler, Culpepper, & Darais, JFP 2012- Submodules in Racket, Flatt GPCE 2013 - Implicit phasing for R6RS libraries, Ghuloum & Dybvig, ICFP 2007 - Extending the scope of syntactic abstraction, Waddell & Dybvig, POPL 1999 Bio ---- Sam Tobin-Hochstadt (@samth) is an Assistant Professor in the School of Informatics and Computing at Indiana University. He has worked on dynamic languages, type systems, module systems, and metaprogramming, including creating the Typed Racket system and popularizing the phrase “scripts to programs.” He is a member of the ECMA TC39 working group responsible for standardizing JavaScript, where he co-designed the module system for ES6, the next version of JavaScript. He received his PhD in 2010 from Northeastern University under Matthias Felleisen.

Related Talks

Microservices at Spotify

Microservices at SpotifyThis presentation was recorded at GOTO Berlin 2015 http://gotober.com Kevin Goldsmith - Vice President, Engineering at Spotify ABSTRACT The software industry used to be all about building monoliths: monolithic applications and services, with bing-bang product releasees. All that has now changed [...] Download slides and read the full abstract here: http://gotocon.com/berlin-2015/presentation/Microservices%20@%20Spotify https://twitter.com/gotober https://www.facebook.com/GOTOConference http://gotocon.com ...

Jean Yang on An Axiomatic Basis for Computer Programming

Jean Yang on An Axiomatic Basis for Computer ProgrammingMeetup: http://www.meetup.com/papers-we-love/events/214400572/ Paper: http://www.cs.cmu.edu/~crary/819-f09/Hoare69.pdf Slides: https://speakerdeck.com/paperswelove/jean-yang-on-an-axiomatic-basis-for-computer-programming Audio: http://www.mixcloud.com/paperswelove/jean-yang-on-an-axiomatic-basis-for-computer-programming/ --------------------------------------------------------------------------------------------- Sponsored by The Ladders (@TheLaddersDev) --------------------------------------------------------------------------------------------- Description --------------- Our lives now run on software. Bugs are becoming not just annoyances for software developers, but sources of potentially catastrophic failures. A careless programmer mistake could leak our social security numbers or crash our cars. While testing provides some assurance, it is ...

John Myles White on Fundamental Concepts in Programming Languages

John Myles White on Fundamental Concepts in Programming LanguagesMeetup: http://www.meetup.com/papers-we-love/events/220902753/ Paper: http://www.cs.cmu.edu/~crary/819-f09/Strachey67.pdf Slides: http://bit.ly/1BnBb08 Audio: http://bit.ly/1HAdXci --------------------------------------------------------------------------------------------- Sponsored by Two Sigma (@twosigma) and The Ladders (@TheLaddersDev) --------------------------------------------------------------------------------------------- Description --------------- Strachey's lectures on "Fundamental Concepts in Programming Languages" provided an extremely broad survey of core issues in programming language design that provided much of the terminology we use today, including definitions of the kinds of polymorphism and the ...

Reactive Programming Overview (Jafar Husain from Netflix)

Reactive Programming Overview (Jafar Husain from Netflix)HackHands.com interviews Jafar Husain (Technical Lead at Netflix) about Reactive Programming concepts and it's usage on Netflix.com. About the Interviewee: Jafar Husain is a highly skilled software developer with twelve-years of experience designing and developing enterprise software for prestigious corporations and organizations. Jafar Husain currently works for Netflix. ...

Lambda Jam 2015 - Robby Findler - Racket: A Programming-Language Programming Language

Lambda Jam 2015 - Robby Findler - Racket: A Programming-Language Programming LanguageRacket is the best programming language that embraces the premise that there is no best programming language. In other words, Racket is designed to support the creation of programming languages which can then be used to build programs. Using Racket, we have built program languages ranging from large, general-purpose languages ...

CppCon 2015: Sean Parent "Better Code: Data Structures"

CppCon 2015: Sean Parent "Better Code: Data Structures"http://www.cppcon.org -- The standard library containers are often both misused and underused. Instead of creating new containers, applications are often structured with incidental data structures composed of objects referencing other object. This talk looks at some of the ways the standard containers can be better utilized and how creating (or using non-standard ...