8.10
3.1.11 v9 Languages
p | | ::= | | (module (define x (lambda (x ...) value)) ... value) |
| | | | |
value | | ::= | | triv |
| | | | | (let ([x value] ...) value) |
| | | | | (if value value value) |
| | | | | (call value value ...) |
| | | | |
triv | | ::= | | x |
| | | | | fixnum |
| | | | | #t |
| | | | | #f |
| | | | | empty |
| | | | | (void) |
| | | | | (error uint8) |
| | | | | ascii-char-literal |
| | | | | (lambda (x ...) value) |
| | | | |
x | | ::= | | name? |
| | | | | prim-f |
| | | | |
prim-f | | ::= | | binop |
| | | | | unop |
| | | | |
binop | | ::= | | * |
| | | | | + |
| | | | | - |
| | | | | eq? |
| | | | | < |
| | | | | <= |
| | | | | > |
| | | | | >= |
| | | | |
unop | | ::= | | fixnum? |
| | | | | boolean? |
| | | | | empty? |
| | | | | void? |
| | | | | ascii-char? |
| | | | | error? |
| | | | | not |
| | | | | pair? |
| | | | | procedure? |
| | | | | vector? |
| | | | | cons |
| | | | | car |
| | | | | cdr |
| | | | | make-vector |
| | | | | vector-length |
| | | | | vector-set! |
| | | | | vector-ref |
| | | | | procedure-arity |
| | | | |
fixnum | | ::= | | int61? |
| | | | |
uint8 | | ::= | | uint8? |
| | | | |
ascii-char-literal | | ::= | | ascii-char-literal? |
Decides whether
a is a valid program in the
exprs-lang-v9 grammar, represented as a
quoted datum. The first non-terminal in the grammar defines valid programs.
p | | ::= | | (module (define aloc (lambda (aloc ...) value)) ... value) |
| | | | |
value | | ::= | | triv |
| | | | | (call value value ...) |
| | | | | (let ([aloc value] ...) value) |
| | | | | (if value value value) |
| | | | |
triv | | ::= | | aloc |
| | | | | prim-f |
| | | | | fixnum |
| | | | | #t |
| | | | | #f |
| | | | | empty |
| | | | | (void) |
| | | | | (error uint8) |
| | | | | ascii-char-literal |
| | | | | (lambda (aloc ...) value) |
| | | | |
prim-f | | ::= | | * |
| | | | | + |
| | | | | - |
| | | | | eq? |
| | | | | < |
| | | | | <= |
| | | | | > |
| | | | | >= |
| | | | | fixnum? |
| | | | | boolean? |
| | | | | empty? |
| | | | | void? |
| | | | | ascii-char? |
| | | | | error? |
| | | | | not |
| | | | | pair? |
| | | | | procedure? |
| | | | | vector? |
| | | | | cons |
| | | | | car |
| | | | | cdr |
| | | | | make-vector |
| | | | | vector-length |
| | | | | vector-set! |
| | | | | vector-ref |
| | | | | procedure-arity |
| | | | |
aloc | | ::= | | aloc? |
| | | | |
fixnum | | ::= | | int61? |
| | | | |
uint8 | | ::= | | uint8? |
| | | | |
ascii-char-literal | | ::= | | ascii-char-literal? |
Decides whether
a is a valid program in the
exprs-unique-lang-v9 grammar, represented as a
quoted datum. The first non-terminal in the grammar defines valid programs.
p | | ::= | | (module (define aloc (lambda (aloc ...) value)) ... value) |
| | | | |
value | | ::= | | triv |
| | | | | (primop value ...) |
| | | | | (call value value ...) |
| | | | | (let ([aloc value] ...) value) |
| | | | | (if value value value) |
| | | | | (begin effect ... value) |
| | | | |
effect | | ::= | | (primop value ...) |
| | | | | (begin effect ... effect) |
| | | | |
triv | | ::= | | aloc |
| | | | | fixnum |
| | | | | #t |
| | | | | #f |
| | | | | empty |
| | | | | (void) |
| | | | | (error uint8) |
| | | | | ascii-char-literal |
| | | | | (lambda (aloc ...) value) |
| | | | |
primop | | ::= | | unsafe-fx* |
| | | | | unsafe-fx+ |
| | | | | unsafe-fx- |
| | | | | eq? |
| | | | | unsafe-fx< |
| | | | | unsafe-fx<= |
| | | | | unsafe-fx> |
| | | | | unsafe-fx>= |
| | | | | fixnum? |
| | | | | boolean? |
| | | | | empty? |
| | | | | void? |
| | | | | ascii-char? |
| | | | | error? |
| | | | | not |
| | | | | pair? |
| | | | | vector? |
| | | | | procedure? |
| | | | | cons |
| | | | | unsafe-car |
| | | | | unsafe-cdr |
| | | | | unsafe-make-vector |
| | | | | unsafe-vector-length |
| | | | | unsafe-vector-set! |
| | | | | unsafe-vector-ref |
| | | | | unsafe-procedure-arity |
| | | | |
aloc | | ::= | | aloc? |
| | | | |
fixnum | | ::= | | int61? |
| | | | |
uint8 | | ::= | | uint8? |
| | | | |
ascii-char-literal | | ::= | | ascii-char-literal? |
Decides whether
a is a valid program in the
exprs-unsafe-data-lang-v9 grammar, represented as a
quoted datum. The first non-terminal in the grammar defines valid programs.
p | | ::= | | (module (define aloc (lambda (aloc ...) value)) ... value) |
| | | | |
value | | ::= | | triv |
| | | | | (primop value ...) |
| | | | | (unsafe-procedure-call value value ...) |
| | | | | (let ([aloc value] ...) value) |
| | | | | (if value value value) |
| | | | | (begin effect ... value) |
| | | | |
effect | | ::= | | (primop value ...) |
| | | | | (begin effect ... effect) |
| | | | |
triv | | ::= | | aloc |
| | | | | fixnum |
| | | | | #t |
| | | | | #f |
| | | | | empty |
| | | | | (void) |
| | | | | (error uint8) |
| | | | | ascii-char-literal |
| | | | | (lambda (aloc ...) value) |
| | | | |
primop | | ::= | | unsafe-fx* |
| | | | | unsafe-fx+ |
| | | | | unsafe-fx- |
| | | | | eq? |
| | | | | unsafe-fx< |
| | | | | unsafe-fx<= |
| | | | | unsafe-fx> |
| | | | | unsafe-fx>= |
| | | | | fixnum? |
| | | | | boolean? |
| | | | | empty? |
| | | | | void? |
| | | | | ascii-char? |
| | | | | error? |
| | | | | not |
| | | | | pair? |
| | | | | vector? |
| | | | | procedure? |
| | | | | cons |
| | | | | unsafe-car |
| | | | | unsafe-cdr |
| | | | | unsafe-make-vector |
| | | | | unsafe-vector-length |
| | | | | unsafe-vector-set! |
| | | | | unsafe-vector-ref |
| | | | | unsafe-procedure-arity |
| | | | |
aloc | | ::= | | aloc? |
| | | | |
fixnum | | ::= | | int61? |
| | | | |
uint8 | | ::= | | uint8? |
| | | | |
ascii-char-literal | | ::= | | ascii-char-literal? |
Decides whether
a is a valid program in the
exprs-unsafe-lang-v9 grammar, represented as a
quoted datum. The first non-terminal in the grammar defines valid programs.
p | | ::= | | (module value) |
| | | | |
value | | ::= | | triv |
| | | | | (primop value ...) |
| | | | | (unsafe-procedure-call value value ...) |
| | | | | (letrec ([aloc (lambda (aloc ...) value)] ...) value) |
| | | | | (let ([aloc value] ...) value) |
| | | | | (if value value value) |
| | | | | (begin effect ... value) |
| | | | |
effect | | ::= | | (primop value ...) |
| | | | | (begin effect ... effect) |
| | | | |
triv | | ::= | | aloc |
| | | | | fixnum |
| | | | | #t |
| | | | | #f |
| | | | | empty |
| | | | | (void) |
| | | | | (error uint8) |
| | | | | ascii-char-literal |
| | | | | (lambda (aloc ...) value) |
| | | | |
primop | | ::= | | unsafe-fx* |
| | | | | unsafe-fx+ |
| | | | | unsafe-fx- |
| | | | | eq? |
| | | | | unsafe-fx< |
| | | | | unsafe-fx<= |
| | | | | unsafe-fx> |
| | | | | unsafe-fx>= |
| | | | | fixnum? |
| | | | | boolean? |
| | | | | empty? |
| | | | | void? |
| | | | | ascii-char? |
| | | | | error? |
| | | | | not |
| | | | | pair? |
| | | | | vector? |
| | | | | procedure? |
| | | | | cons |
| | | | | unsafe-car |
| | | | | unsafe-cdr |
| | | | | unsafe-make-vector |
| | | | | unsafe-vector-length |
| | | | | unsafe-vector-set! |
| | | | | unsafe-vector-ref |
| | | | | unsafe-procedure-arity |
| | | | |
aloc | | ::= | | aloc? |
| | | | |
fixnum | | ::= | | int61? |
| | | | |
uint8 | | ::= | | uint8? |
| | | | |
ascii-char-literal | | ::= | | ascii-char-literal? |
Decides whether
a is a valid program in the
just-exprs-lang-v9 grammar, represented as a
quoted datum. The first non-terminal in the grammar defines valid programs.
p | | ::= | | (module value) |
| | | | |
value | | ::= | | triv |
| | | | | (primop value ...) |
| | | | | (unsafe-procedure-call value value ...) |
| | | | | (letrec ([aloc (lambda (aloc ...) value)] ...) value) |
| | | | | (let ([aloc value] ...) value) |
| | | | | (if value value value) |
| | | | | (begin effect ... value) |
| | | | |
effect | | ::= | | (primop value ...) |
| | | | | (begin effect ... effect) |
| | | | |
triv | | ::= | | aloc |
| | | | | fixnum |
| | | | | #t |
| | | | | #f |
| | | | | empty |
| | | | | (void) |
| | | | | (error uint8) |
| | | | | ascii-char-literal |
| | | | |
primop | | ::= | | unsafe-fx* |
| | | | | unsafe-fx+ |
| | | | | unsafe-fx- |
| | | | | eq? |
| | | | | unsafe-fx< |
| | | | | unsafe-fx<= |
| | | | | unsafe-fx> |
| | | | | unsafe-fx>= |
| | | | | fixnum? |
| | | | | boolean? |
| | | | | empty? |
| | | | | void? |
| | | | | ascii-char? |
| | | | | error? |
| | | | | not |
| | | | | pair? |
| | | | | vector? |
| | | | | procedure? |
| | | | | cons |
| | | | | unsafe-car |
| | | | | unsafe-cdr |
| | | | | unsafe-make-vector |
| | | | | unsafe-vector-length |
| | | | | unsafe-vector-set! |
| | | | | unsafe-vector-ref |
| | | | | unsafe-procedure-arity |
| | | | |
aloc | | ::= | | aloc? |
| | | | |
fixnum | | ::= | | int61? |
| | | | |
uint8 | | ::= | | uint8? |
| | | | |
ascii-char-literal | | ::= | | ascii-char-literal? |
Decides whether
a is a valid program in the
lam-opticon-lang-v9 grammar, represented as a
quoted datum. The first non-terminal in the grammar defines valid programs.
p | | ::= | | (module value) |
| | | | |
info | | ::= | | ((free (aloc ...)) any ...) |
| | | | |
value | | ::= | | triv |
| | | | | (primop value ...) |
| | | | | (unsafe-procedure-call value value ...) |
| | | | | (letrec ([aloc (lambda info (aloc ...) value)] ...) value) |
| | | | | (let ([aloc value] ...) value) |
| | | | | (if value value value) |
| | | | | (begin effect ... value) |
| | | | |
effect | | ::= | | (primop value ...) |
| | | | | (begin effect ... effect) |
| | | | |
triv | | ::= | | aloc |
| | | | | fixnum |
| | | | | #t |
| | | | | #f |
| | | | | empty |
| | | | | (void) |
| | | | | (error uint8) |
| | | | | ascii-char-literal |
| | | | |
primop | | ::= | | unsafe-fx* |
| | | | | unsafe-fx+ |
| | | | | unsafe-fx- |
| | | | | eq? |
| | | | | unsafe-fx< |
| | | | | unsafe-fx<= |
| | | | | unsafe-fx> |
| | | | | unsafe-fx>= |
| | | | | fixnum? |
| | | | | boolean? |
| | | | | empty? |
| | | | | void? |
| | | | | ascii-char? |
| | | | | error? |
| | | | | not |
| | | | | pair? |
| | | | | vector? |
| | | | | procedure? |
| | | | | cons |
| | | | | unsafe-car |
| | | | | unsafe-cdr |
| | | | | unsafe-make-vector |
| | | | | unsafe-vector-length |
| | | | | unsafe-vector-set! |
| | | | | unsafe-vector-ref |
| | | | | unsafe-procedure-arity |
| | | | |
aloc | | ::= | | aloc? |
| | | | |
fixnum | | ::= | | int61? |
| | | | |
uint8 | | ::= | | uint8? |
| | | | |
ascii-char-literal | | ::= | | ascii-char-literal? |
Decides whether
a is a valid program in the
lam-free-lang-v9 grammar, represented as a
quoted datum. The first non-terminal in the grammar defines valid programs.
p | | ::= | | (module value) |
| | | | |
value | | ::= | | triv |
| | | | | (primop value ...) |
| | | | | (closure-ref value value) |
| | | | | (closure-call value value ...) |
| | | | | (call value value ...) |
| | | | | (letrec ([label (lambda (aloc ...) value)] ...) value) |
| | | | | (cletrec ([aloc (make-closure label value ...)] ...) value) |
| | | | | (let ([aloc value] ...) value) |
| | | | | (if value value value) |
| | | | | (begin effect ... value) |
| | | | |
effect | | ::= | | (primop value ...) |
| | | | | (begin effect ... effect) |
| | | | |
triv | | ::= | | aloc |
| | | | | label |
| | | | | fixnum |
| | | | | #t |
| | | | | #f |
| | | | | empty |
| | | | | (void) |
| | | | | (error uint8) |
| | | | | ascii-char-literal |
| | | | |
primop | | ::= | | unsafe-fx* |
| | | | | unsafe-fx+ |
| | | | | unsafe-fx- |
| | | | | eq? |
| | | | | unsafe-fx< |
| | | | | unsafe-fx<= |
| | | | | unsafe-fx> |
| | | | | unsafe-fx>= |
| | | | | fixnum? |
| | | | | boolean? |
| | | | | empty? |
| | | | | void? |
| | | | | ascii-char? |
| | | | | error? |
| | | | | not |
| | | | | pair? |
| | | | | vector? |
| | | | | procedure? |
| | | | | cons |
| | | | | unsafe-car |
| | | | | unsafe-cdr |
| | | | | unsafe-make-vector |
| | | | | unsafe-vector-length |
| | | | | unsafe-vector-set! |
| | | | | unsafe-vector-ref |
| | | | | unsafe-procedure-arity |
| | | | |
aloc | | ::= | | aloc? |
| | | | |
label | | ::= | | label? |
| | | | |
fixnum | | ::= | | int61? |
| | | | |
uint8 | | ::= | | uint8? |
| | | | |
ascii-char-literal | | ::= | | ascii-char-literal? |
Decides whether
a is a valid program in the
closure-lang-v9 grammar, represented as a
quoted datum. The first non-terminal in the grammar defines valid programs.
p | | ::= | | (module (define label (lambda (aloc ...) value)) ... value) |
| | | | |
value | | ::= | | triv |
| | | | | (primop value ...) |
| | | | | (closure-ref value value) |
| | | | | (closure-call value value ...) |
| | | | | (call value value ...) |
| | | | | (cletrec ([aloc (make-closure label value ...)] ...) value) |
| | | | | (let ([aloc value] ...) value) |
| | | | | (if value value value) |
| | | | | (begin effect ... value) |
| | | | |
effect | | ::= | | (primop value ...) |
| | | | | (begin effect ... effect) |
| | | | |
triv | | ::= | | aloc |
| | | | | label |
| | | | | fixnum |
| | | | | #t |
| | | | | #f |
| | | | | empty |
| | | | | (void) |
| | | | | (error uint8) |
| | | | | ascii-char-literal |
| | | | |
primop | | ::= | | unsafe-fx* |
| | | | | unsafe-fx+ |
| | | | | unsafe-fx- |
| | | | | eq? |
| | | | | unsafe-fx< |
| | | | | unsafe-fx<= |
| | | | | unsafe-fx> |
| | | | | unsafe-fx>= |
| | | | | fixnum? |
| | | | | boolean? |
| | | | | empty? |
| | | | | void? |
| | | | | ascii-char? |
| | | | | error? |
| | | | | not |
| | | | | pair? |
| | | | | vector? |
| | | | | procedure? |
| | | | | cons |
| | | | | unsafe-car |
| | | | | unsafe-cdr |
| | | | | unsafe-make-vector |
| | | | | unsafe-vector-length |
| | | | | unsafe-vector-set! |
| | | | | unsafe-vector-ref |
| | | | | unsafe-procedure-arity |
| | | | |
aloc | | ::= | | aloc? |
| | | | |
label | | ::= | | label? |
| | | | |
fixnum | | ::= | | int61? |
| | | | |
uint8 | | ::= | | uint8? |
| | | | |
ascii-char-literal | | ::= | | ascii-char-literal? |
Decides whether
a is a valid program in the
hoisted-lang-v9 grammar, represented as a
quoted datum. The first non-terminal in the grammar defines valid programs.
p | | ::= | | (module (define label (lambda (aloc ...) value)) ... value) |
| | | | |
value | | ::= | | triv |
| | | | | (primop value ...) |
| | | | | (call value value ...) |
| | | | | (let ([aloc value] ...) value) |
| | | | | (if value value value) |
| | | | | (begin effect ... value) |
| | | | |
effect | | ::= | | (primop value ...) |
| | | | | (begin effect ... effect) |
| | | | |
triv | | ::= | | aloc |
| | | | | label |
| | | | | fixnum |
| | | | | #t |
| | | | | #f |
| | | | | empty |
| | | | | (void) |
| | | | | (error uint8) |
| | | | | ascii-char-literal |
| | | | |
primop | | ::= | | unsafe-fx* |
| | | | | unsafe-fx+ |
| | | | | unsafe-fx- |
| | | | | eq? |
| | | | | unsafe-fx< |
| | | | | unsafe-fx<= |
| | | | | unsafe-fx> |
| | | | | unsafe-fx>= |
| | | | | fixnum? |
| | | | | boolean? |
| | | | | empty? |
| | | | | void? |
| | | | | ascii-char? |
| | | | | error? |
| | | | | not |
| | | | | pair? |
| | | | | vector? |
| | | | | procedure? |
| | | | | cons |
| | | | | unsafe-car |
| | | | | unsafe-cdr |
| | | | | unsafe-make-vector |
| | | | | unsafe-vector-length |
| | | | | unsafe-vector-set! |
| | | | | unsafe-vector-ref |
| | | | | make-procedure |
| | | | | unsafe-procedure-arity |
| | | | | unsafe-procedure-label |
| | | | | unsafe-procedure-ref |
| | | | | unsafe-procedure-set! |
| | | | |
aloc | | ::= | | aloc? |
| | | | |
label | | ::= | | label? |
| | | | |
fixnum | | ::= | | int61? |
| | | | |
uint8 | | ::= | | uint8? |
| | | | |
ascii-char-literal | | ::= | | ascii-char-literal? |
Decides whether
a is a valid program in the
proc-exposed-lang-v9 grammar, represented as a
quoted datum. The first non-terminal in the grammar defines valid programs.