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

📄 no.117.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("# >Number:         117\n");#	io.print("# >Category:       Mserver\n");#	io.print("# >Synopsis:       multiplex fails in a loop\n");#	io.print("# >Confidential:   no\n");#	io.print("# >Severity:       critical\n");#	io.print("# >Priority:       high\n");#	io.print("# >Responsible:    boncz\n");#	io.print("# >State:          open\n");#	io.print("# >Class:          sw-bug\n");#	io.print("# >Submitter-Id:   unknown\n");#	io.print("# >Arrival-Date:   Thu Feb  5 13:46:05 1998\n");#	io.print("# >Originator:     windhouw\n");#	io.print("# >Organization:\n");#	io.print("# UvA\n");#	io.print("# >Release:        971007\n");#	io.print("# >Environment:\n");#	io.print("# \n");#	io.print("# >Description:\n");#	io.print("# The following script fails:\n");#	io.print("# \n");#	io.print("# =====\n");#	io.print("# \n");#	io.print("# test := bbp.new(oid,int);\n");#	io.print("# test.insert(oid(1),1);\n");#	io.print("# test.insert(oid(2),2);\n");#	io.print("# test.insert(oid(3),3);\n");#	io.print("# \n");#	io.print("# PROC addNr( any theNrs, any theNr) : any {\n");#	io.print("#         printf(\"add Nr: %d\\n\",theNr);\n");#	io.print("#         VAR r := [+](theNrs,theNr);\n");#	io.print("#         r.print;\n");#	io.print("#         return r;\n");#	io.print("# }\n");#	io.print("# \n");#	io.print("# PROC loopTest( any theBAT, any theMax) : void {\n");#	io.print("#         VAR i := 0;\n");#	io.print("#         WHILE (i < theMax) {\n");#	io.print("#                 addNr(theBAT,i);\n");#	io.print("#                 i := i + 1;\n");#	io.print("#         }\n");#	io.print("# }\n");#	io.print("# \n");#	io.print("# =====\n");#	io.print("# \n");#	io.print("# >loopTest(test,1);\n");#	io.print("# add Nr: 0\n");#	io.print("# #-----------------#\n");#	io.print("# # oid   | tmp_25  #\n");#	io.print("# #-----------------#\n");#	io.print("# [ 1@0,    1       ]\n");#	io.print("# [ 2@0,    2       ]\n");#	io.print("# [ 3@0,    3       ]\n");#	io.print("# >loopTest(test,2);\n");#	io.print("# add Nr: 0\n");#	io.print("# #-----------------#\n");#	io.print("# # oid   | tmp_47  #\n");#	io.print("# #-----------------#\n");#	io.print("# [ 1@0,    1       ]\n");#	io.print("# [ 2@0,    2       ]\n");#	io.print("# [ 3@0,    3       ]\n");#	io.print("# add Nr: 1\n");#	io.print("# !WARNING: BATdescriptor: range error\n");#	io.print("# ... segmentation fault\n");#	io.print("# \n");#	io.print("# =====\n");#	io.print("# \n");#	io.print("setoid(oid(20000000));");	aa_a := calc.oid(20000000);	ba_a := setoid(aa_a);#	io.print("var test := bbp.new(oid,int);");	test := bbp.new(nil:oid,nil:int);#	io.print("test.insert(oid(1),1);");	ca_a := calc.oid(1);	da_a := bat.insert(test,ca_a,1);#	io.print("test.insert(oid(2),2);");	ea_a := calc.oid(2);	fa_a := bat.insert(test,ea_a,2);#	io.print("test.insert(oid(3),3);");	ga_a := calc.oid(3);	ha_a := bat.insert(test,ga_a,3);#	io.print("PROC addNr(any theNrs, any theNr) : any {");function addNr(theNrs:any$1, theNr:any$2):any$3;#	io.print("        printf(\"add Nr: %d\\n\",theNr);");	ia_a := printf("add Nr: %d\n",theNr);#	io.print("        VAR r := [+](theNrs,theNr);");	r := multiplex.tactics("+",theNrs,theNr);#	io.print("        r.print();");	ja_a := bat.print(r);#	io.print("        return r;");	return ka_a :=r;end addNr;#	io.print("PROC loopTest(any theBAT,any theMax) : void {");function loopTest(theBAT:any$1, theMax:any$2):void;#	io.print("        VAR i := 0;");	i := 0;#	io.print("        WHILE (i < theMax) {");barrier	la_a := true;barrier	ma_a := <(i,theMax);#	io.print("                addNr(theBAT,i);");	na_a := addNr(theBAT,i);#	io.print("                i := i + 1;");	i := +(i,1);#	io.print("        }");redo	la_a;exit	ma_a;exit	la_a;end loopTest;#	io.print("loopTest(test,1);");	oa_a := loopTest(test,1);#	io.print("loopTest(test,2);");	pa_a := loopTest(test,2);#	io.print("quit();");	qa_a := clients.quit();

⌨️ 快捷键说明

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