
Herman VenterMicrosoft · Research in Software Engineering (RiSE)
Herman Venter
About
10
Publications
1,489
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
614
Citations
Publications
Publications (10)
Spec # is a programming system that facilitates the development of correct software. The Spec # language extends C # with contracts that allow programmers to express their design intent in the code. The Spec # tool suite consists of a compiler that emits run-time checks for contracts, a static program verifier that attempts to mathematically prove...
The common conception of a (client-side) web application is some collection of HTML, CSS and JavaScript (JS) that is hosted within a web browser and that interacts with the user in some non-trivial ways. The common conception of a web browser is a monolithic program that can render HTML, execute JS, and gives the user a portal to navigate the web....
Web sites and web browsers have recently evolved into platforms on top of which entire applications are delivered dynamically, mostly as JavaScript source code. This delivery format has sparked extremely enthusiastic efforts to customize both individual web sites and entire browsers in ways the original authors never expected or accommodated. Such...
Tracing just-in-time compilers (TJITs) determine frequently executed traces (hot paths and loops) in running programs and focus their optimization effort by emitting optimized machine code specialized to these traces. Prior work has established this strategy to be especially beneficial for dynamic languages such as JavaScript, where the TJIT interf...
Web sites and web browsers have recently evolved into platforms on top of which entire applications are delivered dynamically, mostly as JavaScript source code. This delivery format has sparked extremely enthusiastic efforts to customize both individual web sites and entire browsers in ways the original authors never expected or accommodated. Such...
Tracing just-in-time compilers (TJITs) determine frequently executed traces (hot paths and loops) in running programs and focus their optimization effort by emitting optimized machine code specialized to these traces. Prior work has established this strategy to be especially beneficial for dy- namic languages such as JavaScript, where the TJIT inte...
We introduce RATA, a static analysis based on abstract in- terpretation for the rapid inference of atomic types in JavaScript pro- grams. RATA enables aggressive type specialization optimizations in dy- namic languages. RATA is a combination of an interval analysis (to de- termine the range of variables), a kind analysis (to determine if a variable...
Original web browsers were applications designed to view static web content. As web sites evolved into dy- namic web applications that compose content from mul- tiple web sites, browsers have become multi-principal operating environments with resources shared among mutually distrusting web site principals. Nevertheless, no existing browsers, includ...
The Spec# programming system [4] is a new attempt to increase the quality of general purpose, industrial software. Using old
wisdom, we propose the use of specifications to make programmer assumptions explicit. Using modern technology, we propose
the use of tools to enforce the specifications. To increase its chances of having impact, we want to de...