User loginNavigation |
archivesFraming: The implementation sideOne of the main obstacles for formally verified imperative software is the so called framing problem. A solution to the framing problem has to give a precise answer to the question: "What does a procedure modify and what does in leave unchanged?". Some weeks ago I have presented the specification view of a new attempt to solve the framing problem (An approach to framing and mutability). The following paper describes the implementation view of the frame contracts and how the implementation view and the specification view can be kept consistent. Furthermore it demonstrates how loop invariants can be kept readable by using ghost functions. Validating LR(1) parsers
I've always been somewhat frustrated, while studying verified compiler technology, that the scope of the effort has generally been limited to ensuring that the AST and the generated code mean the same thing, as important as that obviously is. Not enough attention has been paid, IMHO, to other compiler phases. Parsing: The Solved Problem That Isn't does a good job illuminating some of the conceptual issues that arise in attempting to take parsers seriously as functions that we would like to compose etc. while maintaining some set of properties that hold of the individuals. Perhaps this work can shed some light on possible solutions to some of those issues, in addition to being worthwhile in its own right. Note the pleasing presence of an actual implementation that's been used on the parser of a real-world language, C99. By Paul Snively at 2012-06-18 15:15 | DSL | Functional | Implementation | Theory | 4 comments | other blogs | 11858 reads
Null, bottom, etc.?One of the annoying/frustrating things about Java's type system is that all reference types are inhabited by What are the differences? And where are the type systems that avoid having all types also inhabited by some nullary type? |
Browse archivesActive forum topics |
Recent comments
20 weeks 4 days ago
20 weeks 4 days ago
20 weeks 4 days ago
42 weeks 5 days ago
47 weeks 21 hours ago
48 weeks 5 days ago
48 weeks 5 days ago
51 weeks 2 days ago
1 year 3 weeks ago
1 year 3 weeks ago