{"title":"动态类型语言的接口和为什么工具:关于列表和元组的推理","authors":"C. Amaral, Mário Florido, Patrik Jansson","doi":"10.1145/2034654.2034673","DOIUrl":null,"url":null,"abstract":"Formal software verification is currently contributing to new generations of software systems that are proved to follow a given specification. Unfortunately, most dynamically typed languages lack the tools for such reasoning. We present a tool used to help verify some user specified properties on a small language. The process is based on functional contracts with annotations on the source code that later are transformed into logic goals that need to be proved in order to conclude that the program meets its specification. As part of the tool we also present a term model for dynamically typed data structures.","PeriodicalId":331264,"journal":{"name":"Proceedings of the 10th ACM SIGPLAN workshop on Erlang","volume":"3 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2011-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Interfacing dynamically typed languages and the why tool: reasoning about lists and tuples\",\"authors\":\"C. Amaral, Mário Florido, Patrik Jansson\",\"doi\":\"10.1145/2034654.2034673\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Formal software verification is currently contributing to new generations of software systems that are proved to follow a given specification. Unfortunately, most dynamically typed languages lack the tools for such reasoning. We present a tool used to help verify some user specified properties on a small language. The process is based on functional contracts with annotations on the source code that later are transformed into logic goals that need to be proved in order to conclude that the program meets its specification. As part of the tool we also present a term model for dynamically typed data structures.\",\"PeriodicalId\":331264,\"journal\":{\"name\":\"Proceedings of the 10th ACM SIGPLAN workshop on Erlang\",\"volume\":\"3 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2011-09-23\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 10th ACM SIGPLAN workshop on Erlang\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/2034654.2034673\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 10th ACM SIGPLAN workshop on Erlang","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2034654.2034673","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Interfacing dynamically typed languages and the why tool: reasoning about lists and tuples
Formal software verification is currently contributing to new generations of software systems that are proved to follow a given specification. Unfortunately, most dynamically typed languages lack the tools for such reasoning. We present a tool used to help verify some user specified properties on a small language. The process is based on functional contracts with annotations on the source code that later are transformed into logic goals that need to be proved in order to conclude that the program meets its specification. As part of the tool we also present a term model for dynamically typed data structures.