电网技改检修工程预算编制中BCL的应用论文
摘要:近年来市场上出现了很多专业的电力工程造价编制软件,针对不同的业务需求,如何使得复杂的计算逻辑易于被记录和维护,如何使业务人员可以直观验证数据的正确性,如何解决工程造价计算效率不高等问题。文章通过描述BCL计算规则的原理及技术实现方案,论述了BCL在国网华东分部技改检修工程预算编制中的应用情况。
关键词:预算编制;技术经济;BCL;技改检修
1BCL简介
BCL全称为“BoowayComputingLanguage”,它是根据工程造价的特点而设计的、独立于不同产品、项目,具有开发语言无关性、平台无关性的一种解析型脚本程序语言及其编译执行方法。
2BCL实现原理
BCL能够在满足复杂工程造价计算需求的同时,有效记录并还原工程造价计算过程,其实现过程包括以下内容:(1)设计描述具体计算算法规则的代数式及扩展运算表达式结构(EL表达式)。所述EL(ExpressionLanguage)表达式是对计算算法规则的一个完整描述,以${和}作为起始和结束标记。它在沿袭传统代数表达式运算特点的同时,支持用于包含多种表达式选择的条件选择运算和完成具体计算规则的函数运算在内的其它高级运算功能。与传统代数运算不同,所述EL表达式包含种类多元化的操作数,支持数值、字符串和变量等类型。其中,变量类型操作数是所述EL表达式支持动态数据挂接的典型体现,其值可以为外部对象的引用,也可以为执行阶段设定的具体数据值。所述条件选择表达式以#{和}作为起始和结束标记,其内部可包含多个条件分支和至多一个缺省条件分支,每个分支对应一个EL表达式。整个条件选择表达式的取值为当前被激活条件分支对应的EL表达式计算结果。所述函数运算定义了具体的计算规则,以满足工程造价特定计算需求。其语法结构与C语言兼容,并支持BCL的扩展数据类型。除此之外,所述函数的调用还支持把EL表达式作为参数进行输入,能够实现指定工程数据范围与EL表达式的动态绑定,进而减少表达式代码冗余。如:sum(source,“工程量”,?工程量.数量*工程量.定额费)(2)分析工程造价计算需求,确定除EL表达式以外的其它计算逻辑单元;通过对造价工程数据及计算算法、过程的总结归纳,得出任何工程的工程造价复杂计算算法都可分解为几种最小的原子计算逻辑单元,主要为:EL表达式、宏表(macrotable)、变量(variable)、参数(parameter)和数据源(datasource)等。其中,所述宏表能完整的表示一个具有递归、多字段、多记录、有汇总关系的计算规则。所述数据源用于描述一个工程的数据及其数据范围,它是BCL语言与工程数据的粘合剂,实现真实数据的传递。所述变量是包含数据源、数据过滤算法以及费用计算算法规则在内的具体费用计算结构。(3)BCL语言的编译执行装置,包括:BCL编译器装置、BCL脚本解析装置和BCL执行器装置。所述BCL编译器装置用于对外界输入的待计算BCL元素进行编译处理,生成相应BCL对象。其中,所述BCL元素为最小待计算单元,内部包含描述计算算法规则的EL表达式集合。根据BCL元素类型的不同,采取不同策略,分析并获取相应待计算EL表达式。利用BCL语法分析器,对所述EL表达式进行词法和语法分析,生成被称之为BCL语法树的内存对象,并关联到相应BCL对象中。与BCL语言体系中的原子计算逻辑单元相对应,BCL元素至少应包含BCL包元素、BCL变量元素、BCL宏表元素、BCL记录元素、BCL字段元素、BCL参数元素和BCL数据源元素这7种。其中BCL包元素作为其它元素的容器存在,不具备值表达式。而BCL变量元素包含BCL数据源元素对象、过滤表达式和值表达式,通过执行过滤表达式,可从数据来源中筛选形成符合条件的数据范围,应用于其值表达式的计算过程当中。所述BCL脚本解析装置包含了BCL脚本文件生成器和脚本解析器,用于实现BCL对象集合与BCL脚本文件之间的相互转换,能够有效记录或还原指定BCL对象,避免对同一计算需求下的重复编译处理,有效减少工程造价计算时间。所述BCL执行模块计算生成的BCL对象,根据BCL对象类型的不同,按照不同方式,解释执行相应BCL语法树结构,将计算过程数据和计算结果分别保存在语法树结点和BCL对象当中,进而获取计算结果数据,完成执行任务。
3BCL在预算编制实例中的运用
3.1基于BCL的软件业务算法的.配置化系统采用BCL实现软件计算规则、算法与程序分离,从而实现支持版本管理的电网工程费用计算、便捷维护产品计算业务等特性,同时基于配置化能够良好支持系统实现不同计算业务的扩展。过去的工程费用计算,是将软件业务算法编辑在代码中,形成一个业务算法模块,一旦业务规则修改,代码的维护成本会很大。通过开发专用于造价计算的脚本语言BCL和计算引擎,可将软件的业务算法形成脚本文件,从而将具有业务特性的算法和规则独立于软件功能,使软件功能与业务计算完全脱离耦合,利于业务算法的扩展,提高了软件模块的可维护性。3.2基于并行节点的工程费用实时计算以往编制模式是非实时的,工程编制完后,需要生成报表才能预览费用结果,对用户编制过程中核对费用造成了极大不便,因此,根据软件业务特性和费用的组成结构,为了给用户提供更好的使用体验,通过应用BCL算法规则可以实现工程数据修改后就立即计算出工程费用的机制,达到所见即所得的的编制效果,同时软件采用增量计算和保存的技术,提高了工程费用计算的效率,也增强了数据保存的性能。
4结束语
综上所述,BCL在电网技改检修工程预算编制中得到了良好的应用,使得电网技改检修工程造价更加系统化、规范化、高效化。
参考文献
[1]毕美娜.面向VHDL算法级行为描述的程序语言编译方法研究[D].哈尔滨工程大学,.
[2]李芳,王建华,刘志峰.机械加工描述语言的编译研究[J].现代制造工程,.
[3]黄玉霞,韩其瑜.一种面向问题的描述语言及其解释程序的自动生成[J].数值计算与计算机应用,1993,14(01):58-70.
如果觉得《电网技改检修工程预算编制中BCL的应用论文》对你有帮助,请点赞、收藏,并留下你的观点哦!