static single assignment form and the control depen-
dence graph. ACM Transactions on Programming
Languages and Systems, 13(4):451–490.
Diwan, A., McKinley, K., and Moss, J. (1991). Type-based
alias analysis. In Proceedings of the SIGPLAN Con-
ference on Programming Language Design and Im-
plementation (PLDI ’91), pages 106–117.
Emami, M., Ghiya, R., and Hendren, L. (1994). Context-
sensitive inter-procedural points-to analysis in the
presence of function pointers. In Proceedings of ACM
SIGPLAN’94 Conference on Programming Language
Design and Implementation, pages 224–256.
Flanagan, C., Freund, S., and Tomb, A. (2006). Hy-
brid types, invariants, and refinements for impera-
tive objects. In International Workshop on Foun-
dations and Developments of Object-Oriented Lan-
guages (FOOL).
Freeman, T. and Pfenning, F. (1991). Refinement types for
ML. In Proceedings of the ACM SIGPLAN Confer-
ence on Programming Language Design and Imple-
mentation (PLDI), pages 268–277.
Haldiman, N., Denker, M., and Nierstrasz, O. (2009). Prac-
tical, pluggable types for a dynamic language. Com-
puter Languages, Systems & Structures, 35:48–62.
Hudak, P., Jones, S., , and Wadler, P. (1991). Report on the
programming language haskell version 1.1. Technical
report, Departments of Computer Science, University
of Glasgow and Yale University.
Hugunin, J. (2007). Just glue it! Ruby and the DLR in
Silverlight. In MIX Conference.
H¨ursch, W. and Lopes, C. (1995). Separation of concerns.
Technical Report UN-CCS-95-03, Northeastern Uni-
versity, Boston, USA.
Landi, W. and Ryder, B. (1992). A safe approximate algo-
rithm for interprocedural pointer aliasing. In Confer-
ence on Programming Language Design and Imple-
mentation, pages 473–489.
Meijer, E. and Drayton, P. (2004). Dynamic typing when
needed: The end of the cold war between program-
ming languages. In Proceedings of the OOPSLA
Workshop on Revival of Dynamic Languages.
Milner, R. (1978). A theory of type polymorphism in pro-
gramming. Journal of Computer and System Sciences,
17:348–375.
Milner, R., Tofte, M., and Harper, R. (1990). The Definition
of Standard ML. The MIT Press.
Odersky, M., anb C. R¨ockl, V. C., and Zenger, M. (2002).
A nominal theory of objects with dependent types. In
European Conference on Object-Oriented Program-
ming (ECOOP), pages 201–224.
Odersky, M., Sulzmann, M., and Wehr, M. (1999). Type
inference with constrained types. Theory and Practice
of Object Systems, 5(1):35–55.
Ortin, F. (2009). The StaDyn core type system. Technical
report, Computer Science Department, University of
Oviedo, Spain.
Ortin, F. and Perez-Schofield, J. B. G. (2008). Supporting
both static and dynamic typing. In Programming and
Languages Conference (PROLE), pages 215–232.
Ortin, F., Redondo, J. M., and Perez-Schofield, J. B. G.
(2009). Efficient virtual machine support of runtime
structural reflection. Science of Computer Program-
ming, 74.
Ortin, F., Zapico, D., and Cueva, J. M. (2007). Design pat-
terns for teaching type checking in a compiler con-
struction course. IEEE Transactions on Education,
50(3):273–283.
Ortin, F., Zapico, D., Perez-Schofield, J. B. G., and Garcia,
M. (2010). Including both static and dynamic typing
in the same programming language. IET Software, (to
be published).
Parr, T. (2007). The Definitive ANTLR Reference: Building
Domain-Specific Languages. Pragmatic Bookshelf.
Pierce, B. C. (1992). Programming with intersection types
and bounded polymorphism. Technical Report CMU-
CS-91-106, School of Computer Science, Pittsburgh,
PA, USA.
Pierce, B. C. (2002). Types and Programming Languages.
The MIT Press.
Plevyak, J. and Chien, A. (1994). Precise concrete type in-
ference for object-oriented languages. In SIGPLAN
Notices 29, 10, Proceeding of the OOPSLA Confer-
ence.
Redondo, J. M. and Ortin, F. (2008). Optimizing reflec-
tive primitives of dynamic languages. International
Journal of Software Engineering and Knowledge En-
gineering, 18(6):759–783.
R´emy, D. and Vouillon, J. (1998). Objective ML: ‘An ef-
fective object-oriented extension to ML’. Theory And
Practice of Object Systems, 4(1):27–50.
Shalit, A. (1996). The Dylan reference manual: the defini-
tive guide to the new object-oriented dynamic lan-
guage. Addison Wesley Longman Publishing Co.
Siek, J. G. and Taha, W. (2007). Gradual typing for objects.
In Proceedings of the 21st European Conference on
Object-Oriented Programming (ECOOP).
Siek, J. G. and Vachharajani, M. (2008). Gradual typing
with unification-based inference. In Dynamic Lan-
guages Symposium.
Thatte, S. (1990). Quasi-static typing. In Proceedings of the
17th ACM SIGPLAN-SIGACT symposium on Princi-
ples of programming languages (POPL), pages 367–
381, New York, NY, USA. ACM.
Tucker, A. B. (1997). Type Systems. The Computer Science
and Engineering Handbook. CRC Press.
Venners, B. (2009). Twitter on Scala. a conversation with
Steve Jenson, Alex Payne, and Robey Pointer. Artima
Developer.
ICSOFT 2010 - 5th International Conference on Software and Data Technologies
50