Results 1 -
4 of
4
Dynamic Typing in a Statically Typed Language
, 1989
"... Statically typed programming languages allow earlier error checking, better enforcement of disciplined programming styles, and generation of more efficient object code than languages where all type consistency checks are performed at run time. However, even in statically typed languages, there is of ..."
Abstract
-
Cited by 148 (4 self)
- Add to MetaCart
Statically typed programming languages allow earlier error checking, better enforcement of disciplined programming styles, and generation of more efficient object code than languages where all type consistency checks are performed at run time. However, even in statically typed languages, there is often the need to deal with data whose type cannot be determined at compile time. To handle such situations safely, we propose to add a type Dynamic whose values are pairs of a value v and a type tag T where v has the type denoted by T. Instances of Dynamic are built with an explicit tagging construct and inspected with a type safe typecase construct. This paper explores the syntax, operational semantics, and denotational semantics of a simple language including the type Dynamic. We give examples of how dynamically typed values can be used in programming. Then we discuss an operational semantics for our language and obtain a soundness theorem. We present two formulations of the denotational s...
A Control-Flow Normalization Algorithm and Its Complexity
- IEEE Transactions on Software Engineering
, 1992
"... We present a simple method for normalizing the control-flow of programs to facilitate program transformations, program analysis, and automatic parallelization. While previous methods result in programs whose control flowgraphs are reducible, programs normalized by this technique satisfy a stronger c ..."
Abstract
-
Cited by 38 (0 self)
- Add to MetaCart
We present a simple method for normalizing the control-flow of programs to facilitate program transformations, program analysis, and automatic parallelization. While previous methods result in programs whose control flowgraphs are reducible, programs normalized by this technique satisfy a stronger condition than reducibility and are therefore simpler in their syntax and structure than with previous methods. In particular, all control-flow cycles are normalized into single-entry, single-exit while loops, and all goto's are eliminated. Furthermore, the method avoids problems of code replication that are characteristic of node-splitting techniques. This restructuring obviates the control dependence graph, since afterwards control dependence relations are manifest in the syntax tree of the program. In this paper we present transformations that effect this normalization, and study the complexity of the method. Index Terms: Continuations, control-flow, elimination algorithms, normalization,...
BY
"... For the past three years, John Hennessy has assisted my study of programming languages. He suggested that I investigate semantics, and later noted that the compiler generator might be feasible. As the research progressed, John helped me to focus on the most important problems. He made extensive comm ..."
Abstract
- Add to MetaCart
For the past three years, John Hennessy has assisted my study of programming languages. He suggested that I investigate semantics, and later noted that the compiler generator might be feasible. As the research progressed, John helped me to focus on the most important problems. He made extensive comments on numerous drafts of this thesis and other papers. Zohar Manna and Gio Wiederhold have taken an interest in my career ever since I came to Stanford. Zohar introduced me to denotational semantics; recently, he got me several job offers. Sue Owicki made several insightful comments about the dissertation; Jeff Ullman pointed out that I had omitted some important material. Wolf Polak informed me of people who were doing related work; Ole L. Madsen sent a wealth of research reports. Of Stanford's capable and underpaid staff, Carolyn Tajnai kept me posted on all the deadlines and requirements, and was the friendliest person in the Department. Betty Scott resolved the quarterly funding emergencies. I would like to thank my friends for all we shared during my years at Stanford. Special thanks to Bob and Anne.. If not for Randy Gellerman, this work would have been completed much
BY
"... For the past three years, John Hennessy has assisted my study of programming languages. He suggested that I investigate semantics, and later noted that the compiler generator might be feasible. As the research progressed, John helped me to focus on the most important problems. He made extensive comm ..."
Abstract
- Add to MetaCart
For the past three years, John Hennessy has assisted my study of programming languages. He suggested that I investigate semantics, and later noted that the compiler generator might be feasible. As the research progressed, John helped me to focus on the most important problems. He made extensive comments on numerous drafts of this thesis and other papers. Zohar Manna and Gio Wiederhold have taken an interest in my career ever since I came to Stanford. Zohar introduced me to denotational semantics; recently, he got me several job offers. Sue Owicki made several insightful comments about the dissertation; Jeff Ullman pointed out that I had omitted some important material. Wolf Polak informed me of people who were doing related work; Ole L. Madsen sent a wealth of research reports. Of Stanford's capable and underpaid staff, Carolyn Tajnai kept me posted on all the deadlines and requirements, and was the friendliest person in the Department. Betty Scott resolved the quarterly funding emergencies. I would like to thank my friends for all we shared during my years at Stanford. Special thanks

