Dynamic languages play an important role in the computer industry. Most noticeably, a vast majority of web servers and client browsers are running some sort of dynamic language, such as Python, JavaScript or PHP.
In light of the ubiquitous attempts to provide a fast and secure environment for dynamic languages, it is imperative to be able to compile them and have them run natively without the necessity for their often-times slow interpretation. Their type system represents one of the most significant differences compared to static languages.
The type ambiguity makes it difficult to analyze and run a dynamic program. In this paper, we propose an approach for inferring a single type that combines possible ambiguities on a common language runtime platform.
The solution allows for optimized runtime operations and eliminates most of the overhead caused by the need for representing dynamically typed values during runtime.