Mechanized formal reasoning about programs and computing machines
Automated reasoning and its applications
The DrScheme project: an overview
ACM SIGPLAN Notices
Contracts for higher-order functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Composable and compilable macros:: you want it when?
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
DrScheme: a programming environment for Scheme
Journal of Functional Programming
Engineering software correctness
Proceedings of the 2005 workshop on Functional and declarative programming in education
Functional programming and theorem proving for undergraduates: a progress report
Proceedings of the 2008 international workshop on Functional and declarative programming in education
Toward a Practical Module System for ACL2
PADL '09 Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages
Making induction manifest in modular ACL2
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
Computational logic in the undergraduate curriculum
Proceedings of the Eighth International Workshop on the ACL2 Theorem Prover and its Applications
Automatic verification for interactive graphical programs
Proceedings of the Eighth International Workshop on the ACL2 Theorem Prover and its Applications
Proceedings of the Eighth International Workshop on the ACL2 Theorem Prover and its Applications
Hypertext navigation of ACL2 proofs with XMLEye
Proceedings of the Eighth International Workshop on the ACL2 Theorem Prover and its Applications
TFP'10 Proceedings of the 11th international conference on Trends in functional programming
Teaching semantics with a proof assistant: no more LSD trip proofs
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Hi-index | 0.00 |
Teaching undergraduates to develop software in a formal framework such as ACL2 poses two immediate challenges. First, students typically do not know applicative programming and are often unfamiliar with ACL2's syntax. Second, for motivational reasons, students prefer to work on projects that involve designing interactive, graphical applications.In this paper, we present DRACULA, a pedagogic programming environment that partially solves these problems. The environment adds a subset of Applicative Common Lisp to DRSCHEME, an integrated programming environment for Scheme. DRACULA thus inherits DRSCHEME's pedagogic capabilities, especially its treatment of syntax and run-time errors. Further, DRACULA also comes with a library for programming interactive, graphical games. The library interface forces students to think of a graphical user interface in terms of state-transition functions, enabling them later to prove theorems about their games in ACL2. DRACULA provides a graphical front-end to the ACL2 theorem prover for this purpose. In short, DRACULA allows the formulation of student projects that represent an important intermediate point between data structure exercises in theorem proving and industrial applications.