{"id":{"repo_id":"malta","oai_identifier":"oai:www.um.edu.mt:123456789/93381"},"canonical_url":"https://search.dev.ndltd.org/etd/malta/oai:www.um.edu.mt:123456789/93381","repository":{"repo_id":"malta","name":"University of Malta","base_url":"https://www.um.edu.mt/library/oar/oai/request"},"display":{"title":"Reducing instrumentation points in Larva","abstract":"When dealing with the correctness assurance of huge and complex systems, runtime verification is becoming an increasingly popular technique. The Larva tool was built to automatically generate runtime verification monitors that would help to validate the behavior of Java programs at runtime. The runtime verification monitor is compiled as Java and AspectJ code from a special language specification called Larva Script. These generated monitors are weaved together with the target system and while the target system is used, the monitor is fed event triggers to validate with the specified properties. In this thesis I identify concrete optimization features that can be introduced to the current Larva compiling tool to improve it and select the ones that are applicable to the Larva Tool. These improvements and features attempt to tackle the problem that the Larva tool and similar runtime verification monitor generating tools face. This problem consists of excess memory and performance overheads that are introduced to the target system when running with the weaved runtime monitors. Therefore the main aim is to try and reduce the overheads introduced by the runtime verification monitors. To be able to solve this problem, we take a look at a similar study that was carried out on similar tools that successfully helped to reduce the overheads when possible. By doing so we were able to identify what features to add to successfully optimize the runtime monitors generated by the Larva Tool. This is achieved by extending the Larva architecture to support the new optimizing feature consisting of Dependent Advices and is verified to be optimizing the runtime monitors generated in the case study. To be able to identify the performance gains for the optimization that was introduced to the Larva tool, a benchmark is used. This benchmark is weaved with runtime monitors generated by a number of Larva scripts and was used to gather values that then helped compare the results with the performance of the standard runtime verification monitors to evaluate the optimization gains achieved.","abstract_html":"When dealing with the correctness assurance of huge and complex systems, runtime verification is becoming an increasingly popular technique. The Larva tool was built to automatically generate runtime verification monitors that would help to validate the behavior of Java programs at runtime. The runtime verification monitor is compiled as Java and AspectJ code from a special language specification called Larva Script. These generated monitors are weaved together with the target system and while the target system is used, the monitor is fed event triggers to validate with the specified properties. In this thesis I identify concrete optimization features that can be introduced to the current Larva compiling tool to improve it and select the ones that are applicable to the Larva Tool. These improvements and features attempt to tackle the problem that the Larva tool and similar runtime verification monitor generating tools face. This problem consists of excess memory and performance overheads that are introduced to the target system when running with the weaved runtime monitors. Therefore the main aim is to try and reduce the overheads introduced by the runtime verification monitors. To be able to solve this problem, we take a look at a similar study that was carried out on similar tools that successfully helped to reduce the overheads when possible. By doing so we were able to identify what features to add to successfully optimize the runtime monitors generated by the Larva Tool. This is achieved by extending the Larva architecture to support the new optimizing feature consisting of Dependent Advices and is verified to be optimizing the runtime monitors generated in the case study. To be able to identify the performance gains for the optimization that was introduced to the Larva tool, a benchmark is used. This benchmark is weaved with runtime monitors generated by a number of Larva scripts and was used to gather values that then helped compare the results with the performance of the standard runtime verification monitors to evaluate the optimization gains achieved.","abstract_has_math":false,"creators":[],"institution":"University of Malta","degree_name":null,"degree_level":null,"degree_discipline":null,"degree_department":null,"school":null,"contributors":[],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2013,"date_issued":"2013","date_published":"2013","updated_at":"2026-07-27T20:12:17Z","subjects":["Java (Computer program language)","Aspect-oriented programming","Program transformation (Computer programming)"],"languages":["en"],"rights":["info:eu-repo/semantics/restrictedAccess"],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"https://www.um.edu.mt/library/oar/handle/123456789/93381","outbound_label":"Repository record","outbound_source":"dc:identifier.uri"},"metadata_groups":[{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date.accessioned","label":"Dc Date Accessioned","values":["2022-04-11T13:24:53Z"]},{"key":"dc:date.available","label":"Dc Date Available","values":["2022-04-11T13:24:53Z"]},{"key":"dc:date.issued","label":"Date","values":["2013"]},{"key":"dc:publisher.department","label":"Dc Publisher Department","values":["Faculty of Information and Communication Technology. Department of Computer Science"]},{"key":"dc:publisher.institution","label":"Dc Publisher Institution","values":["University of Malta"]},{"key":"dc:type","label":"Dc Type","values":["bachelorThesis"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Java (Computer program language)","Aspect-oriented programming","Program transformation (Computer programming)"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language.iso","label":"Language (ISO)","values":["en"]},{"key":"dc:rights","label":"Dc Rights","values":["info:eu-repo/semantics/restrictedAccess"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier.uri","label":"Identifier URI","values":["https://www.um.edu.mt/library/oar/handle/123456789/93381"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["B.Sc. IT (Hons)(Melit.)"]},{"key":"dc:description.abstract","label":"Abstract","values":["When dealing with the correctness assurance of huge and complex systems, runtime verification is becoming an increasingly popular technique. The Larva tool was built to automatically generate runtime verification monitors that would help to validate the behavior of Java programs at runtime. The runtime verification monitor is compiled as Java and AspectJ code from a special language specification called Larva Script. These generated monitors are weaved together with the target system and while the target system is used, the monitor is fed event triggers to validate with the specified properties. In this thesis I identify concrete optimization features that can be introduced to the current Larva compiling tool to improve it and select the ones that are applicable to the Larva Tool. These improvements and features attempt to tackle the problem that the Larva tool and similar runtime verification monitor generating tools face. This problem consists of excess memory and performance overheads that are introduced to the target system when running with the weaved runtime monitors. Therefore the main aim is to try and reduce the overheads introduced by the runtime verification monitors. To be able to solve this problem, we take a look at a similar study that was carried out on similar tools that successfully helped to reduce the overheads when possible. By doing so we were able to identify what features to add to successfully optimize the runtime monitors generated by the Larva Tool. This is achieved by extending the Larva architecture to support the new optimizing feature consisting of Dependent Advices and is verified to be optimizing the runtime monitors generated in the case study. To be able to identify the performance gains for the optimization that was introduced to the Larva tool, a benchmark is used. This benchmark is weaved with runtime monitors generated by a number of Larva scripts and was used to gather values that then helped compare the results with the performance of the standard runtime verification monitors to evaluate the optimization gains achieved."]},{"key":"dc:title","label":"Title","values":["Reducing instrumentation points in Larva"]}]}],"canonical_facts":{"dc:date.accessioned":["2022-04-11T13:24:53Z"],"dc:date.available":["2022-04-11T13:24:53Z"],"dc:date.issued":["2013"],"dc:description":["B.Sc. IT (Hons)(Melit.)"],"dc:description.abstract":["When dealing with the correctness assurance of huge and complex systems, runtime verification is becoming an increasingly popular technique. The Larva tool was built to automatically generate runtime verification monitors that would help to validate the behavior of Java programs at runtime. The runtime verification monitor is compiled as Java and AspectJ code from a special language specification called Larva Script. These generated monitors are weaved together with the target system and while the target system is used, the monitor is fed event triggers to validate with the specified properties. In this thesis I identify concrete optimization features that can be introduced to the current Larva compiling tool to improve it and select the ones that are applicable to the Larva Tool. These improvements and features attempt to tackle the problem that the Larva tool and similar runtime verification monitor generating tools face. This problem consists of excess memory and performance overheads that are introduced to the target system when running with the weaved runtime monitors. Therefore the main aim is to try and reduce the overheads introduced by the runtime verification monitors. To be able to solve this problem, we take a look at a similar study that was carried out on similar tools that successfully helped to reduce the overheads when possible. By doing so we were able to identify what features to add to successfully optimize the runtime monitors generated by the Larva Tool. This is achieved by extending the Larva architecture to support the new optimizing feature consisting of Dependent Advices and is verified to be optimizing the runtime monitors generated in the case study. To be able to identify the performance gains for the optimization that was introduced to the Larva tool, a benchmark is used. This benchmark is weaved with runtime monitors generated by a number of Larva scripts and was used to gather values that then helped compare the results with the performance of the standard runtime verification monitors to evaluate the optimization gains achieved."],"dc:identifier.uri":["https://www.um.edu.mt/library/oar/handle/123456789/93381"],"dc:language.iso":["en"],"dc:publisher.department":["Faculty of Information and Communication Technology. Department of Computer Science"],"dc:publisher.institution":["University of Malta"],"dc:rights":["info:eu-repo/semantics/restrictedAccess"],"dc:subject":["Java (Computer program language)","Aspect-oriented programming","Program transformation (Computer programming)"],"dc:title":["Reducing instrumentation points in Larva"],"dc:type":["bachelorThesis"]},"updated_at":"2026-07-27T20:12:17Z"}