Should your specification language be typed
- 1 May 1999
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 21 (3) , 502-526
- https://doi.org/10.1145/319301.319317
Abstract
Most specification languages have a type system. Type systems are hard to get right, and getting them wrong can lead to inconsistencies. Set theory can serve as the basis for a specification language without types. This possibility, which has been widely overlooked, offers many advantages. Untyped set theory is simple and is more flexible than any simple typed formalism. Polymorphism, overloading, and subtyping can make a type system more powerful, but at the cost of increased somplexity, and such refinements can never attain the flexibility of having no types at all. Typed formalisms have advantages, too, stemming from the power of mechanical type checking. While types serve little purpose in hand proofs, they do help with mechanized proofs. In the absence of verificaiton, type checking can catch errors in specifications. It may be possible to have the best of both worlds by adding typing annotations to an untyped specification language. We consider only specification languages, not programming languages.Keywords
This publication has 21 references indexed in Scilit:
- ACL2: an industrial strength version of NqthmPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- The Development of Type Systems for Object‐Oriented LanguagesTheory and Practice of Object Systems, 1995
- A Logical Approach to Discrete MathPublished by Springer Nature ,1993
- Report on the programming language HaskellACM SIGPLAN Notices, 1992
- The Temporal Logic of Reactive and Concurrent SystemsPublished by Springer Nature ,1992
- A partial functions version of Church's simple theory of typesThe Journal of Symbolic Logic, 1990
- Protocol Verification via ProjectionsIEEE Transactions on Software Engineering, 1984
- Predicative programming Part IICommunications of the ACM, 1984
- The Science of ProgrammingPublished by Springer Nature ,1981
- The algebraic specification of abstract data typesActa Informatica, 1978