Kernel-E

From Erights

(Difference between revisions)
Jump to: navigation, search
(Node classes)
(upload objects-in-kernel notes)
 
(2 intermediate revisions not shown)
Line 1: Line 1:
 +
Kernel-E is the subset of the E language which is understood by evaluators. Full E is converted to Kernel-E by ''expansion''.
 +
 +
{{XXX|needs more info}}
 +
== Node classes ==
== Node classes ==
Line 5: Line 9:
* [[ENode]] (abstract)
* [[ENode]] (abstract)
** [[EExpr]] (abstract) — evaluate to a value
** [[EExpr]] (abstract) — evaluate to a value
-
*** [[AssignExpr]]: [[NounExpr]] := [[Expr]] — assignment
+
*** [[AssignExpr]] — assignment
-
*** [[BindingExpr]]: && [[NounExpr]] — extract binding of a noun (given [[guard-based auditing]])  
+
*** [[BindingExpr]] (given [[guard-based auditing]]) — extract binding of a noun
-
*** [[CallExpr]]: [[EExpr]].''string''([[EExpr]]*)
+
*** [[CallExpr]]
-
*** [[CatchExpr]]: try { [[EExpr]] } catch [[Pattern]] { [[EExpr]] }
+
*** [[CatchExpr]]
-
*** [[DefineExpr]]: def [[Pattern]] ''(''exit [[EExpr]]'')?'' := [[Expr]] — match a pattern against a value
+
*** [[DefineExpr]] — match a pattern against a value
*** [[EscapeExpr]] — nonlocal exits
*** [[EscapeExpr]] — nonlocal exits
*** [[FinallyExpr]] — cleanup block
*** [[FinallyExpr]] — cleanup block
Line 42: Line 46:
* [[MatchBindExpr]] — now nonkernel in terms of [[DefineExpr]]
* [[MatchBindExpr]] — now nonkernel in terms of [[DefineExpr]]
* [[SuchThatPattern]] — now nonkernel in terms of [[ViaPattern]]
* [[SuchThatPattern]] — now nonkernel in terms of [[ViaPattern]]
 +
 +
== Objects implied by Kernel-E semantics ==
 +
 +
Kernel-E semantics involves the following specific object types:
 +
 +
* A method matcher's pattern is matched against a {{sub|[[Tuple]]|[[String]], [[ConstList]]}}.
 +
* [[IfExpr]] coerces to [[Boolean]].
 +
* [[ListPattern]] coerces to [[ConstList]].
 +
* {{XXX|Details of miranda methods}}.
 +
* {{XXX|Are there any ''kernel'' expressions that return null?}}.
 +
 +
{{XXX|This list may not be complete. The original work here was done in 2006. —[[User:Kevin Reid|Kevin Reid]] 13:01, 13 May 2011 (CDT)}}
 +
 +
[[Category: E language specification]]
[[Category: E language specification]]

Latest revision as of 18:01, 13 May 2011

Kernel-E is the subset of the E language which is understood by evaluators. Full E is converted to Kernel-E by expansion.

XXX needs more info

Node classes

The following node types may occur in a Kernel-E program. The hierarchy indicates subtype relationships.

Formerly kernel nodes

These node types were once part of Kernel-E but have been removed or made non-kernel.

Objects implied by Kernel-E semantics

Kernel-E semantics involves the following specific object types:

XXX This list may not be complete. The original work here was done in 2006. —Kevin Reid 13:01, 13 May 2011 (CDT)

Personal tools
more tools