Matches in SemOpenAlex for { <https://semopenalex.org/work/W2749943653> ?p ?o ?g. }
Showing items 1 to 59 of
59
with 100 items per page.
- W2749943653 abstract "In this thesis, we explore techniques for the development and verification of programs in a high-level, expressive, and safe programming language. Our programs can express problems over unbounded domains and over recursive and mutable data structures. We present an implementation language flexible enough to build interesting and useful systems. We mostly maintain a core shared language for the specifications and the implementation, with only a few extensions specific to expressing the specifications. Extensions of the core shared language include imperative features with state and side effects, which help when implementing efficient systems. Our language is a subset of the Scala programming language. Once verified, programs can be compiled and executed using the existing Scala tools. We present algorithms for verifying programs written in this language. We take a layer-based approach, where we reduce, at each step, the program to an equivalent program in a simpler language. We first purify functions by transforming away mutations into explicit return types in the functions' signatures. This step rewrites all mutations of data structures into cloning operations. We then translate local state into a purely functional code, hence eliminating all traces of imperative programming. The final language is a functional subset of Scala, on which we apply verification. We integrate our pipeline of translations into Leon, a verifier for Scala. We verify the core functional language by using an algorithm already developed inside Leon. The program is encoded into equivalent first-order logic formulas over a combination of theories and recursive functions. The formulas are eventually discharged to an external SMT solver. We extend this core language and the solving algorithm with support for both infinite-precision integers and bit-vectors. The algorithm takes into account the semantics gap between the two domains, and the programmer is ultimately responsible to use the proper type to represent the data. We build a reusable interface for SMT-LIB that enables us to swap solvers transparently in order to validate the formulas emitted by Leon. We experiment with writing solvers in Scala; they could offer both a better and safer integration with the rest of the system. We evaluate the cost of using a higher-order language to implement such solvers, traditionally written in C/C++. Finally, we experiment with the system by building fully working and verified applications. We rely on the intersection of many features including higher-order functions, mutable data structures, recursive functions, and nondeterministic environment dependencies, to build concise and verified applications." @default.
- W2749943653 created "2017-08-31" @default.
- W2749943653 creator A5007011229 @default.
- W2749943653 date "2017-01-01" @default.
- W2749943653 modified "2023-09-23" @default.
- W2749943653 title "Verification by Reduction to Functional Programs" @default.
- W2749943653 doi "https://doi.org/10.5075/epfl-thesis-7636" @default.
- W2749943653 hasPublicationYear "2017" @default.
- W2749943653 type Work @default.
- W2749943653 sameAs 2749943653 @default.
- W2749943653 citedByCount "2" @default.
- W2749943653 countsByYear W27499436532022 @default.
- W2749943653 crossrefType "journal-article" @default.
- W2749943653 hasAuthorship W2749943653A5007011229 @default.
- W2749943653 hasConcept C109701466 @default.
- W2749943653 hasConcept C199360897 @default.
- W2749943653 hasConcept C201677973 @default.
- W2749943653 hasConcept C41008148 @default.
- W2749943653 hasConcept C42383842 @default.
- W2749943653 hasConcept C48103436 @default.
- W2749943653 hasConcept C48859967 @default.
- W2749943653 hasConcept C548217200 @default.
- W2749943653 hasConcept C80444323 @default.
- W2749943653 hasConceptScore W2749943653C109701466 @default.
- W2749943653 hasConceptScore W2749943653C199360897 @default.
- W2749943653 hasConceptScore W2749943653C201677973 @default.
- W2749943653 hasConceptScore W2749943653C41008148 @default.
- W2749943653 hasConceptScore W2749943653C42383842 @default.
- W2749943653 hasConceptScore W2749943653C48103436 @default.
- W2749943653 hasConceptScore W2749943653C48859967 @default.
- W2749943653 hasConceptScore W2749943653C548217200 @default.
- W2749943653 hasConceptScore W2749943653C80444323 @default.
- W2749943653 hasLocation W27499436531 @default.
- W2749943653 hasOpenAccess W2749943653 @default.
- W2749943653 hasPrimaryLocation W27499436531 @default.
- W2749943653 hasRelatedWork W1517417277 @default.
- W2749943653 hasRelatedWork W163665164 @default.
- W2749943653 hasRelatedWork W1827886288 @default.
- W2749943653 hasRelatedWork W1883702554 @default.
- W2749943653 hasRelatedWork W1990050510 @default.
- W2749943653 hasRelatedWork W2059196002 @default.
- W2749943653 hasRelatedWork W2074285438 @default.
- W2749943653 hasRelatedWork W2084557509 @default.
- W2749943653 hasRelatedWork W2181923524 @default.
- W2749943653 hasRelatedWork W2473788176 @default.
- W2749943653 hasRelatedWork W2479043920 @default.
- W2749943653 hasRelatedWork W2600478067 @default.
- W2749943653 hasRelatedWork W2730816057 @default.
- W2749943653 hasRelatedWork W2752509461 @default.
- W2749943653 hasRelatedWork W2949958139 @default.
- W2749943653 hasRelatedWork W2951702347 @default.
- W2749943653 hasRelatedWork W2964025851 @default.
- W2749943653 hasRelatedWork W3091875978 @default.
- W2749943653 hasRelatedWork W2911410926 @default.
- W2749943653 hasRelatedWork W2988899494 @default.
- W2749943653 isParatext "false" @default.
- W2749943653 isRetracted "false" @default.
- W2749943653 magId "2749943653" @default.
- W2749943653 workType "article" @default.