Javascript must be enabled for the correct page display

Optimalisatie van runtime checks

Dijkstra, W. (1995) Optimalisatie van runtime checks. Master's Thesis / Essay, Computing Science.

Infor_Ma_1995_WDijkstra.CV.pdf - Published Version

Download (3MB) | Preview


Compilers can generate runtime checks in order to check the valid use of the language operations. Examples of illegal use of language operations are accessing an array ouside its bounds or the addition of integers while the result cannot be represented in an integer (overflow). When the generation of runtime checks is suppressed, the above mentioned illegal operations can overwrite program and data space in memory. This may lead to unreliable results and unpredictable system crashes. If runtime checks are used, violations of the language rules are detected and signaled to the rest of the program and/or the user. The benefits of using runtime checks are increased reliability, less development and testing costs. However, runtime checks do have a major impact on execution time: programs take about twice as long to execute - even with maximum compiler optimization. The observation that the standard compiler optimization techniques hardly optimize runtime checks leads to the idea of creating an optimizer specialised in the optimization of runtime checks. Optimization of runtime checks is the minimization of the runtime overhead due to the execution of runtime checks. The proposed algorithms use different strategies to accomplish this: avoiding generation of certain types of checks, motion of checks out of loops, elimination of redundant checks and using efficient checks. The check elimination algorithms consist of two phases: at first, information is collected and propagated throughout the program, using dataflow and range analysis techniques. Checks are also moved in order to create more information. In the second stage, redundant checks are removed using the propagated information. Test results indicate that the algorithms are powerful enough to remove virtually all redundant checks, reducing the runtime overhead to an acceptable percentage. In this way one can get the benefits of runtime checks, while paying a very small cost.

Item Type: Thesis (Master's Thesis / Essay)
Degree programme: Computing Science
Thesis type: Master's Thesis / Essay
Language: English
Date Deposited: 15 Feb 2018 07:29
Last Modified: 15 Feb 2018 07:29

Actions (login required)

View Item View Item