Skip to content

Commit a5a87bc

Browse files
committed
drop big-step/small-step
1 parent 05d4d0f commit a5a87bc

File tree

1 file changed

+6
-16
lines changed

1 file changed

+6
-16
lines changed

blog/_posts/2016-02-03-essence-of-scala.md

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ it's DOT, the calculus of dependent object types, that underlies Scala.
1313
A [paper on DOT](http://infoscience.epfl.ch/record/215280) will be
1414
presented in April at [Wadlerfest](http://events.inf.ed.ac.uk/wf2016),
1515
an event celebrating Phil Wadler's 60th birthday. There's also a prior
16-
technical report (["From F to DOT"](http://arxiv.org/abs/1510.05216))
16+
technical report ([From F to DOT](http://arxiv.org/abs/1510.05216))
1717
by Tiark Rompf and Nada Amin describing a slightly different version
1818
of the calculus. Each paper describes a proof of type soundness that
1919
has been machine-checked for correctness.
@@ -51,20 +51,10 @@ The grammar uses several kinds of names:
5151
a for (parameterless) methods
5252
A for types
5353

54-
The full calculus adds to this syntax formal _typing rules_ that assign
55-
types `T` to terms `t` and formal _evaluation rules_ that describe how a
56-
program is evaluated. The main difference between the Wadlerfest paper
57-
and the prior technical report lies in the form of these evaluation
58-
rules. The technical report uses a "big step" semantics, i.e. it
59-
defines an interpreter that explains how terms map to
60-
values. The Wadlerfest paper uses a more common "small step"
61-
semantics, i.e. it explains evaluation as step-wise rewritings of
62-
terms. To do this, it needs to restrict terms to be in [A-normal
63-
form](https://en.wikipedia.org/wiki/A-normal_form), that is, every
64-
intermediate term is abstracted out in a local definition.
65-
66-
The following _type soundness_ property was shown in each case with a
67-
mechanized, (i.e. machine-checked) proof:
54+
The full calculus adds to this syntax formal _typing rules_ that
55+
assign types `T` to terms `t` and formal _evaluation rules_ that
56+
describe how a program is evaluated. The following _type soundness_
57+
property was shown with a mechanized, (i.e. machine-checked) proof:
6858

6959
> If a term `t` has type `T`, and the evaluation of `t` terminates, then
7060
the result of the evaluation will be a value `v` of type `T`.
@@ -151,5 +141,5 @@ project are important.
151141
This lets us put other constructs of the Scala language to the test,
152142
either to increase our confidence that they are indeed sound, or
153143
to show that they are unsound. In my next blog I will
154-
present some of the issues we have discovered by that exercise.
144+
present some of the issues we have discovered through that exercise.
155145

0 commit comments

Comments
 (0)