内容简介:WebML is to be a Standard ML (SML '97) Compiler that works on web browsers and generatesUnder very early stage of initial development. Compiles only minimal subset of SML codes. The garbage collector is not complete.not yet implemented
WebML -- A Standard ML compiler for the Web
WebML is to be a Standard ML (SML '97) Compiler that works on web browsers and generates WebAssembly binaries. WebAssembly binaries can be run on web browsers. This means you can run SMl REPL on web browsers.
Status
Under very early stage of initial development. Compiles only minimal subset of SML codes. The garbage collector is not complete.
Implemented features
Core
-
Declaration
-
val-
basic (
val ident = expr) -
pattern (
val pat = expr) -
tyvar
val 'a pat = expr -
typed (
val pat : ty = expr) -
and(val pat = expr and pat = expr)
-
basic (
-
fun-
basic (
fun ident ident ... = expr) -
pattern (
fun ident pat ... = expr) -
multi-clause (
fun ident pat ... = expr | ident pat ... = expr) -
op(fun op ident pat ... = expr) -
tyvar (
fun 'a ident pat ... = expr) -
typed (
fun ident pat ... : ty = expr) -
and(fun ident pat ... = expr and ident pat ... = expr)
-
basic (
-
type(type ident = ty) -
datatype-
datatype ident = Con of ty | Con ...-
basic (
datatype ident = Con of ty | Con ...) -
tyvar (
datatype 'a ident = Con of ty | Con ...) -
and(datatype ident = Con | ... and ident = Con | ...) -
withtype(datatype ident = Con ... withtype ..)
-
basic (
-
datatype ident = datatype ident
-
-
abstype -
exception -
local ... in ... end -
open .. -
decl ; decl-
decl decl -
decl ; decl
-
-
infix -
infixr -
nofix
-
-
Expressions
-
special constant
- integer
-
real
-
123.456 -
123e456 -
123E456 -
123e~456
-
- word
- char
- string
- value identifier
-
op -
record
-
basic (
{ label = expr , ...}) - tuple
- 0-tuple
-
#label
-
basic (
-
list (
[expr, ..., expr]) -
(expr; ...; expr) -
paren (
(expr)) -
let .. in .. end-
basic (
let decl ... in expr end) -
derived (
let decl ... in expr; ...; expr end)
-
basic (
- function application
-
infix operator
- L
- R
-
typed (
exp : ty) -
exception
-
handle -
raise
-
-
fn-
basic (
fn ident => expr) -
pattern (
fn pat => expr) -
multi-clause
fn pat => expr | pat => expr ...
-
basic (
-
andalso -
orelse -
if .. then .. else -
while .. do .. -
case .. of ..
-
special constant
-
Pattern
- wildcard
-
special constant
- integer
- word
- char
- string
- value identifier
-
op -
record
-
basic (
{ label = pat , ...}) -
wildcard (
...) -
label as variable (
{ var (as pat), ...}) - tuple
- 0-tuple
-
basic (
- list
- paren
- Constructor
- infix
-
typed (
pat : ty) -
layerd (
ident as pat)
-
Type
- type variable
- record
-
type construction
-
without param (
ident) -
with param (
ty ident)
-
without param (
- tuple
- function
- paren
-
Initial Basis
-
unit -
bool-
true -
false
-
-
int -
word -
string -
char -
list-
nil -
::
-
-
ref-
ref -
:=
-
-
exn -
= -
Match -
Bind
-
-
Overloaded
-
+ -
- -
* -
div -
mod -
/ -
< -
> -
<= -
>= -
abs -
~
-
Module
not yet implemented
Program
-
Program
-
decl (
decl decl ...) -
expr (
expr decl ...)-
Note: toplevel expression
exprshould be treated asval it = expr
-
Note: toplevel expression
-
decl (
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
赢在设计
[美] 洛芙迪 (Lance Loveday)、[美] 尼豪斯 (Sandra Niehaus) / 刘淼、枊靖、王卓昊 / 人民邮电出版社 / 2010-8 / 55.00
企业总是面临在网站设计和改进方面进行投资的抉择。怎样才能让有限的资金发挥出最大的效益呢?网站设计不应只是把网站做得赏心悦目,它更应该是提高经济收益和获得竞争优势的战略利器。是时候让网站发挥其潜能,以业务指标为导向来做设计决策,为提升网站收益而设计了。 作者凭借多年为众多网站做咨询工作的经验,为我们揭示了赢在设计的奥秘。它针对目前网站设计中存在的典型问题,先从宏观上探讨解决问题的战略手段,围绕......一起来看看 《赢在设计》 这本书的介绍吧!