{"title":"An Intrinsically-Typed Solution for the List-Machine Benchmark","authors":"Samuel da Silva Feitosa, R. Ribeiro","doi":"10.1145/3427081.3427082","DOIUrl":null,"url":null,"abstract":"Formal models are important tools in the programming language research community. However, such models are full of intricacies and, due to that, they are subject to subtle errors. Such failures motivated the usage of tools to ensure the correctness of these formalisms. One way to eliminate such errors is to encode models in a dependently-typed language in order to ensure its \"correctness-by-construction\". In this paper, we use this idea to build a verified interpreter for the list-machine benchmark in the Agda programming language, comparing the results with formalizations developed by Appel and Leroy. We formalize the 14 tasks of the benchmark using roughly 14%of LOC compared to a Twelf solution, and 47%of LOC compared to a Coq solution, even without the use of proof automation.","PeriodicalId":350427,"journal":{"name":"Proceedings of the 24th Brazilian Symposium on Context-Oriented Programming and Advanced Modularity","volume":"89 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-10-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 24th Brazilian Symposium on Context-Oriented Programming and Advanced Modularity","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3427081.3427082","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2
Abstract
Formal models are important tools in the programming language research community. However, such models are full of intricacies and, due to that, they are subject to subtle errors. Such failures motivated the usage of tools to ensure the correctness of these formalisms. One way to eliminate such errors is to encode models in a dependently-typed language in order to ensure its "correctness-by-construction". In this paper, we use this idea to build a verified interpreter for the list-machine benchmark in the Agda programming language, comparing the results with formalizations developed by Appel and Leroy. We formalize the 14 tasks of the benchmark using roughly 14%of LOC compared to a Twelf solution, and 47%of LOC compared to a Coq solution, even without the use of proof automation.