Synthesizing Concurrency Control Components from Process Algebraic Specifications
- 格式:pdf
- 大小:205.76 KB
- 文档页数:18
Robust ControlRobust control is a critical concept in the field of engineering and technology, particularly in the design and implementation of control systems for various applications. It refers to the ability of a control system to maintain stability and performance in the face of uncertainties and variations in the system and its environment. This is achieved through the use of advanced control techniques and algorithms that can adapt to changing conditions and disturbances, ensuring reliable and effective operation. From a technical perspective, robust control involves the use of mathematical models, analysis tools, and optimization methods to design control systems that can handle uncertainties and variations. This may include the use of robust control theory, which provides a framework for analyzing and designing control systems that are resilient to disturbances and uncertainties. It also involves the use of advanced control algorithms, such as robust controllers, adaptive controllers, and predictive controllers, which can adjust their parameters and behavior to maintain stability and performance in the presence of uncertainties. One of the key challenges in robust control is dealing with uncertainty in the system and its environment. This uncertainty may arise from various sources, such as variations in the system parameters, external disturbances, and measurement errors. Designing control systems that can effectively handle these uncertainties requires a deep understanding of the system dynamics, as well as the ability to model and analyze the impact of uncertainties on the system performance. Another important aspect of robust control is the trade-off between performance and robustness. In many cases, increasing the robustness of a control system may come at the cost of reduced performance, and vice versa. Balancing these trade-offs requires careful consideration of the specific application and the desired performance requirements, as well as the available resources and constraints. From a practical perspective, robust control has numerous real-world applications across various industries, including aerospace, automotive, manufacturing, and robotics. For example, in aerospace applications, robust control is essential for ensuring the stability and performance of aircraft and spacecraft in the presence of uncertainties and disturbances. Similarly, in automotive applications, robust control is used todesign advanced driver assistance systems and autonomous vehicles that can operate safely and effectively in dynamic and uncertain environments. In conclusion, robust control is a critical concept in the field of engineering and technology, with wide-ranging applications and implications. It involves the use of advanced control techniques and algorithms to design control systems that can maintain stability and performance in the face of uncertainties and variations. Addressing the challenges of uncertainty and trade-offs between performance and robustness is essential for the successful design and implementation of robust control systems in real-world applications.。
审计与内部控制词汇英译1 ability to perform the work 能力履行工作2 acceptance procedures 承兑程序过程3 accountability 经管责任,问责性4 accounting estimate 会计估计5 accounts receivable listing 应收帐款挂牌6 accounts receivable 应收账款7 accruals listing 应计项目挂牌8 accruals 应计项目9 accuracy 准确性10 adverse opinion 否定意见11 aged analysis 年老的分析(法,学)研究12 agents 代理人13 agreed-upon procedures 约定审查业务14 analysis of errors 错误的分析(法,学)研究15 anomalous error 反常的错误16 appointment ethics 任命伦理学17 appointment 任命18 associated firms 联合的坚挺19 association of chartered certified accounts(ACCA)特计的证(经执业的结社(ACCA)20 assurance engagement 保证债务21 assurance 保证22 audit 审计,审核,核数23 audit acceptance 审计承兑24 audit approach 审计靠近25 audit committee 审计委员会,审计小组26 ahudit engagement 审计业务约定书27 audit evaluation 审计评价28 audit evidence 审计证据29 audit plan 审计计划30 audit program 审计程序31 audit report as a means of communication 审计报告如一个通讯方法32 audit report 审计报告33 audit risk 审计风险34 audit sampling 审计抽样35 audit staffing 审计工作人员36 audit timing 审计定时37 audit trail 审计线索38 auditing standards 审计准则39 auditors duty of care 审计(查帐)员的抚养责任40 auditors report 审计报告41 authority attached to ISAs 代理权附上到国际砂糖协定42 automated working papers 自动化了工作文件43 bad debts 坏账44 bank 银行45 bank reconciliation 银行对账单,余额调节表46 beneficial interests 受益权47 best value 最好的价值48 business risk 经营风险49 cadbury committee cadbury 委员会50 cash count 现金盘点51 cash system 兑现系统52 changes in nature of engagement 改变债务的性质上53 charges and commitments 费用和评论54 charities 宽大55 tom walls tom 墙壁56 chronology of an audit 一审计的年代表57 CIS application controls CIS 申请控制58 CIS environments stand-alone microcomputers CIS 环境单机微型计算器59 client screening 委托人甄别60 closely connected 接近地连接61 clubs 俱乐部62 communications between auditors and management 通讯在审计(查帐)员和经营之间63 communications on internal control 内部控制上的通讯64 companies act 公司法65 comparative financial statements 比较财务报表66 comparatives 比较的67 competence 能力68 compilation engagement 编辑债务69 completeness 完整性70 completion of the audit 审计的结束71 compliance with accounting regulations 符合~的作法会计规则72 computers assisted audit techniques (CAA Ts)计算器援助的审计技术(CAATs)73 confidence 信任74 confidentiality 保密性75 confirmation of accounts receivable 应收帐款的查证76 conflict of interest 利益冲突77 constructive obligation 建设的待付款78 contingent asset 或有资产79 contingent liability 或有负债80 control environment 控制环境81 control procedures 控制程序82 control risk 控制风险83 controversy 论战84 corporate governance 公司治理,公司管制85 corresponding figures 相应的计算86 cost of conversion 转换成本,加工成本87 cost 成本88 courtesy 优待89 creditors 债权人90 current audit files 本谏蠹频蛋?/p>91 database management system (DBMS)数据库管理制度(数据管理系统)92 date of report 报告的日期93 depreciation 折旧,贬值94 design of the sample 样品的设计95 detection risk 检查风险96 direct verification approach 直接核查法97 directional testing 方向的抽查98 directors emoluments 董事酬金99 directors serve contracts 董事服务合约100 disagreement with management 与经营的不一致101 disclaimer of opinion 拒绝表示意见102 distributions 分销,分派103 documentation of understanding and assessment of control risk 控制风险的协商和评定的文件编集104 documenting the audit process 证明审计程序105 due care 应有关注106 due skill and care 到期的技能和谨慎107 economy 经济108 education 教育109 effectiveness 效用,效果110 efficiency 效益,效率111 eligibility / ineligibility 合格/ 无被选资格112 emphasis of matter 物质的强调113 engagement economics 债务经济学114 engagement letter 业务约定书115 error 差错116 evaluating of results of audit procedures 审计手序的结果评估117 examinations 检查118 existence 存在性119 expectations 期望差距120 expected error 预期的错误121 experience 经验122 expert 专家123 external audit 独立审计124 external review reports 外部的评论报告125 fair 公正126 fee negotiation 费谈判127 final assessment of control risk 控制风险的确定评定128 final audit 期末审计129 financial statement assertions 财政报告宣称130 financial 财务131 finished goods 产成品132 flowcharts 流程图133 fraud and error 舞弊134 fraud 欺诈135 fundamental principles 基本原理136 general CIS controls 一般的CIS 控制137 general reports to mangement 对(牛犬等的)疥癣的一般报告138 going concern assumption 持续经营假设139 going concern 持续经营140 goods on sale or return 货物准许退货买卖141 goodwill 商誉142 governance 统治143 greenbury committee greenbury 委员会144 guidance for internal auditors 指导为内部审计员145 hampel committee hampel 委员会146 haphazard selection 随意选择147 hospitality 款待148 human resources 人力资源149 IAPS 1000 inter-bank confirmation procedures IAPS 1000 在中间- 银行查证程序过程150 IAPS 1001 CIS environments-stand-alone microcomputers IAPS 1001 CIS 环境-单机微型计算器151 IAPS 1002 CIS environments-on-line computer systems IAPS 1002 CIS 环境-(与主机)联机计算器系统152 IAPS 1003 CIS environments-database systems IAPS 1003 CIS 环境- 数据库系统153 IAPS 1005 the special considerations in the audit of small entities 在小的个体审计中的IAPS 1005 特别的考虑154 IAS 2 inventories 信息家电 2 库存155 IAS 10 events after the balance sheet date 在平衡sheeet 日期後面的信息家电10 事件156 IFACs code of ethics for professional accountants IFACs 道德准则为职业会计师157 income tax 所得税158 incoming auditors 收入审计(查帐)员159 independent estimate 独立的估计160 ineligible for appointment 无被选资格的为任命161 information technology 信息技术162 inherent risk 固有风险163 initial communication 签署通讯164 insurance 保险165 intangibles 无形166 integrity 完整性167 interim audit 中期审计168 internal auditing 内部审计169 internal auditors 内部审计师170 internal control evaluation questionnaires (ICEQs)内部控制评价调查表171 internal control questionnaires (ICQs)内部控制调查表172 internal control system 内部控制系统173 internal review assignment 内部的评论转让174 international audit and assurance standards board (IAASB)国际的审计和保证标准登船(IAASB)175 international auditing practice statements (IAPSs)国际的审计实务声明(IAPSs)176 international federation of accountants (IFAC)国际会计师联合会(IFAC)177 inventory system 盘存制度178 inventory valuation 存货估价179 ISA 230 documentation 文件编制180 ISA 240 fraud and error 国际砂糖协定240 欺诈和错误181 ISA 250 consideration of law and regulations 法和规则的国际砂糖协定250 考虑182 Isa 260 communications of audit matters with those charge governance 审计物质的国际砂糖协定260 通讯由于那些索价统治183 isa 300 planning isa 300 计划编制184 isa 310 knowledge of the business 企业的isa 310 知识185 isa 320 audit materiality 审计重要性186 isa 400 accounting and internal control isa 400 会计和内部控制187 isa 402 audit considerations relating to entities using service organisations 与正在使用的个体有关的isa 402个审计考虑服务组织188 isa 500 audit evidence 审计证据189 isa 501 audit evidence-additional considerations for specific items isa 501个审计证据- 补偿为特殊条款190 isa 510 external confirmations isa 510个外部的查证191 isa 520 analytical procedures 分析性程序192 isa 530 audit sampling 审计抽样193 isa 540 audit of accounting estimates 解释估计的isa 540 审计194 isa 560 subsequent events 期后事项195 isa 580 management representations 管理当局声明书196 isa 610 considering the work of internal auditing isa 610 以内部审计的工作看来197 isa 620 using the work of an expert isa 620 使用专家的工作198 isa 700 auditors report on financial statements 财务报表上的isa 700 审计(查帐)员的报告199 isa 710 comparatives isa 710个比较的200 isa 720 other information in documents containing audited financial statements isa 720 证券包含audited 财务报表的其他信息201 isa 910 engagement to review financial statements isa 910 债务复阅财务报表202 isas and rss isas 和rss203 joint monitoring unit 连接检验单位204 knowledge of the entitys business 个体的企业知识205 law and regulations 法和规则206 legal and regulations 法定权利和规则207 legal obligation 法定义务,法定责任208 levels of assurance 保险程度,保障水平209 liability 负债210 limitation on scope 审计范围限制211 limitation of audit 审计的提起诉讼的限期212 limitations of controls system 控制系统的提起诉讼的限期213 litigation and claims 诉讼和赔偿214 litigation 诉讼215 loans 借款,贷款216 long term liabilities 长期负债217 lowballing lowballing218 management 管理219 management integrity 经营完整220 management representation letter 管理当局声明书221 marketing 推销,营销,市场学222 material inconsistency 决定性的前后矛盾223 material misstatements of fact 重大误报224 materiality 重要性225 measurement 计量226 microcomputers 微型计算器227 modified reports 变更报告228 narrative notes 叙述证券229 nature 性质230 negative assurance 消极保证231 net realizable value 可实现净值232 non-current asset register 非本期的财产登记233 non-executive directors 非执行董事234 non-sampling risk 非抽样风险235 non-statutory audits 目标236 objectivity 客观性237 obligating event 负有责任事件238 obligatory disclosure 有拘束的揭示239 obtaining work 获得工作240 occurrence 出现241 on-line computer systems (与主机)联机计算器系统242 opening balances 期初余额243 operational audits 经营审计,作业审计244 operational work plans 操作上的工作计划245 opinion shopping 意见购物246 other information 其他的信息247 outsourcing internal audit 支援外包的内部核数248 overall review of financial statements 财务报表的包括一切的评论249 overdue fees 超储未付费250 overhead absorption 管理费用分配251 periodic plan 定期的计划252 permanent audit files 永久审计档案253 personal relationships 个人的亲属关系254 planning 计划编制255 population 抽样总体256 precision 精密257 preface to ISAs and RSs 国际砂糖协定的序文和债券附卖回交易258 preliminary assessment of control risk 控制风险的预备评定259 prepayments 预付款项260 presentation and disclosure 提示和揭示261 problems of accounting treatment 会计处理的问题262 procedural approach 程序上的靠近263 procedures 程序264 procedures after accepting nomination 程序过程在接受提名之后265 procurement 采购266 professional duty of confidentiality 保密的职业责任267 projection of errors 错误的规划268 provision 备抵,准备269 public duty 公共职责270 public interest 公众利益271 publicity 宣传272 purchase ledger 购货分类账273 purchases and expenses system 买和费用系统274 purchases cut-off 买截止275 put on enquiry 询价上的期货买卖276 qualified opinion 保留意见277 qualifying disclosure 合格揭示278 qualitative aspects of errors 错误的性质上的方面279 random selection 随机选择280 reasonable assurance 合理保证281 reassessing sampling risk 再评价抽样风险282 reliability 可靠性283 remuneration 报酬284 report to management 对经营的报告285 reporting 报告286 research and development costs 研究和开发成本287 reservation of title 保留288 reserves 准备,储备289 revenue and capital expenditure 岁入和资本支出290 review 评论291 review and capital expenditure 评论和资本支出292 review 评论293 review engagement 复阅债务294 rights 认股权295 rights and obligations 认股权和待付款296 rights to information 对信息的认股权297 risk and materiality 风险和重要性298 risk-based approach 以风险为基础的方式299 romalpa case romalpa 个案300 rotation of auditor appointments 审计(查帐)员任命的循环301 rules of professional conduct 职业道德守则302 sales cut-off 销售截止303 sales system 销售(货)制度304 sales tax 销售税,营业税305 sales 销售,销货306 sample size 样本量307 sampling risk 抽样风险308 sampling units 抽样单位309 schedule of unadjusted errors 未调整的错误表310 scope and objectives of internal audit 内部核数的范围和目标311 segregation of duties 职责划分312 service organization 服务组织313 significant fluctuations or unexpected relationships 可重视的(市价)波动或不能预料的亲属关系314 small entity 小的个体315 smaller entities 比较小的个体316 sole traders 个体营业者317 sources of knowledge 知识的根源318 specimen letter on internal control 内部控制上的样本证书319 stakeholders 赌款保存人320 standardised working papers 标准化工作文件321 statement 1:integrity,objectivity and independence 声明1: 完整,客观性和独立322 statement 2:the professional duty of confidence 声明2: 信任的职业责任323 statement 3: advertising ,publicity and obtaining professional work 声明3: 广告法(学),宣传和获得专业性工作324 statement 5:changes in professional appointment 声明5: 在职业上的任命中的改变325 statistical sampling 统计抽样326 statutory audit 法定审计327 statutory books 法定卷册328 statutory duty 法定责任329 stewardship 总管的职务330 strategic plan 战略性计划331 stratification 分层332 subsequent events 期后事项333 substantive procedures 实词程序过程334 substantive tests 实质性测试335 sufficient appropriate audit evidence 充分的适当审计证据336 summarising errors summarising 错误337 sundry accruals 杂的应计项目338 supervision 监督339 supervisory and monitoring roles 监督的和检验角色340 suppliers statements 供应商的声明341 system and internal controls 系统和内部的控制342 systematic selection 系统选择法343 systems-based approach 以系统为基础的方式344 tangible non-current assets 有形的非流动资产345 tendering 投标,清偿346 terms of the engagement 债务的条件347 tests of control 控制的证人348 the AGM 周年大会349 the board 委员会350 three Es 三Es351 timing 定时352 tolerable error 可容忍误差353 trade accounts payable and purchases 贸易应付帐款和买354 trade accounts payable listing 贸易应付帐款挂牌355 training 培训356 treasury 国库,库房357 TRUE 真实358 turnbull committee turnbull 委员会359 ultra vires 越权360 uncertainty 不确定性361 undue dependence 未到(支付)期的未决362 unqualified audit report 无条件的审计报告363 unqualified report 无条件的报告364 using the knowledge 使用知识365 using the work of an expert 使用专家的工作366 valuation 计价,估价367 value for money 现金(交易)价格368 voluntary disclosure 自愿披露369 wages and salaries 工资,薪金370 wages system 工资系统371 work in progress 在产品372 working papers 工作底稿。
Optimistic concurrency controlFrom Wikipedia, the free encyclopediaIn the field of relational database management systems, optimistic concurrency control (OCC) is a concurrency control method that assumes that multiple transactions can complete without affecting each other, and that therefore transactions can proceed without locking the data resources that they affect. Before committing, each transaction verifies that no other transaction has modified its data. If the check reveals conflicting modifications, the committing transaction rolls back.[1]OCC is generally used in environments with low data contention. When conflicts are rare, transactions can complete without the expense of managing locks and without having transactions wait for other transactions' locks to clear, leading to higher throughput than other concurrency control methods. However, if conflicts happen often, the cost of repeatedly restarting transactions hurts performance significantly; other concurrency control methods have better performance under these conditions.OCC phasesMore specifically, OCC transactions involve these phases:▪Begin: Record a timestamp marking the transaction's beginning.▪Modify: Read and write database values.▪Validate: Check whether other transactions have modified data that this transaction has used (read or wrote). Always check transactions that completed after this transaction's start time. Optionally, check transactions that are still active at validation time.▪Commit/Rollback: If there is no conflict, make all changes part of the official state of the database. If there is a conflict, resolve it, typically by aborting the transaction, although other resolution schemes are possible.Web usageThe stateless nature of HTTP makes locking infeasible for web user interfaces. It's common for a user to start editing a record, then leave without following a "cancel" or "logout" link. If locking is used, other users who attempt to edit the same record must wait until the first user's lock times out.HTTP does provide a form of in-built OCC, using the ETag and If-Match headers.[2]Some database management systems offer OCC natively - without requiring special application code. For others, the application can implement an OCC layer outside of the database, and avoid waiting or silently overwriting records. In such cases, the form includes a hidden field with the record's original content, a timestamp, a sequence number, or an opaque token. On submit, this is compared against the database. If it differs, the conflict resolution algorithm is invoked.Examples▪MediaWiki's edit pages use OCC.[3]▪Bugzilla uses OCC; conflicts are called "mid-air collisions".[4]▪The Ruby on Rails framework has an API for OCC.[5]▪The Grails framework uses OCC in its default conventions.[6]▪Most revision control systems support the "merge" model for concurrency, which is OCC. ▪Mimer SQL is a DBMS that only implements optimistic concurrency control.[7]▪Google App Engine data store uses OCC.[8]。
循证医学名词术语中英文对照循证医学名词术语中英文对照安全性Safety半随机对照试验quasi- randomized control trial,qRCT背景问题background questions比值比odds ratio,OR标准化均数差standardized mean difference, SMD病例报告case report病例分析case analysis病人价值观patient value病人预期事件发生率patient’s expected event rate, PEER补充替代医学complementary and alternative medicine, CAM 不良事件adverse event不确定性uncertaintyCochrane图书馆Cochrane Library, CLCochrane系统评价Cochrane systematic review, CSR Cochrane协作网Cochrane Collaboration, CCCox比例风险模型Cox’ proportional hazard model参考试验偏倚References test bias肠激惹综合征irritable bowel syndrome,IRB测量变异measurement variation成本-效果cost-effectiveness成本-效果分析cost-effectiveness analysis成本-效益分析cost-benefit analysis成本-效用分析cost-utility analysis成本最小化分析(最小成本分析)cost-minimization analysis重复发表偏倚Multiple publication bias传统医学Traditional Medicine,TMD—L法DerSimonian & Laird methodthe number needed to harm one more patients from the therapy,NNH 对抗疗法allopathic medicine,AM对照组中某事件的发生率control event rate,CER多重发表偏倚multiple publication bias二次研究secondary studies二次研究证据secondary research evidence发表偏倚publication biasnumber needed to treat,NNT非随机同期对照试验non-randomized concurrent control trial 分层随机化stratified randomization分类变量categorical variable风险(危险度)risk干扰co-intervention工作偏倚Workup bias固定效应模型fixed effect model国际临床流行病学网International Clinical Epidemiology Network, INCLEN灰色文献grey literature后效评价reevaluation获益benefit机会结chance node疾病谱偏倚Spectrum bias技术特性Technical properties加权均数差weighted mean difference, WMD 假阳性率(误诊率)false positive rate假阴性率(漏诊率)false negative rate简单随机化simple randomization检索策略search strategy交叉对照研究(交叉设计)crossover design 经济学分析economic analysis经济学特性Economic attributes or impacts经验医学empirical medicine精确性precision决策结decision node决策树分析decision tree analysis绝对获益增加率absolute benefit increase, ABI 绝对危险度降低率absolute risk reduction, ARR 绝对危险度增加率absolute risk increase, ARI 可重复性repeatability,reproducibility可靠性(信度)reliability可信区间confidence interval ,CI可信限confidence limit ,CLLogistic回归模型Logistic regression model历史性对照研究historical control trial利弊比likelihood of being helped vs harmed, LHH连续性变量continuous variable临床对照试验controlled clinical trial, CCT临床结局clinical outcome临床经济学clinical economics临床决策分析clinical decision analysis临床流行病学clinical epidemiology, CE临床实践指南clinical practice guidelines, CPG临床试验clinical trial临床研究证据clinical research evidence临床证据clinical evidence临床证据手册handbook of clinical evidence零点Zero time灵活性flexibility临界点Cut off points漏斗图funnel plots率差(或危险差)rate difference,risk difference,RDMeta-分析Meta-analysis敏感度sensitivity敏感性分析sensitivity analysis墨克手册Merck manual脑卒中病房Stroke Unit内在真实性internal validity偏倚bias起始队列inception cohort前-后对照研究before-after study前景问题foreground questions区组随机化block randomization散点图scatter plots森林图forest plots伤残调整寿命年disability adjusted life year,DALY 生存曲线survival curves生存时间survival time生存质量(生活质量)quality of life世界卫生组织World Health Organization, WHO失安全数fail-Safe Number试验组某事件发生率experimental event rate,EER 似然比likelihood Ratio, LR适用性applicability受试者工作特征曲线(ROC曲线)receiver operator characteristic curve 随机对照临床试验randomized clinical trials, RCT随机对照试验randomized control trial, RCT随机化隐藏randomization concealment随机效应模型random effect model特异度specificity同行评价colleague evaluation统计效能(把握度)power同质性检验tests for homogeneity外在真实性external validity完成治疗分析per protocol,PP腕管综合征carpal tunnel syndrome, CTS卫生技术health technology卫生技术评估health technology assessment, HTA系统评价systematic review, SR相对获益增加率relative benefit increase, RBI相对危险度relative risk,RR相对危险度降低率relative risk reduction, RRR相对危险度增加率relative risk increase, RRI效果effectiveness效力efficacy效应尺度effect magnitude效应量effect size序贯试验sequential trial选择性偏倚selection bias循证儿科学evidence-based pediatrics循证妇产科学evidence-based gynecology & obstetrics 循证购买evidence-based purchasing循证护理evidence-based nursing循证决策evidence-based decision-making循证内科学evidence-based internal medicine循证筛选evidence-based selection循证外科学evidence-based surgery循证卫生保健evidence-based health care循证诊断evidence-based diagnosis循证医学evidence-based medicine, EBM亚组分析subgroup analysis严格评价critical appraisal验后比post-test odds验后概率post-test probability验前比pre-test odds验前概率pre-test probability阳性预测值positive predictive value原始研究primary studies异质性检验tests for heterogeneity意向治疗分析intention-to-treat, ITT阴性预测值negative predictive value引用偏倚citation bias尤登指数Youden’s index语言偏倚language bias预后prognosis预后因素prognostic factor预后指数prognostic index原始研究证据primary research evidence原始研究证据来源primary resources沾染contamination真实性(效度)validity诊断参照标准reference standard of diagnosis。
A•Abstract Resource 抽象资源•Abstraction 抽象•Acceleration 加速•Acceptability Criteria 验收标准•Acceptable Quality Level ("AQL”)可接受质量水平•Acceptance 验收•Acceptance Criteria 验收标准•Acceptance Letters 验收函•Acceptance Number 接受数目•Acceptance Review 验收评审•Acceptance Test 验收测试•Acquisition Methods 采购方式•Acquisition Negotiations 采购谈判•Acquisition Plan 采购计划•Acquisition Plan Review (”APR”) 采购计划评审•Acquisition Planning 采购计划编制•Acquisition Process 采购过程•Acquisition Strategy 采购策略•Action 行动•Action Item 行动项•Action Item Flags 行动项标记•Action Plan 行动计划•Activation 激活•Active Listening 积极倾听•Activity Arrow Net 活动箭线网络•Activity Based Costing("ABC”)基于活动的成本核算•Activity Based Management ("ABM”) 基于活动的管理•Activity Calendar 活动日历•Activity Code 活动代码•Activity Definition 活动定义•Activity Description 活动描述•Activity Duration 活动工期活动持续时间•Activity Duration Estimating 活动工期估算•Activity Elaboration 活动详述•Activity File 活动档案•Activity ID 活动识别码•Activity List 活动清单•Activity Node Net 活动节点网络双代号网络•Activity on Arc (”AOA”)弧线表示活动双代号网络•Activity on Arrow ("AOA”) 箭线表示活动双代号网络•Activity on Node节点表示活动单代号网络•Activity Oriented 面向活动•Activity Oriented Schedule 面向活动的进度计划•Activity Properties 活动属性•Activity Quantities 活动量值•Activity Status 活动状态•Activity Timing 活动定时•Actor 执行者角色•Actual 实际的•Actual and ScheduledProgress 实际进展的与计划进度•Actual Cost 实际成本•Actual Cost Data Collection实际成本汇总•Actual Costs 实际费用•Actual Dates 实际日期•Actual Direct Costs 实际直接成本•Actual Expenditures 实际的支出•Actual Finish 实际完成•Actual Finish Date 实际完成日期•Actual Start 实际开始•Actual Start Date 实际开始日期•ACWP 已完成工作实际成本•See Actual Cost of WorkPerformed•Adaptation 适应•Added value 附加价值•Addendum 附录•Adequacy 适当•Adjourning 解散•Adjustment 调节•ADM•Arrow Diagram Method•ADM Project ADM 项目•Administration 管理部门•Administrative 行政的•Administrative Change 行政变更•Administrative Management行政管理•ADP•Automated Data Processing•ADR•Alternative DisputeResolution•Advanced Material Release(”AMR”) 材料提前发布•AF•Actual Finish Date•AFE•Application for Expenditure•Authority for Expenditure•Affect 影响•Affected Parties 受影响方•Agency 代理•Agenda 议程•Aggregation 汇总•Agreement 协议•Agreement, legal 协议合同•ALAP•As-Late—As-Possible•Algorithm 算法•Alignment 排列成行•Alliance 联合•Allocated Baseline 分配的基线•Allocated Requirements 分配需求•Allocation 分配•Allowable Cost 允许成本•Allowance 预留•Alternate Resource 替代资源•Alternative Analysis 替代分析•Alternative DisputeResolution ("ADR")替代争议解决方案•Alternatives 可选方案•Ambiguity 含糊不清•Amendment 修订•Amount at Stake 损失量•AMR 材料提前公布•Analysis 分析•Analysis and Design 分析与设计•Analysis Time 分析期•Analyst 分析员•AND Relationship 与关系•Anecdotal 轶事•Anticipated Award Cost 预期中标价•AOA•Activity on Arrow•Activity on Arc•AON•Activity on Node•AOQ•Average Outgoing Quality •AOQL•Average Outgoing Quality Limit•APMA•Area of Project Management Application•Apparent Low Bidder 最低投标人•Application 应用•Application Area 应用领域•Application for Expenditure ("AFE")支出申请•Application for Expenditure Justification 支出申请的论证•Application Programs 应用程序•Applied Direct Costs 实际直接成本•Apportioned Effort 分摊努力•Apportioned Task 分摊任务•Appraisal 评估•Approach 方法•Appropriation 拨款•Approval 批准•Approval to Proceed 批准继续•Approve 同意•Approved Bidders List 批准的投标人清单•Approved Changes 批准的变更•Approved ProjectRequirements 批准的项目需求•APR•Acquisition Plan Review •AQL•Acceptable Quality Level •Arbitrary 随意的•Arbitration 仲裁•Arc 弧线•Architectural Baseline 构架基线•Architectural View 构架视图•Architecture 构架•Architecture,executable 构架可执行•Archive 档案文件•Archive Plan 存档计划•Area of Project Application•Area of Project ManagementApplication•Area of Project ManagementApplication (”APMA")项目管理的应用领域•Arrow 箭线•Arrow Diagram Method("ADM”) 箭线图方法•Arrow Diagramming 箭线图方法•Arrow Diagramming Method箭线图方法双代号网络图•Artifact 制品•Artificial 人工的•AS•Actual Start Date•ASAP•As—Soon—As—Possible•As-built Design 实际建造设计•As-built document.tion 实际建造文档•As-Built Records•As-Built Schedule 实际建造进度计划•As—Late—As—Possible("ALAP”) 尽可能晚•As-Needed 恰如所需•As-of Dateo见Data Date.•As—Performed Schedule 实际进度计划•Assembly 组装件•Assembly Sequence 组装顺序•Assessment 评估•Assets 资产•Assignment 分配委派任务•Associated Revenue 关联收益•Association 关联关系•As—Soon-As—Possible(”ASAP”)尽快•Assumption 假设•Assumptions 假设•Assumptions List 假设清单•Assurance 保证•Assurance Programo见QualityAssurance Program。
Institut für Mathematische Maschinenund Datenverarbeitungder Friedrich-Alexander-UniversitätErlangen-Nürnberg Lehrstuhl für Informatik IV(Betriebssysteme)Cooperative Concurrency ControlRainer PruyUniversity Erlangen-NürnbergInstitut für mathematische Maschinen und Datenverarbeitung IVLehrstuhl für BetriebssystemeMartensstraße 1D-W-8520ErlangenGermanyphone: +499131 85-7909fax: +49913139388email: pruy@informatik.uni-erlangen.deAbstractToday research on concurrency in object systems concentrates on concurrent objects. If onehas to address situations involving concurrency control conditions spanning several objects one isstill on one’s own. This paper illustrates the need to be able to describe concurrency control in distri-buted situations. It presents the concept of cooperative concurrency control as a first step in addres-sing this problem. Cooperative concurrency control separates functional behaviour and concurrency control into individual objects interacting to achieve the behaviour of a single concurrent object. Asthis approach is based on object interaction it naturally extends to distributed situations.Keywordsconcurrency, distribution, object interaction, cooperation, composition1§1IntroductionExperience has taught that integrating concurrency with the notion of objects is not an easy task. Research in this field focused on the problem of concurrent objects. The main reason behind this is the observation that the need for concurrency control is evident only at the level of individual objects.An important concept of object systems is encapsulation. It prevents the implementation of an object from being visible and accessible from outside that object. Instead the behaviour of an object is specified in a more abstract description called interface. This provides for independen-ce of the clients of an object from the actual implementation.In a sequential context the interface needs only to describe the functional aspects of the beha-viour of an object. In the presence of concurrency, the interface, in addition to this functional aspect, has to reflect dynamic behaviour. In recent ongoing approaches objects are assumed to be concurrent and dynamic behaviour is specified in terms of concurrency constraints applied to method invocations ([Caro90],[Geib92],[Frøl92]).Inheritance, according to [Wegn87], is the defining property of object orientation. It formalizes incremental modifications as a key means to achieving reuse. Recent works (e. g. [BeAk92],[-Mats90], [Shiba91]) concentrated on integrating concurrency control with inheritance. The re-sults can be summarized by the following two requirements for object interface descriptions:–separation of concernsThe different aspects of the behaviour of an object should be specified using sepa-rate descriptions allowing for independent modifications of these descriptions. Inthe presence of concurrency there are at least two such aspects, namely functionalbehaviour and dynamic behaviour. If there are independent aspects of dynamic be-haviour even these should be expressed using separate descriptions.The overall behaviour of an object results from a combination of all behaviouralaspects. Incremental modification of individual aspects requires clean interfacesbetween the separate descriptions.–flexible modelling of an object-state needed for concurrency controlEncapsulation prevents concurrency constraints from referring to state informationinternal to the object. Thus, needed state information has to be modelled at the in-terface level. The limitations of the underlying principles used in this modellingprocess restrict the set of concurrency constraints, which can be expressed.The aforementioned approaches concentrate on concurrency within a single object. Later in this paper it is stated that handling concurrency internal to objects is not sufficient. Currently there are no approaches addressing concurrency problems involving several objects. [Holl92] and [John91] among others propose concepts to specify multi-object configurations. However, they concentrate on functional aspects of object composition. They do not account for additional concurrency constraints arising from such composition. Section 2 will discuss distributed con-2§ 2Concurrency in distributed environmentscurrency and the solutions available with current object systems. A model for concurrency con-trol will be presented in section 3. Based on this model an implementation strategy is developed, which is outlined in section 4.2Concurrency in distributed environmentsObjects provide a natural way for expressing distribution. They already describe a distributed system. In this system the processing of methods models local operations and object interaction models the communication among (distributed) components. By packaging objects during the process of configuring a system, coarser distributional situations can be reflected. Handling con-currency only in the (local) context of individual objects ignores the need for controlling con-current execution under constraints spanning several objects.A standard answer to this problem is delegating responsibility to alternate concepts. Usually tr-ansaction concepts are mentioned. However, transactions are not well suited for handling gene-ral concurrency control problems. They are intended for achieving data consistency and use the concept of mutual exclusion to achieve this goal. If concurrency constraints include flow control or operation sequence requirements, transactions do not aid in formulating a solution.An alternate approach to handling concurrency control in distributed situations is to introduce a central object which manages concurrency constraints. Such an object requires only object in-ternal concurrency control mechanisms. Therefore this approach can be followed with available object systems. It voids, however, any possibility of exploiting distribution. For example, it is no longer possible to optimize placement of objects within a system for communication costs as any access to the objects involved in a distributed concurrent constellation has to get through this central concurrency control object. A simple example will illustrate the problem.In an object environment it is easy to construct a buffer with a FIFO behaviour based on object references. This allows objects which are currently elements of that buffer to remain at their lo-cation within the object system. Figure 2.1 pictures a linked list implementation of such a buffer. Usually the behaviour of such a buffer would be implemented using a single object. It would probably use two instance variables, in the example called fifo_head and fifo_tail, for managing the linked list of elements. Now, if the programmer knows that retrieve always gets called from a certain point within the system and store always gets called from a different point, he or she may try to optimize communication costs by spliting FIFO into a fifo_head and a fifo_tail object and collocating each of these objects with the object(s) using it. However, the two objects fifo_head and fifo_tail together exhibit the same behaviour as the FIFO object. The concurrency constraints are the very same. In both cases concurrency control has to serialize calls to retrieve and store as soon as the buffer contains, at most, one element. But this uncovers an inconsistency. The same functional behaviour with identical concurrency control requirements requires totally different descriptions according to whether distribution has to be considered or not. Currently there is no possibility for reuse among a distributed and a non-distributed solution to the FIFO buffer problem. While this may be una-voidable in many cases for the pure functional behaviour, as the notion of locality is different3Abb. 2.1Example: FIFO bufferbetween distributed and non-distributed descriptions, concurrency control should not directly be affected by such a design decision. Decisions made by concurrency control are the same whether functional behaviour is implemented using a single object (FIFO) or several objects (fifo_head and fifo_tail).The example above makes obvious the need for concurrency control which are able to handle constraints spanning several objects: when the combined behaviour of these objects constitutes a behaviour which would be specified using a single object as long as distribution is not to be considered. The example also illustrates the observation that concurrency constraints do not de-pend on the actual implementation of the corresponding functional behaviour. In the same way a functional description just relies on a specific behaviour of concurrency control without being interested in the details of how this behaviour is being achieved.This observation can be extended to object structures whose behaviour can not easily be captu-red by specifying a single object, as is the case when that behaviour is built on distribution. It can be viewed as a special case of the principle of separation of concerns. It also leads to the conclusion that this principle is important not only in the case of specifying behaviour of a sing-le object but also in the case of describing concurrent behaviour of object structures.3 A model for concurrency controlNow, that the problem has been outlined, it is necessary to look at how concurrency control ope-rates. Figure 3.1 pictures the dependencies involved with concurrency control. This structure can be observed even in current declarative approaches to concurrency control ([Deco89],[-Neus91],[McHa91]). As a first step it will be interpreted in terms of single object concurrency. 4In this context concurrency is recognizable as concurrent requests pending for processing at the encapsulation border of an object. Execution of these requests is controlled by concurrency constraints as specified at the interface of that object.Concurrency constraints are expressed in terms of an abstract state. However, this abstract state can in no way refer to information from the internal state as this information is hidden behind the encapsulation border.In order to solve this dilemma one could try to infer the current abstract state from the knowled-ge of the initial state and monitoring requests of an object. Such monitoring, though, is inaccu-rate due to indeterminism resulting from concurrent execution of requests. As long as such in-determinism does not occur, state inference could be considered a possibility.The figure above is intended to suggest a different solution. While the interface is not allowed to violate encapsulation nor to access the internal state defined by the actual implementation, this implementation is allowed to provide information about that internal state for its environ-ment. This means that a programmer, during implementation of the behaviour of an object, also has to define how this implementation maps into the behaviour specified at the interface.As, during implementation, a programmer already has to consider whether this implementation really conforms to the interface specification it does not seem to be a problem to make him or her state this conformance explicitly. This can be accomplished by providing a mapping from internal state to abstract state. It is, however, obvious that this mapping, as it only maps state information, can only be part of the conformance considerations to be performed by program-mers.In the case of single concurrent objects, it is tempting to describe how concurrency control in-fluences processing of requests in terms beyond the scope of the object model. Being an intrinsic property of objects, concurrency control may be explained using any model suitable for descri-bing the effects of concurrency control on the execution of requests. If concurrency constraints may be applied to a group of objects this freedom is lost. The semantics established by the un-derlying object system restricts the set of possible models. The key properties are encapsulation of object states and a communicational model of object interaction.5It is obvious that an approach to handling distributed concurrency, which depends on functio-nality not available to ordinary object interaction, is not acceptable. Any such functionality al-lowing concurrency control to violate encapsulation would have disastrous effects on the se-mantics of objects. Functionality allowing influencing of object communication would compli-cate the understanding of object interaction. Thus, influencing concurrent execution within a group of objects has to be based on available object interaction semantics. This leaves two pos-sibilities. Either interpose filter objects into communication paths or make objects explicitly in-teract to perform concurrency control.Interposing communication paths easily fits into the composition-filters model as proposed in [AkBV92]. This approach uses filters specified as part of the interface of an object to interpose and control messages directed to that object. While these filters can easily be used to perform concurrency control in the context of a single object, they are yet too weak to perform concur-rency control on object groups. Concurrency constraints over a group of objects would require interaction among the controlling instances. If these controlling instances are implemented using composition filters, these filters need to be able to cooperate. Consequently a filter would be required to process and consume some of the messages directed to its object and to send mes-sages to other objects involved in a concurrency control relationship. Being part of the object interface, the concurrency control behaviour is tied to the object description. In order to allow reuse of concurrency control descriptions one needs a semantics and mechanisms for reuse of filters. Separating filters from objects will result in definition of filter objects. However, using filter objects for interposing object interaction suffers from naming problems. A client of an ob-ject has to name and address the correct filter object to get to the object actually performing the request.4The cooperative approachIn this section an alternative to realizing concurrency control by interposing object interaction is proposed. It directly follows the concurrency control model presented above. It follows the principle of separation of concerns by encapsulating individual aspects of a behaviour into in-dividual objects.Encapsulation does not restrict an object to performing concurrency control within the bounds of that object. This allows one object to call upon another object to perform concurrency control. By doing this, concurrency control is no longer an intrinsic property of an object. Instead, a be-haviour formerly exhibited by a single object is now represented by the combined behaviour of a group of interacting objects. It is obvious that such a model is applicable to configurations al-ready consisting of a group of interacting objects.Now the world of objects is divided up into two partitions; objects providing arbitrary functional behaviour and objects providing concurrency control needed by the former. But it has yet to be explained how these concurrency control objects can perform their operation. It already has 6been remarked that there is no legal possibility for controlling method execution from outside an object. This, too, has to be initiated from inside that object. However, now all elements of the cooperative approach are available and may be combined to form a homogenous picture.When an object needs a decision from a (concurrency) control object it calls a method from that control object. With this call the object may pass, as parameters, any information needed by the control object to perform the decision. The decisions performed by the control object are actual-ly about whether an executing request within the calling object may proceed or not. Such a deci-sion is performed by delaying an answer to a decision request until the calling executing request may proceed. The object is awaiting this decision either by waiting for the response implicitly, in the case of synchronous communication semantics, or by explicitly requesting an answer in the case of asynchronous communication or wait-by-necessity semantics. When the execution of requests within an object changes state in a way influencing concurrency control, that object may inform an appropriate control object about this state change also using method calls. The combination of all information available to a control object determines the abstract state model available to this control object for performing concurrency control requests.According to the interface control model of concurrency control, starting the execution of a re-quest is the only point to which concurrency control decisions are applicable. However, the more complex a method is the more likely it is for this method to cover sections of different con-currency constraints [Mack84]. This suggests the allowance for method substructures to be made visible at the interface of an object. With this, transitions among these method components also constitute points where concurrency control decisions are required.Introduction of method substructures also suggests a possibility for cleanly integrating the calls to a control object into implementation and into interface description of an object. The sub-structure of a method can be interpreted as a block structure as known from imperative program-ming languages. Upon entry of a block, a call to a control object is performed. Parameters of that call communicate necessary information. The block is entered and execution continues as soon as the call returns. On exit of that block another call to the control object is performed. This is used to inform the control object that execution of this block by the current executing request is being terminated. This also communicates state changes caused by executing this block to the control object.The control object, as it is itself an ordinary object, conforms to a type. This type is mediated by the signature of the methods of that object as observable from an object using this control object. A control object is not part of an ordinary object using it, but gets connected to this or-dinary object at instantiation time of this object.It is easy to employ several control objects from a single object, as there is no distinction bet-ween these control objects and any other object known as far as object interaction is concerned. However, this only works if these different concurrency control objects manage distinct inde-pendent concurrency constraints, not only independent in semantics but independent in compo-nents operated upon. Concurrency constraints intended to be expressed independently require the introduction of an additional level of indirection, a kind of composing control object which implements the composition of the independent constraints.7An example§ 5For simple composition rules it would be possible to integrate composition with the control ob-ject interaction semantics. For example, an AND-operation on constraints would require the more restrictive constraint to be queried first. This occurs with the example of a buffer which is superimposed a request-release-constraint. Execution might only continue after all constraints affected granted access. The example of a privileged reader in a multiple reader/single writer context, who will be granted access even in the presence of active writers, illustrates an OR con-junction, which is required the granting of continuation as soon as the privilege constraint grants continuation. These two examples make it clear that it is better to realize constraint composition using a special object than to try to force it into calling semantics for control objects while loo-sing homogeneity among object interaction semantics.5An exampleFigure 2.1 introduced the FIFO buffer example. The behaviour of such a buffer can be formu-lated using a declarative description based on synchronisation counters as follows: retrieve:N > 0start(retrieve)⇒inc(N)store:N <MAX end(store)⇒dec(N)In this case N denotes a synchronisation counter,MAX denotes the upper bound on the buffer, start(a) and end(a) refer to the start respective termination of the given method, and inc(N)and dec(N) denote increment and decrement of the counter denoted by N.The processing of requests within a FIFO buffer object can be illustrated using the following description in a hypothetical language:8§ 5An example{CNTRL:param class buffer_cntrl type buffer_cntrl_type;// other declarations …retrieve:() fifi-> (…){CNTRL.enter_retrieve(…);// implementation of retrieveCNTRL.leave_retrieve(…);}store:(…) -> (){CNTRL.enter_store(…);// implementation of storeCNTRL.leave_store(…);}}The argument declarations of retrieve and store have been left out for brevity. The argu-ments passed at the calls to CNTRL depend on what information a (control) object of type buf-fer_cntrl_type is expecting. In the case of this simple example, no arguments need being passed at all.Figure 5.1 pictures possible configurations available with cooperative concurrency control to solve the FIFO buffer problem.The“single object” case illustrates the structure, that ordinary objects will exhibit under coo-perative concurrency control. An object (FIFO) implementing functional behaviour (actual buf-fering of items) cooperates with a control object (CNTRL) managing concurrent execution of requests.If the functional behaviour is for some reason distributed among several objects (head and tail), the situation that is labeled distributed buffer - central control is to be encountered. The internal state of the participating functional objects is mapped onto a common abstract state managed by the central control object (CNTRL). Each participating functional object contributes to the com-posite behaviour. It is worth noting, that from the control objects point of view, it does not matter how state and functionality are actually distributed among the functional objects as the central control object still operates on a central view of the composite configuration.In order to efficiently exploit communication properties caused by distribution control objects also have to be split into several parts. This configuration is pictured as distributed buffer -distributed control. It requires special control objects (CNTRL head and CNTRL tail) which use§ 5 An example Arraya suitable distributed concurrency control protocol to implement a distributed view of the ab-stract state of the (distributed) FIFO buffer managed. The functional part of this configuration is identical to the case using central control.This illustrates how cooperative concurrency control allows for independence among imple-mentation of functional and concurrency control behaviour. Changes in the actual implementa-tion of functional behaviour do not cause any changes in the implementation of concurrency control. Functional behaviour need not know anything about the actual realization of concur-rency control.§ 6Conclusions6ConclusionsResearch in inheritance in the context of concurrent objects uncovered the principle of separa-tion of concerns. This paper has presented the concept of cooperative concurrency control. Coo-perative concurrency control separates functional aspects and concurrency control aspects of the behaviour of an object into independent objects. These objects use normal object interaction to achieve the behaviour of the original object via cooperation. Concurrency control objects, en-capsulating concurrency control behaviour, are used by objects realizing functional behaviour. They perform concurrency control decisions. The connection between functional objects and concurrency control objects includes the type of the control object. It is established, for examp-le, by parametrization at instantiation time of a functional object.The cooperative approach is consistent with the notion that an object is responsible for the cor-rect execution of its methods in the context of a concurrent environment. It strictly follows the principle of separation of concerns. As it is based on mechanisms already available with object systems (namely object interaction and parametrization), it is applicable to a variety of current object-based and object-oriented programming languages. Reuse of components (functional ob-jects and concurrency control objects) is available as long as the underlying language does sup-port it.Besides the practical use of cooperative concurrency control, this approach constitutes a base for investigating concurrency control in distributed environments. Declarative approaches on specifying concurrency control can be implemented using cooperative concurrency control. This is due to the flexibility of abstract state specification allowed by modelling abstract state using state information provided with parameters from calls to control object methods. Decla-rative concurrency control specifications, together with a semantics of such specifications, also provide the possibility of deriving from them an actual implementation of a control object. Re-search in this domain could try to integrate declarative concurrency control with framework concepts currently researched and try to describe semantics of concurrency control in terms of cooperative concurrency control.7ReferencesAkBV92M. Aksit, L. Bergmans, S. Vural: “An Object-Oriented Language-Database Integration Model: The Composition-Filters Approach”,ECOOP ‘92 EuropeanConference on Object-Oriented Programming, LNCS 615, 1992BeAk92L. Bergmans, M. Aksit: “Reusability Problems in Object-Oriented Concurrent Programs”,ECOOP 92 Workshop on concurrency,position paper, 1992Caro90 D. Caromel: “Concurrency: An Object-Oriented Approach”,TOOLS 2, pg 183-197, 1990References§ 7Deco89 D. Decouchant, S. Krakowiak, M. Meysembourg, M. Riveill, Rousset de Pina: “A Synchronisation Mechanism for Typed Objects in a Distributed System”,Proc. ofthe ACM SIGPLAN Workshop on Object-Based Concurrent Programming,SIGPLAN, 1989Frøl92S. Frølund, “Inheritance of Synchronisation Constraints in Concurrent Object-Oriented Programming Languages”,ECOOP ‘92 European Conference on Object-Oriented Programming, LNCS 615, 1992Geib92J.-M. Geib, L. Courtrai: “Abstractions for Synchronization to InheritSynchronisation Constraints”,ECOOP ‘92 Workshop on concurrency, positionpaper, 1992Holl92I. Holland: “Specifying reusable components using Contracts”,ECOOP ‘92 European Conference on Object-Oriented Programming, LNCS 615, 1992John91R. Johnson, V. Russo: “Reusing Object-Oriented Design”,University of Illinois, Technical Report UIUCDCS 91-1696, May 1991Neus91 C. Neusius: “Synchronizing Actions”,ECOOP ‘91 European Conference on Object-Oriented Programming, Springer Verlag, 1991Mack84L. Mackert: “Modellierung, Spezifikation und korrekte Realisierung von asynchronen Systemen”, Dissertation, Arbeitsberichte des IMMD, Bd. 16, Nr. 7,1984Mats90S. Matsuoka, K. Wakita, A. Yonezawa: “Analysis of inheritance Anomaly in Concurrent Object-Oriented Languages”,ECOOP/OOPSLA ‘90 Workshop onObjekt-Based Concurrent Systems, Aug 1990McHa91 C. McHale, B. Walsh, S. Baker, A. Donnelly: “Scheduling Predicates”,Trinity College, Dublin, Technical Report TCD-CS-91-24, 1991Shiba91 E. Shibayama: “Reuse of Concurrent Object Descriptions”,Concurrency: Theory, Language and Architecture, LNCS 491, 1991Wegn87P. Wegner: “Dimensions of Object-Based Languages”,Proc. of OOPSLA 1987, SIGPLAN, vol. 22, no. 12, pg. 168-182, 1987。
中考科技创新教育英语阅读理解25题1<背景文章>Artificial intelligence (AI) is playing an increasingly important role in the field of education. One of the most significant applications is intelligent tutoring systems. These systems can provide personalized learning experiences for students, adapting to their individual needs and learning styles.For example, an intelligent tutoring system can analyze a student's performance on quizzes and assignments and then provide targeted feedback and additional practice materials. It can also adapt the difficulty level of the content to ensure that the student is challenged but not overwhelmed.Another application of AI in education is personalized learning. By analyzing a student's learning history and preferences, AI can recommend learning resources and activities that are tailored to their interests and abilities. This can help students stay engaged and motivated in their learning.In addition, AI-powered chatbots can answer students' questions and provide support outside of class hours. This can be especially helpful for students who may be shy or hesitant to ask questions in class.Overall, AI has the potential to revolutionize education by providing more personalized and effective learning experiences for students.1. What is one of the significant applications of AI in education?A. Online courses.B. Intelligent tutoring systems.C. Traditional textbooks.D. Group study.答案:B。
审计英语会计师事务所业务质量控制一、考情分析从专业阶段考试来看,在2009年新制度的考题中,曾对本章知识点的英语能力进行过考查。
本章属于重点审计理论内容,根据本章内容特点,以简答题的形式进行考查的可能性非常大,应当对本章内容予以重点关注。
二、专业词汇相互复核:Mutual review专业胜任能力:Professional competency独立性:Independence鉴证:Assurance复核人:Reviewer质量控制:Quality control发表审计报告:Issue audit report解决分歧:Resolve disagreements执业合伙人:Practicing partner接受执业:Accept practicing职业道德:Professional ethics三、重点、难点讲解(一)对业务质量承担的领导责任业务质量的最终责任人——会计师事务所主任会计师对质量控制制度承担最终责任。
Ⅰ.Leadership responsibility for engagement qualityFinal responsible person for the engagement quality—accountant in charge of the accounting firm should take the final responsibility of quality control.(二)相关职业道德要求会计师事务所应当“每年至少一次”向所有“受独立性要求约束的人员”获取其遵守独立性政策和程序的书面“确认函”。
Ⅱ.Relevant professional ethics requirementThe accounting firm should obtain written ‘confirmation letter’ which complies with the policy and procedure of independence from all staff who are subject to independence requirement ‘at least once a year’.对“上市公司”财务报表审计,应定期(至多5年)轮换一次项目合伙人。
翻译群Group讨论区BBS应用区Manyou排行榜Ranklist亲爱的译友欢迎您光临91翻译网!中国最大的翻译SNS社区!社区翻译资料中心术语词汇| 翻译软件| 高级口译小语种区| 求职招聘| 免费发布时政翻译|法律翻译|体育英语|金融翻译|医学翻译|餐饮翻译|汽车翻译|法语学习|俄语学习|日语学习|德语学习|英语谚语|翻译漫谈|翻译资格考试|我译故我在心理学词汇大全Psychology心理学 psychology心理现象 mental phenomenon心理过程 mental process心理状态 mental state心理活动 mental activity意识 consciousness心理维度 psychological dimension心理运动 psychomotor内部活动 internal activity普通心理学 general psychology实验心理学 experimental psychology行为科学 behavioral science心身关系 mind-body relation心理机能定位 localization of mental function心理能动性 mental activism外周论 peripheralism先天理论 nativistic theory强调遗传素质决定人心理的产生与发展。
遗传 heredity目的论 teleology认为生物和人类的活动受一定目的的引导。
活动 activity活动理论 activity theory认知心理学 cognitive psychology认知 cognition相对于情感、意志等心理过程的所有认识过程的总称。
包括知觉、注意、表象、学习记忆、问题解决、思维和言语等心理过程。
认知过程 cognitive process认知结构 cognitive structure元认知 metacognition认知失调 cognitive dissonance认知地图 cognitive map认知技能 cognitive skill认知方式 cognitive style信息 information信息论 information theory信息加工 information processing信息加工心理学 information processing psychology 信息加工理论 information processing theory信息加工模型 information processing model中央处理器模型 central processor model信息储存 information storage信息提取 information retrieval人工智能 artificial intelligence, AI计算机类比 computer analogy计算机模拟 computer simulation计算机模型 computer model唯心主义心理学 idealistic psychology意动心理学 act psychology唯意志论 voluntarism唯灵论 spiritualism强调超自然精神作用。
Synthesizing Concurrency Control Components from Process Algebraic Specifications Edoardo Bont`a1,Marco Bernardo1,JeffMagee2,and JeffKramer21Istituto di Scienze e Tecnologie dell’Informazione,Universit`a di Urbino2Department of Computing,Imperial College LondonAbstract.Process algebraic specifications can provide useful supportfor the architectural design of software systems due to the possibility ofanalyzing their properties.In addition to that,such specifications canbe exploited to guide the generation of code.What is needed at thislevel is a general methodology that accompanies the translation process,which in particular should help understanding whether and when it ismore appropriate to implement a software component as a thread or as amonitor.The objective of this paper is to develop a systematic approachto the synthesis of correctly coordinating monitors from arbitrary pro-cess algebraic specifications that satisfy some suitable constraints.Thewhole approach will be illustrated by means of the process algebraicspecification of a cruise control system.1IntroductionAlthough process algebras were originally conceived as a means for producing ab-stract views of concurrent programs and reasoning about their properties[13,9, 3],due to their compositional nature it was soon realized their adequacy for mod-eling complex systems[6].More recently process algebras have been integrated within the software architecture design level[14,15],because they provide sup-port for the early assessment of the gross system properties.This has resulted in a family of process algebraic ADLs,for which several techniques based on equiv-alence checking have been developed for the component-oriented verification and diagnosis of architectural mismatch freedom[2,12,11,10,7,1].At the software architecture design level,process algebras have turned out to be useful also for code generation purposes.In[12]it is shown how a disciplined process algebraic modeling is beneficial at subsequent stages for guiding the im-plementation of Java software.In[4,5]an automatic code generator is presented, which translates process algebraic architectural descriptions into multithreaded Java programs on the basis of a transparent Java package called Sync that en-sures the correct thread synchronization.In a process algebraic description,the behavior of a software component is specified through a sequence of action-based equations,which define possibly alternative execution traces composed of local actions and actions interacting with other components.In this framework two natural candidates for the targetof the translation of the process algebraic description of a component are a thread and a monitor.What is needed at this level is a general methodology that accompanies the translation process,which in particular should help understanding whether and when it is more appropriate to implement a software component as a thread or as a monitor.This would overcome some limitations that are present in the current process algebraic approaches.With respect to[12]generality would be gained, as it would become possible to undertake the translation of arbitrary process algebraic descriptions.With respect to[4,5],where only threads are taken into account,the performance of the generated code may be improved thanks to the synthesis of monitors as they would reduce the thread context switch frequency. Moreover the presence of monitors would result in a lightweight concurrency control management with respect to package Sync,with the monitors themselves constituting explicit coordination areas that were not available before to the developer adopting the approach of[4,5].The objective of this paper is to develop a systematic approach to the syn-thesis of correctly coordinating Java monitors from arbitrary process algebraic component descriptions that satisfy some suitable constraints.The constraints are related to the fact that a monitor is a passive entity,which typically en-capsulates data in a way that guarantees a mutually exclusive access.In other words,a monitor coordinates the access of the threads to its methods,but its statements are executed by the entering threads.As we shall see,in order to en-force a correct concurrency control when using a monitor,it is sufficient that a thread taking the control of the monitor can perform neither interacting actions nor infinitely many local actions while inside the monitor.Once these constraints are satisfied,the process algebraic description of a component can systematically be transformed into a canonical form that we call monitor normal form,from which it is easy to synthesize a Java monitor.The constraints and the approach will be illustrated by means of the process algebraic specification of a cruise control system taken from[12],which will be used as a running example throughout the paper.This paper is organized as follows.In Sect.2we present the constraints that guarantee the derivability of a monitor from a process algebraic component description.In Sect.3we show how to transform into monitor normal form a process algebraic component description that satisfies all the constraints.In Sect.4we describe how to synthesize a Java monitor from a monitor normal form.Finally,in Sect.5we provide some remarks on related and future work. 2Monitor ConstraintsIn this section we present a set of constraints under which it is possible to syn-thesize a correctly coordinating monitor from the process algebraic description of a software component.Before doing so,we introduce some terminology and we recall the way in which threads and monitors interact with each other in an object-oriented language like Java.2.1TerminologyIn our process algebraic view,both thread and monitor classes should be mod-eled as architectural element types[1].An architectural element type represent-ing a Java class that extends or implements a thread base class will be called native-thread type and will be translated into a native-thread component.An ar-chitectural element type representing a Java monitor class will instead be called monitor type and will be translated into a monitor component.Furthermore,we distinguish between two kinds of interacting actions,which we simply call interactions from now on.An active-control interaction is per-formed by an architectural element whenever it starts communicating with an-other architectural element.A passive-control interaction is executed by an ar-chitectural element whenever it is waiting for another architectural element to start communicating with it.In particular the entry points(and hence implicitly the exit points)of the monitor types will be described through passive-control interactions.2.2Thread-Monitor InteractionGiven a native-thread component T and a monitor component M,the interaction between them takes place by means of the component control switch depicted in the sequence diagram of Fig.1.When T intends to interact with M,T invokes a synchronized method of M–which corresponds to performing an active-control interaction–so that the thread t leaves T and waits until M is ready to interact.More precisely,in a synchronous model t waits outside M if another thread is currently running inside M,otherwise it immediately enters M and possibly blocks,which happens when t has to wait for a notification related to a condition synchronization of M that does not hold upon entering M.In an asynchronous model,instead,an exception is raised if a condition synchronization for t does not hold and either there is no thread running inside M or the thread currently running inside M leaves it without notifying such a condition synchronization. We recall from[12]that a condition synchronization permits a monitor to block threads until a particular condition holds,such as e.g.a count becoming non-zero,a buffer becoming empty,or new input becoming available.When M is ready,t takes its control and executes a sequence of statements of M corresponding to local actions,at the end of which t possibly notifies one of the threads blocked inside M about the validity of a condition synchronization and leaves the monitor.The end of such a statement sequence coincides either with the monitor termination or with the execution of the last local action before a passive-control interaction.In order to achieve a correct concurrency control,it suffices that the thread taking the control of the monitor executesfinitely many statements without moving to another monitor or invoking a method of another thread before leaving the monitor in which it is running3.In this way a thread will stay within the 3Note that this does not prevent the monitor from invoking methods of the Java library and creating new non-thread objects.Synchronous model Asynchronous modelmonitor for afinite amount of time(up to possible condition synchronizations that will never hold),and will not cause any interference between the monitor and other monitors.From the considerations above,we derive that the avoidance of(i)endless executions of local actions and(ii)active-control interactions guarantees that a correctly coordinating monitor can be obtained from the process algebraic specification of a component.For the sake of completeness,a third technical constraint,related to the avoidance of(iii)non-disjoint hybrid choices between sets of local actions and sets of interactions,must be satisfied.2.3Constraint1:No Endless Executions of Local ActionsSince a monitor is a passive entity that coordinates other components,it is desirable that a thread taking the control of the monitor runs inside the monitor only for afinite amount of time.In the worst case,it may happen that the thread blocks forever inside the monitor because of a condition synchronization that will never hold.However,this does not prevent other threads from entering the monitor and running.In order to achievefiniteness,we need to enforce that the maximum number of consecutive local actions that can be performed inside a candidate monitor type isfinite.This can easily be checked on the process algebraic description of a candidate monitor type by verifying the absence of cycles of local actions.As we shall see in Sect.4,each local action will be translated into a method to be manuallyfilled in later on.If we adhere to the guidelines of[5],according to which non-terminating statements should be avoided within these methods, afinite sequence of local actions will be executed in afinite amount of time.In this way the absence of cycles of local actions proved at the process algebraic level is guaranteed to be preserved at the Java code level.2.4Constraint2:No Active-Control InteractionsA monitor coordinates other components but should not invoke methods of other monitors or threads.Therefore,a candidate monitor type should not possess any active-control interaction.This can trivially be verified at the level of the process algebraic description if this is suitably annotated with information about the controlflow direction(like e.g.in PADL[1]).The reason for this constraint is to prevent a thread running inside a monitor from moving to another monitor or invoking a method of another thread before finishing its execution within the monitor in which it is running.This constraint thus implies that interferences among monitors are avoided and that any monitor component can passively interact only with thread components.In particular, deadlock cannot occur because of a possible invocation of methods belonging to the same thread that is currently running inside the monitor.Moreover,this constraint ensures,together with the previous one,that a thread runs inside a monitor only for afinite amount of time.Note that this constraint does not prevent a monitor component from invok-ing methods of the Java library and creating new non-thread objects.In fact, the methods translating the local actions of the monitor component are free to create local objects and to interact with them.However,this should not alter the topology prescribed by the process algebraic architectural description.2.5Constraint3:No Non-Disjoint Hybrid ChoicesA hybrid choice in the process algebraic description of a component is a choice between a non-empty set of interactions and a non-empty set of local actions.The problem with hybrid choices is that they may hamper the detection of the action sequence corresponding to the statement sequence that should be executed by a thread running inside a monitor.In fact,recalled that the monitor entry and exit points are described through passive control interactions,to automatically detect the beginning and the end of the action sequence in a candidate monitor type we need that the sequence is comprised between two passive-control interactions.A choice between a passive-control interaction and a local action would make it impossible to decide whether the currently running thread has completed its task or not,unless the two actions are preceded by two disjoint conditions.As a consequence of this constraint,a candidate monitor type can contain only choices among all interactions or all local actions.This can easily be checked at the process algebraic description level.In addition,hybrid choices are admit-ted provided that the involved actions are preceded by disjoint boolean condi-tions,i.e.the logical conjunction of the condition of any involved interaction and the condition of any involved local action must be false.3Syntactic Transformation into Monitor Normal Form Once the three constraints defined in the previous section are satisfied by the process algebraic description of a candidate monitor type,it is possible to proceedto the transformation of the description itself into monitor normal form.Starting from this canonical form,it will be possible to straightforwardly synthesize the Java implementation of the monitor type.In order to facilitate the derivation of each method of the targeted Java monitor class,a good idea may be to rewrite the process algebraic specification of the monitor type in such a way that all the interacting actions are collected into a single equation.Due to constraint2,each such interaction is a passive-control one,so if we place all of them at the beginning of a different branch of a choice,we exactly characterize the point at which the monitor is waiting for a thread to take its control.The process algebraic specification in monitor normal form obtained at the end of the rewriting process will be formed by:–An interacting choice equation,which is composed of a choice in which every branch starts with an interaction possibly followed by local actions only.–A group of local equations,which are original equations of the monitor type that include only local actions.–A group of setting equations,which are the original non-local equations whose branches that have been moved to the interacting choice equation are re-placed by an invocation of the latter equation with suitably set parameters. This monitor normal form can be achieved through a sequence offive steps, which will be exemplified on the process algebraic description of a cruise control system taken from[12].3.1Example:A Cruise Control SystemAn automobile cruise control system is governed by means of three buttons–on, off,and resume–and takes into account two pedals–accelerator and brake. When the engine is running and on is pressed,the cruise control system records the current speed and maintains the car at this speed.When accelerator, brake or off is pressed,the cruise control system disengages but retains the speed setting.If resume is pressed,the system accelerates or de-accelerates the car back to the previously-recorded speed.The kernel of the cruise control system is provided by a cruise controller, which includes a speed control that is initially disabled.While the latter clears and records the speed setting and,when enabled,sets the throttle according to the current speed and the recorded speed,the behavior of the former is more complex.When the engine is switched on(engineOn),speed clearing is triggered (clearSpeed)and the cruise controller becomes active.When active,pressing on triggers the recording of the current speed(recordSpeed)and enables the speed control(enableControl).The system is then cruising.Pressing on again triggers the recording of the new current speed and the system remains cruising.Pressing off,brake or accelerator disables the speed control(disableControl)and sets the system to standby,from which the system can return to the cruising state whenever resume or on is pressed.Switching the engine off(engineOff) at any time makes the cruise controller inactive and the speed control disabled.We now provide the FSP specification[12]of the cruise controller: INACTIVE=(engineOn->clearSpeed->(engineOff->INACTIVE|on->recordSpeed->enableControl->CRUISING)),CRUISING=(engineOff->disableControl->INACTIVE|{off,brake,accelerator}->disableControl->STANDBY|on->recordSpeed->enableControl->CRUISING),STANDBY=(engineOff->INACTIVE|resume->enableControl->CRUISING|on->recordSpeed->enableControl->CRUISING).where:–INACTIVE,CRUISING,and STANDBY are the names of the three process alge-braic equations that formalize the behavior of the cruise controller.–engineOn,engineOff,on,off,brake,accelerator,and resume are the interactions.–clearSpeed,recordSpeed,enableControl,and disableControl are the local actions.–The symbol“->”is the action prefix operator:{a1,...,a n}->P executes an action from the set and then behaves as P.–The symbol“|”is the choice operator:P1|P2behaves as either P1or P2.If engineOn,engineOff,on,off,brake,accelerator,and resume are con-sidered as passive-control interactions,it is not difficult to observe that all the three monitor constraints defined in Sect.2are satisfied by the FSP description of the cruise controller.3.2Step1:Rewriting Complex ChoicesIf the process algebraic specification of a monitor type contains some choices among interactions that are written in an abbreviated notation,such choices must be expanded.Likewise,if the specification contains some nested choices among interactions,such choices must beflattened.By doing so,it will be easier to handle the branches of the choices among interactions as we shall see in the subsequent steps.In the FSP specification of the cruise controller,the equations INACTIVE and STANDBY do not contain complex choices,while the equation CRUISING contains the abbreviated FSP notation{ action list },hence it is expanded into: CRUISING=(engineOff->disableControl->INACTIVE|off->disableControl->STANDBY|brake->disableControl->STANDBY|accelerator->disableControl->STANDBY|on->recordSpeed->enableControl->CRUISING)3.3Step2:Splitting the EquationsSince in the interacting choice equation of the monitor normal form any branch must start with an interaction,every interaction or choice among interactions that does not occur at the beginning of the body of an equation must be moved together with what follows it into a new equation.The moved block is replaced in the original equation by an invocation of the new equation.At the end of this splitting process,any interaction will be at the beginning of some equation.In the FSP specification of the cruise controller,only thefirst equation needs to be transformed,because in the equations CRUISING and STANDBY all the occur-rences of interactions are already at the beginning of some branch.The equation INACTIVE thus becomes:INACTIVE=(engineOn->clearSpeed->SPLIT_1_INACTIVE),SPLIT_1_INACTIVE=(engineOff->INACTIVE|on->recordSpeed->enableControl->CRUISING)3.4Step3:Building the Interacting Choice EquationThe interacting choice equation can now be built by suitably merging into a single equation the equation body branches that start with an interaction.In order to preserve the semantics of the original equations of the monitor type,the resulting interacting choice equation needs several parameters repre-senting the current interacting state of the monitor.Such a state can be encoded through the non-local equation(among the ones present at the end of step2) describing the current behavior–bounded integer parameter eq–and the set of interactions that are currently enabled–boolean parameters g representing guards associated with the enabledness of the interactions.Note that parame-ter eq is strictly necessary because the same set of interactions may be enabled in several different non-local equations.On the other hand,the guards g are necessary to decide the branch to be undertaken in the current interacting state and,as we shall see,useful to implement the condition synchronizations.The body of the interacting choice equation is thus a guarded choice among all the merged equation body branches.In particular,if one of the involved bodies started with a single interaction,the whole body becomes a branch of the interacting choice equation.Instead,if it started with a choice among all interactions,each branch of such a choice becomes a branch of the interacting choice equation.Finally,if it started with a disjoint hybrid choice,only the branches starting with an interaction move to the interacting choice equation4.Each branch of the interacting choice equation is preceded by a boolean expression composed of the logical conjunction of:the control that the value of eq corresponds to the value associated with the non-local equation body that contained the considered branch,the guard g associated with thefirst 4We shall see later on that this does not disrupt the semantics of the disjoint hybrid choice,hence of the original process algebraic specification.interaction of the branch itself,and other possible conditions inherited from the original branch.In the FSP specification of the cruise controller,the bodies of the equations INACTIVE,SPLIT1INACTIVE,CRUISING,and STANDBY are represented by the values0,1,2,and3of parameter eq,respectively,and their branches are merged into the following interacting choice equation:INTER_CH_EQ[eq:0..3][g_engineOn:Boolean][g_engineOff:Boolean] [g_on:Boolean][g_off:Boolean][g_resume:Boolean][g_brake:Boolean][g_accelerator:Boolean]=(when((eq==0)&&g_engineOn)engineOn->clearSpeed->SPLIT_1_INACTIVE |when((eq==1)&&g_engineOff)engineOff->INACTIVE |when((eq==1)&&g_on)on->recordSpeed->enableControl->CRUISING |when((eq==2)&&g_engineOff)engineOff->disableControl->INACTIVE |when((eq==2)&&g_off)off->disableControl->STANDBY |when((eq==2)&&g_brake)brake->disableControl->STANDBY |when((eq==2)&&g_accelerator)accelerator->disableControl->STANDBY |when((eq==2)&&g_on)on->recordSpeed->enableControl->CRUISING |when((eq==3)&&g_engineOff)engineOff->INACTIVE |when((eq==3)&&g_resume)resume->enableControl->CRUISING |when((eq==3)&&g_on)on->recordSpeed->enableControl->CRUISING )3.5Step4:Rewriting Non-Local Equations into Setting Equations The interacting choice equation built in step3does not replace the original equations.This refers not only to local equations and equations with disjoint hybrid choices–which are not completely involved in the construction of the interacting choice equation–but also to the other equations,as invocations to them are still around.The body of each non-local equation is thus rewritten in such a way that its possible local branches are preserved.By contrast,its branches that have been moved to the interacting choice equation are replaced by a single invocation of the latter equation with suitably set actual values for parameters eq and g.So, we refer to such a rewritten equation as a setting equation.The actual value of eq passed to the interacting choice equation has to be the value associated with the setting equation body.The actual values of the boolean guards are set as follows.If an interaction does not occur at the beginning of any moved branch of the original non-local equation,then the corresponding guard g is set to false.If it occurs instead and at least one of its occurrences was not guarded by any condition in the original branch that contained it,the corresponding guard g is set to true.Finally,if it occurs and all of its occurrences were guarded by some condition in the original branches that contained them, the corresponding guard g is set to the logical disjunction of these conditions (if at least one of them holds true,then the interaction is enabled).If an original non-local equation started with a single interaction or a choice among interactions only,its body is entirely replaced by an invocation of the interacting choice equation having the above-mentioned actual values for eqand g.In the case in which the original equation contained a disjoint hybrid choice,instead,its body preserves all the local branches.The other(interact-ing)branches,moved together with their conditions to the interacting choice equation,are replaced by a single branch.This branch contains the invocation of the interacting choice equation preceded by the logical disjunction of all the conditions associated with the interacting branches.In this way the semantics of the selection between the group of local branches and the group of interacting branches is preserved,with the selection within the latter group being deferred to the interacting choice equation.In the FSP specification of the cruise controller,the non-local equations INACTIVE,SPLIT1INACTIVE,CRUISING,and STANDBY are rewritten into the following setting equations:INACTIVE=INTER_CH_EQ[0][True][False][False][False][False][False][False], SPLIT_1_INACTIVE=INTER_CH_EQ[1][False][True][True][False][False][False][False], CRUISING=INTER_CH_EQ[2][False][True][True][True][False][True][True], STANDBY=INTER_CH_EQ[3][False][True][True][False][True][False][False]3.6Step5:Rearranging the Interacting Choice EquationAs afinal step,the interacting choice equation undergoes to a sorting of its branches as well as to a number of optimizations.On the one hand,the branches are lexicographically sorted on the basis of their guards g associated with their starting interactions.The reason is that all the branches starting with the same interaction will be translated into a single synchronized method of a Java monitor class,hence this sorting should facilitate the code generation.On the other hand,some optimizations are useful to simplify the structure of the interacting choice equation and thus of the monitor to be synthesized.First, if an interaction occurs at the beginning of only one of the branches associated with a same value of eq,in that branch the possible condition inherited from the original branch can be removed.In fact,the same condition is already contained in the guard g associated with the considered branch.Second,if all the branches with the same initial interaction are associated with a single value of eq,the check on eq can be removed from these branches.In fact,this means that the initial interaction was present only in a single non-local equation body of the original specification,and the guard g associated with the action can be true only when eq has that value.Third,if several branches are identical up to their boolean expressions–i.e. checks on different values of eq and possibly other different conditions inherited from the original specification–these branches can be collapsed into a single one.This new branch is preceded by an expression which includes,besides the checks on g and the different values that eq can take on,the logical disjunction of the conditions of the collapsed branches.If the interaction occurs only at the。