Abstract
Most programming languages use static scope rules for associating uses of identifiers with their declarations. Static scope helps catch errors at compile time, and it can be implemented efficiently. Some popular languages-Perl, Tcl, TeX, and Postscript-offer dynamic scope, because dynamic scope works well for variables that "customize" the execution environment, for example. Programmers must simulate dynamic scope to implement this kind of usage in statically scoped languages. This paper describes the design and implementation of imperative language constructs for introducing and referencing dynamically scoped variables-dynamic variables for short. The design is a minimalist one, because dynamic variables are best used sparingly, much like exceptions. The facility does, however, cater to the typical uses for dynamic scope, and it provides a cleaner mechanism for so-called thread-local variables. A particularly simple implementation suffices for languages without exception handling. For language s with exception handling, a more efficient implementation builds on existing compiler infrastructure. Exception handling can be viewed as a control construct with dynamic scope. Likewise, dynamic variables are a data construct with dynamic scope.
Original language | English (US) |
---|---|
Pages | 264-273 |
Number of pages | 10 |
DOIs | |
State | Published - 2001 |
Externally published | Yes |
Event | ACM SIGPLAN'01 Conference on Programming Language Design and Implementation (PLDI) - Snowbird, UT, United States Duration: Jun 20 2001 → Jun 22 2001 |
Other
Other | ACM SIGPLAN'01 Conference on Programming Language Design and Implementation (PLDI) |
---|---|
Country/Territory | United States |
City | Snowbird, UT |
Period | 6/20/01 → 6/22/01 |
ASJC Scopus subject areas
- Software