⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_31.mal

📁 一个内存数据库的源代码这是服务器端还有客户端
💻 MAL
字号:
# Monet Mil to Mal compiler# Copyright (c) 2001-2004, CWI. All rights reserved.#Predefined code segment#The compiler can not guarantee an accurate compilation,#because MIL unlike MAL is a dynamically typed language.#A few guidelines to maximize usefullness.#- make the type of variables explicit, in particular 'nil'#- upon advice of M2m to remap identifiers, change it in your program directly#use the "mil_schema" for additional support routines#	io.print("setoid(oid(20000000));");	aa_a := calc.oid(20000000);	ba_a := setoid(aa_a);#	io.print("## Performance test for closure and traversals\n");#	io.print("proc fill(int size) : BAT[int,int] {");function fill(size:int):bat[:int,:int];#	io.print("    var c:= bat.new(int,int);");	c := bat.new(nil:int,nil:int);#	io.print("    var i := 1;");	i := 1;#	io.print("    while(i < size) {");barrier	ca_a := true;barrier	da_a := <(i,size);#	io.print("      bat.insert(c,i,i:=i+1);");	i := +(i,1);	ea_a := bat.insert(c,i,i);#	io.print("    }");redo	ca_a;exit	da_a;exit	ca_a;#	io.print("    bat.insert(c,i,1);");	fa_a := bat.insert(c,i,1);#	io.print("    return c;");	return ga_a :=c;end fill;#	io.print("var c := closure(fill(20)); ");	ha_a := fill(20);	c := closure(ha_a);#	io.print("count(c).print();");	ia_a := aggr.count(c);	ja_a := bat.print(ia_a);#	io.print("var z:= time();");	z := alarm.time();#	io.print("var clo:= closure(c);");	clo := closure(c);#	io.print("printf(\"#~BeginVariableOutput~#\\nclosure in %d ms cnt %d\\n#~EndVariableOutput~#\\n\",time()-z,count(clo));");	ka_a := alarm.time();	la_a := -(ka_a,z);	ma_a := aggr.count(clo);	na_a := printf("#~BeginVariableOutput~#\nclosure in %d ms cnt %d\n#~EndVariableOutput~#\n",la_a,ma_a);#	io.print("## testing traversal on directed acyclic graph\n");#	io.print("## produces the end-points only\n");	d := bat.new(nil:int,nil:int);#	io.print("d.insert(1,1);");	oa_a := bat.insert(d,1,1);#	io.print("d.subgraph(c).print();");	pa_a := subgraph(d,c);	qa_a := bat.print(pa_a);#	io.print("## The alternative is to extract a subgraph as a set\n");	ra_a := clear(d);#	io.print("d.insert(2,2);");	sa_a := bat.insert(d,2,2);#	io.print("var z:= time();");	z := alarm.time();#	io.print("var e:=d.subgraph(c); printf(\"#~BeginVariableOutput~#\\nsubgraph in %d ms on %d\\n#~EndVariableOutput~#\\n\",time()-z,count(e));");	e := subgraph(d,c);	ta_a := alarm.time();	ua_a := -(ta_a,z);	va_a := aggr.count(e);	wa_a := printf("#~BeginVariableOutput~#\nsubgraph in %d ms on %d\n#~EndVariableOutput~#\n",ua_a,va_a);#	io.print("d.clear();");	xa_a := clear(d);#	io.print("d.insert(2,2);");	ya_a := bat.insert(d,2,2);#	io.print("d.insert(3,3);");	ab_a := bat.insert(d,3,3);#	io.print("z:= time(); ");	z := alarm.time();#	io.print("e:=d.subgraph(c); printf(\"#~BeginVariableOutput~#\\nsubgraph in %d ms cnt %d\\n#~EndVariableOutput~#\\n\",time()-z,count(e));");	e := subgraph(d,c);	bb_a := alarm.time();	cb_a := -(bb_a,z);	db_a := aggr.count(e);	eb_a := printf("#~BeginVariableOutput~#\nsubgraph in %d ms cnt %d\n#~EndVariableOutput~#\n",cb_a,db_a);#	io.print("d.clear();");	fb_a := clear(d);#	io.print("d.insert(2,2);");	gb_a := bat.insert(d,2,2);#	io.print("d.insert(3,3);");	hb_a := bat.insert(d,3,3);#	io.print("d.insert(4,4);");	ib_a := bat.insert(d,4,4);#	io.print("d.insert(5,5);");	jb_a := bat.insert(d,5,5);#	io.print("z:= time(); ");	z := alarm.time();#	io.print("e:=d.subgraph(c); printf(\"#~BeginVariableOutput~#\\nsubgraph in %d ms cnt %d\\n#~EndVariableOutput~#\\n\",time()-z,count(e));");	e := subgraph(d,c);	kb_a := alarm.time();	lb_a := -(kb_a,z);	mb_a := aggr.count(e);	nb_a := printf("#~BeginVariableOutput~#\nsubgraph in %d ms cnt %d\n#~EndVariableOutput~#\n",lb_a,mb_a);#	io.print("## LARGE TEST\n");	ob_a := printf("#~BeginVariableOutput~#\n");	pb_a := cpu();	qb_a := bat.print(pb_a);	rb_a := printf("#~EndVariableOutput~#\n");#	io.print("d.clear();");	sb_a := clear(d);#	io.print("d.insert(2,2);");	tb_a := bat.insert(d,2,2);#	io.print("z:= time();");	z := alarm.time();#	io.print("e:=d.subgraph(clo); ");	e := subgraph(d,clo);#	io.print("printf(\"#~BeginVariableOutput~#\\nsubgraph in %d ms on %d\\n#~EndVariableOutput~#\\n\",time()-z,count(e));");	ub_a := alarm.time();	vb_a := -(ub_a,z);	wb_a := aggr.count(e);	xb_a := printf("#~BeginVariableOutput~#\nsubgraph in %d ms on %d\n#~EndVariableOutput~#\n",vb_a,wb_a);#	io.print("d.clear();");	yb_a := clear(d);#	io.print("## d.insert(2,2);\n");	ac_a := bat.insert(d,3,3);#	io.print("z:= time(); ");	z := alarm.time();#	io.print("e:=d.subgraph(clo); ");	e := subgraph(d,clo);#	io.print("printf(\"#~BeginVariableOutput~#\\nsubgraph in %d ms cnt %d\\n#~EndVariableOutput~#\\n\",time()-z,count(e));");	bc_a := alarm.time();	cc_a := -(bc_a,z);	dc_a := aggr.count(e);	ec_a := printf("#~BeginVariableOutput~#\nsubgraph in %d ms cnt %d\n#~EndVariableOutput~#\n",cc_a,dc_a);#	io.print("d.clear();");	fc_a := clear(d);#	io.print("##d.insert(2,2);\n");#	io.print("##d.insert(3,3);\n");	gc_a := bat.insert(d,4,4);#	io.print("##d.insert(5,5);\n");	z := alarm.time();#	io.print("e:=d.subgraph(clo); printf(\"#~BeginVariableOutput~#\\nsubgraph in %d ms cnt %d\\n#~EndVariableOutput~#\\n\",time()-z,count(e));");	e := subgraph(d,clo);	hc_a := alarm.time();	ic_a := -(hc_a,z);	jc_a := aggr.count(e);	kc_a := printf("#~BeginVariableOutput~#\nsubgraph in %d ms cnt %d\n#~EndVariableOutput~#\n",ic_a,jc_a);#	io.print("printf(\"#~BeginVariableOutput~#\\n\"); cpu().print(); printf(\"#~EndVariableOutput~#\\n\");");	lc_a := printf("#~BeginVariableOutput~#\n");	mc_a := cpu();	nc_a := bat.print(mc_a);	oc_a := printf("#~EndVariableOutput~#\n");#	io.print("quit();");	pc_a := clients.quit();#Identifer 'time' mapped to 'alarm.time'

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -