https://www.dagstuhl.de/12011
January 2 – 6 , 2012, Dagstuhl Seminar 12011
Foundations for Scripting Languages
Organizers
Robert Hirschfeld (Hasso-Plattner-Institut – Potsdam, DE)
Shriram Krishnamurthi (Brown University – Providence, US)
Erik Meijer (Microsoft Corporation – Redmond, US)
Jan Vitek (Purdue University – West Lafayette, US)
For support, please contact
Documents
Dagstuhl Report, Volume 2, Issue 1
List of Participants
Summary
Common characteristics of scripting languages include syntactic simplicity, a lack of onerous constraints for program construction and deployment, the ability to easily connect to and control systems processes, strong built-in interfaces to useful external objects, extensive library support, and lightweight (and embeddable) implementations. More broadly, these characteristics add up to strong support for effective software prototyping. Due to a combination of these characteristics, common scripting languages like Perl, Python, Ruby, JavaScript, Visual Basic, and Tcl have moved from the fringes to mainstream program development.
To academics, these languages do not appear that different from, say, Scheme or ML. Since languages like Scheme and ML have well-defined semantics and other formal attributes, the mainstream passion for scripting languages may appear to simply be the result of ignorance of better languages amongst mainstream developers. However, the properties that scripting language users claim to find most beneficial are often not found in their more academic counterparts, such as a strong orientation towards systems process management, easily extensible objects, specific but useful control operators, etc.
In short, the academic tendency towards reductionism appears to miss some important characteristics. In particular, properties that may appear incidental---and are ignored by the formalization of academic languages---may actually be essential. As a result, the formal study of scripting languages is a worthwhile research activity in its own right.
Not only does the study of scripting offer academics fresh problems, their results have the potential for widespread benefit. As scripts grow into programs, the very characteristics that seem an advantage sometimes prove to be disadvantages. If any object can be extended by any other object, it is impossible to reason about its behavior. If any object can access any resources, it is impossible to bound security implications. If programmers can places values of any type into a variable, it is impossible to obtain type guarantees. And so on. In other words, the very flexibility that enables prototyping inhibits the reasoning necessary for programs to grow in scale.
As a result, the formal study of scripting languages is a worthwhile research activity in its own right. In particular, we hope this seminar had both direct and indirect impact on academia and industry. We also hope that, based on our discussions, academics will identify concrete problems that need solutions and find scripting language experts who they can communicate with. In turn, we hope scripting experts identified knowledge, expertise, and interest from academia and are better aware of how to formulate problems for academics and map their solutions back to practice.
Related Dagstuhl Seminar
Classification
- Programming Languages / Compilers
- Semantics / Formal Methods
- Software Engineering
Keywords
- Programming languages semantics
- Type systems
- Verification techniques
- Security analyses
- Scalability
- Rapid software development