摘要
实时协同编程系统是协同交互应用的重要分支,该环境支持多个用户在任何时间任意地点并发的编辑共享的源代码文档.协同编程环境是一种特殊的协同文本编辑环境,该环境中共享的源代码文档既要满足语法一致性,也需符合语义一致性.语义不一致源于多个用户对相同的代码段或对存在依赖关系的代码段并发工作.本文深入分析了协同编程环境下语义冲突、动态依赖冲突问题及不完整的编辑操作导致的编辑错误,基于前人的研究,结合CAS(Compare And Swap)的并发控制思想,设计了实时协同环境下了语义冲突消解方法 ACAS(Automatic Compare And Swap),维护实时协同编程语义一致性.本文在Window s平台下,基于QT框架及SeaStar异步通信框架开发了实时协同编程的原型系统CoCode,并通过相关实验进一步的验证了ACAS(Automatic Compare And Sw ap)算法及相关控制函数的可行性与正确性.
Real-time collaborative programming system is an important branch of cooperatively interactive applications. It allow s multiple programmers to edit the shared source code files at anytime and anywhere concurrently. The collaborative programming environment is a special collaborative text editing environment in which the shared code files not only need to ensure syntactic consistency,but also require semantic consistency. Semantic inconsistency stems from the semantic conflict which may be caused by multiple programmers’ concurrency work,such as they are worked at the same code segment or different code segment which exists dependent relationship. In this paper,we privided an in-depth analysis of semantic conflict,dynamic dependency conflicts,and the editing errors caused by incomplete editing operations. Based on the previous and associated the concurrency control idea of CAS( Compare and Swap),we designed a novel method ACAS( Automatic Compare and Swap) to dispel the semantic conflict of real-time collaborative programming system. In order to verify the feasibility and the effectiveness of the ACAS algorithm and related functions,we developed the real-time collaborative programing prototype system,named CoCode,which based on the QT framework and the SeaStar Asynchronous Communication Framework for the Window s platform.
作者
高丽萍
游书伟
GAO Li-ping;YOU Shu-wei(School of Optical-Electrical Computer Engineering, University of Shanghai for Science & Technology, Shanghai 200093, China;Shanghai Key Laboratory of Data Science,Fudan Universit,Shanghai 200093,China)
出处
《小型微型计算机系统》
CSCD
北大核心
2019年第4期695-703,共9页
Journal of Chinese Computer Systems
基金
国家自然科学基金项目(61202376
61572325)资助
上海市自然科学基金项目(17ZR1429100)资助
上海市数据科学重点实验室重点开放课题(201609060003)资助
关键词
语义冲突
协同计算
协同编程
一致性维护
semantic conflict
collaborative computing
collaborative programming
consistency maintenance