  Smart Contracts use computer technology to automate the performance of
aspects of commercial agreements. Yet how can there be confidence that the
computer code is faithful to the intentions of the parties? To understand the
depth and subtlety of this question requires an exploration of natural and
computer languages, of the semantics of expressions in those languages, and of
the gap that exists between the disciplines of law and computer science. Here
we provide a perspective on some of the key issues, explore some current
research directions, and explain the importance of language design in the
development of reliable Smart Contracts, including the specific methodology of
Computable Contracts.
