On this page:
racketish-core-v10
racketish-core-v10?
interp-racketish-core-v10
assigned-lang-v10
assigned-lang-v10?
interp-assigned-lang-v10
exprs-safe-lang-v10
exprs-safe-lang-v10?
interp-exprs-safe-lang-v10
8.10
3.1.12 v10 Languages

 (require cpsc411/langs/v10) package: cpsc411-lib

NOTE! This library is unstable and should not be used.

racketish-core-v10 : grammar?

  p ::= (module (define x value) ... value)
     
  value ::= triv
  | (call value value ...)
  | (let ([x value] ...) value)
  | (letrec ([x value] ...) value)
  | (if value value value)
     
  triv ::= x
  | fixnum
  | #t
  | #f
  | ()
  | (void)
  | (error uint8)
  | ascii-char-literal
  | (lambda (x ...) value)
     
  x ::= name?
  | prim-f
     
  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
     
  fixnum ::= int61?
     
  uint8 ::= uint8?
     
  ascii-char-literal ::= ascii-char-literal?

procedure

(racketish-core-v10? a)  boolean?

  a : any/c
Decides whether a is a valid program in the racketish-core-v10 grammar, represented as a quoted datum. The first non-terminal in the grammar defines valid programs.
Evaluates a racketish-core-v10 program to a value.

assigned-lang-v10 : grammar?

  p ::= (module value)
     
  effect ::= (set! aloc value)
     
  value ::= triv
  | (call value value ...)
  | (letrec ([aloc value] ...) value)
  | (let (info ((assigned (aloc ...)))) ([aloc value] ...) value)
  | (if value value value)
  | (begin effect ... value)
     
  triv ::= fixnum
  | prim-f
  | aloc
  | #t
  | #f
  | ()
  | (void)
  | (error uint8)
  | ascii-char-literal
  | (lambda (aloc ...) e)
     
  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

procedure

(assigned-lang-v10? a)  boolean?

  a : any/c
Decides whether a is a valid program in the assigned-lang-v10 grammar, represented as a quoted datum. The first non-terminal in the grammar defines valid programs.

procedure

(interp-assigned-lang-v10 a)  any/c

  a : assigned-lang-v10?
Evaluates a assigned-lang-v10 program to a value.

exprs-safe-lang-v10 : grammar?

  p ::= (module (define aloc value) ... value)
     
  value ::= triv
  | (call value value ...)
  | (let ([aloc value] ...) value)
  | (letrec ([aloc value] ...) value)
  | (if value value value)
     
  triv ::= aloc
  | prim-f
  | fixnum
  | #t
  | #f
  | ()
  | (void)
  | (error uint8)
  | ascii-char-literal
  | (lambda (x ...) 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?

procedure

(exprs-safe-lang-v10? a)  boolean?

  a : any/c
Decides whether a is a valid program in the exprs-safe-lang-v10 grammar, represented as a quoted datum. The first non-terminal in the grammar defines valid programs.
Evaluates a exprs-safe-lang-v10 program to a value.