ROSAEC center Seoul National University

Seminars & Workshops

Speaker:Byeongcheol Lee , GIST, KOREA
When:2012-06-08 15:00
Place:Rm 309-1, Bldg 302, SNU


Macros improve expressiveness, concision, abstraction, and language interoperability without changing the programming language itself. They are indispensable for building increasingly prevalent multilingual applications. Unfortunately, existing macro systems are well-encapsulated but unsafe (e.g., the C preprocessor) or are safe but tightly-integrated with the language implementation (e.g., Scheme macros). This talk presents Marco, the first macro system that seeks both encapsulation and safety. Marco is based on the observation that the macro system need not know all the syntactic and semantic rules of the target language but must only directly enforce some rules, such as variable name binding. Using this observation, Marco off-loads most rule checking to unmodified target-language compilers and interpreters and thus becomes language-scalable. We describe the Marco language, its language-independent safety analysis, and how it uses two example target-language analysis plug-ins, one for C++ and one for SQL. This approach opens the door to safe and expressive macros for any language.

Short bio

Byeongcheol Lee received a Ph.D. degree in Computer Science and an M.A. degree in Computer Sciences from the University of Texas at Austin in 2011 and 2006. Prior to joining the University of Texas at Austin, he received a B.E. in Electronic and Electrical Engineering and another B.E. in Computer Science Engineering from POSTECH in 2004. His honors include four POSTECH Honor Scholarships (2003-2004), an IT Scholarship (2004), a Verizon Fellowship (2005), a Samsung Scholarship (2006), and a Graduate Dean's Prestigious Scholarship (2008). His research interests are language interoperability, dynamic analysis, dynamic optimization, and programming tools. For more information, please visit

© Copyright 2008-2010 ROSAEC Center, Seoul National University