Newspeak Programming Language Draft Specification ... - Gilad Bracha

Apr 7, 2016 - Newspeak is a programming language in the Smalltalk [GR83] tradition. ...... There are two basic approaches to specifying the meaning of literals in ...... with Java code (say, on Android), or JSAlien which would allow ...
472KB Sizes 10 Downloads 247 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 . . . . . . . . . . . . . . . .

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

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

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

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

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

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

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

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

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

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

. . . . . . . . . . .