Newspeak Programming Language Draft Specification Version 0.096

Apr 7, 2016 - Newspeak is a programming language in the Smalltalk [GR83] tradition. ...... Pattern in the environment where the literal is evaluated. ...... with Java code (say, on Android), or JSAlien which would allow interaction with.
472KB Sizes 9 Downloads 305 Views
Newspeak Programming Language Draft Specification Version 0.096 Gilad Bracha April 7, 2016

Contents 1 Introduction

3

2 Overview 2.1 Terminology . . . . . . . . . . . . . . 2.2 Syntax . . . . . . . . . . . . . . . . . 2.2.1 Object Member Selection . . 2.2.2 Parameter Lists . . . . . . . . 2.2.3 Closures and other Literals . 2.3 Class Declarations . . . . . . . . . . 2.3.1 Implicit Receivers and Scope

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

4 4 4 5 5 6 6 9

3 Concepts 3.1 Objects . . . . . . . . . . . . . . . . . . . 3.1.1 Values: Deeply Immutable Objects 3.1.2 Eventual References . . . . . . . . 3.2 Classes, Mixins and Inheritance . . . . . . 3.3 Enclosing Objects . . . . . . . . . . . . . 3.4 Messages . . . . . . . . . . . . . . . . . . 3.5 Methods . . . . . . . . . . . . . . . . . . . 3.6 Activations . . . . . . . . . . . . . . . . . 3.7 Actors . . . . . . . . . . . . . . . . . . . . 3.8 Programs . . . . . . . . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

10 10 10 11 11 13 14 14 16 17 19

. . . . . . .

. . . . . . .

4 Lexical Conventions 19 4.1 Reserved Words . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2 Lexical Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.3 Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

1

5 Expressions 5.1 Literals . . . . . . . . . . . . . . . . . . . . . 5.1.1 Numeric Literals . . . . . . . . . . . . 5.1.2 Boolean Literals . . . . . . . . . . . . 5.1.3 nil . . . . . . . . . . . . . . . . . . . . 5.1.4 Character Literals . . . . . . . . . . . 5.1.5 String Literals . . . . . . . . . . . . . 5.1.6 Symbol Literals . . . . . . . . . . . . 5.1.7 Tuple Literals . . . . . . . . . . . . . 5.1.8 Closure Literals . . . . . . . . . . . . 5.1.9 Pattern Literals . . . . . . . . . . . . . 5.1.10 Object Literals . . . . . . . . . . . . . 5.2 self . . . . . . . . . . . . . . . . . . . . . . . 5.3 Parenthesized Expressions . . . . . . . . . . . 5.4 Message Send Expressions . . . . . . . . . . . 5.4.1 Evaluation of Message Sends . . . . . 5.4.2 Message Clauses . . . . . . . . . . . . 5.4.3 Message Send Syntax . . . . . . . . . 5.4.4 Compound Message Send Expressions 5.5 Ordinary Sends . . . . . . . . . . . . . . . . . 5.6 Asynchronous Sends . . . . . . . . . . . . . . 5.7 Implicit Receiver Sends . . . . . . . . . . . . 5.8 Self Sends . . . . . . . . . . . . . . . . . . . . 5.9 Outer Sends . . . . . . . . . . . . . . . . . . . 5.10 Super Sends . . . . . . . . . . . . . . . . . . . 5.11 Class Expressions . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . .