- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
串行算法
2011 英特尔? 线程挑战赛—
并行语法分析器与公式解释器公式语法分析器和解释器分析连续的输入文字流,检查语法是否正确,根据输入内容分析出其数据结构并解析公式。公式的结果可以存储在变量中,将来的公式可以使用所有未作为公式的某个值从内存中除去的变量。最新多核硬件中的并行处理功能可用于增加语法分析器和解释器的吞吐量。许多热门 Web 浏览器的 JavaScript 引擎中的最新增强功能都需要提高与网络相关的语法分析器的处理速度。
问题描述: 编写一段多线程代码,解释、执行输入语句并生成输出结果。发送到输出结果的文字顺序应与程序输入语句中的顺序一致。您可以并行执行多个语句以增加吞吐量。注意:关键字和变量区分大小写。行结束符为分号 (;)
下面的示例定义了两行:var x = 50;var y = 10;
有效关键字和函数:关键字 描述 示例 var {variableName} 定义一个名为 variableName 的新变量。variableName 可由字母和数字 [A-Za-z0-9] 组成,但必须以字母开头。数据类型必须由程序根据使用赋值运算符 (=) 赋予变量的值来判断。 var x = 50;var double = 50.2353;var decimal = 345.212312321; free(variableName) 释放变量占用的内存。通过使用 var 关键字再次定义变量名称,可以复用该变量名称。如果某个语句尝试使用已释放的变量,程序应停止执行,并显示错误消息指出导致发生“变量未定义”错误的行号和语句。 free(x); string(variableName | value) 将指定为参数的值或变量转换为其字符串表示。转换时应始终在十进制小数点后使用固定数量的十位数字。例如,string(50.323467); 应求值为 50.3234670000。不进行任何舍入处理,仅在需要时截断和添加 0。 string(3450.212);string(double);string(result); output(variableName | value) 将指定为参数的值或变量发送到输出缓冲区/文件。如果参数是一个数字,解释器应使用为字符串函数指定的相同机制将其转换为字符串。例如,output(50.323467) 应将 50.3234670000 发送到输出结果中。 ouput(325.30);output(25 + 32);output(result);output(result + 32);output(string(20) + string(70)); 注意:公式可以用作参数,而公式结果应为该参数的值。为方便起见,您可以将语法分析器类型映射为许多高级语言中定义的标准类型,例如有符号整数、有符号双精度和字符串(允许的最大长度为 256 个字符)等数字类型。示例:output(50 + 20);string(35 + 32);string(32 * 12 * multiplier);
使用 var 关键字定义变量后,可以不用关键字将新值赋予该变量。例如:var a = 50;a = a + 1;a = 30;free(a);
数字以及数字变量的有效算术运算符:
运算符 描述 示例 = 基本赋值 var x = 50;var double = 50.2353;var decimal = 345.212312321; + 加法 var z = x + double;var q = y + z;output((30 + 20) + 10); - 减法 var z = q - d;var result = (30 - 16); * 乘法 var m = 30 * 5;var z = (30 + 5) * 2; / 除法 — 实型数据 var div = (30 / 2);var d = 5 / 2;var m = ((50 * d) / div) + 25; 注意:语法分析器将支持从整数到双精度数据类型的隐式转换。
圆括号用于将表达式分组以控制执行顺序。
例如:var m = ((50 * d) / div) + 25;
应按以下步骤解析: (50 * d)(上一个运算的结果) / div(上一个运算的结果) + 25
字符串括在双引号 () 内 — ASCII 码 34、 或
字符串的有效运算符:
运算符 描述 示例 = 基本赋值 var str = String Value;var str2 = str + and more;var str3 = string(35 + 12);var str4 = result:
文档评论(0)