In this position paper, we would like to offer and defend a new template to study equivalences between programs -- in the particular framework of process algebras for concurrent computation.We believe that our layered model of development will clarify the distinction that is too often left implicit between the tasks and duties of the programmer and of the tester. It will also enlighten pre-existing issues that have been running across process algebras as diverse as the calculus of communicating systems, the $\pi$-calculus -- also in its distributed version -- or mobile ambients.Our distinction starts by subdividing the notion of process itself in three conceptually separated entities, that we call \emph{Processes}, \emph{Systems} and \emph{Tests}. While the role of what can be observed and the subtleties in the definitions of congruences have been intensively studied, the fact that \emph{not every process can be tested}, and that \emph{the tester should have access to a different set of tools than the programmer} is curiously left out, or at least not often formally discussed.We argue that this blind spot comes from the under-specification of contexts -- environments in which comparisons takes place -- that play multiple distinct roles but supposedly always \enquote{stay the same}.We illustrate our statement with a simple Java example, the \enquote{usual} concurrent languages, but also back it up with $\lambda$-calculus and existing implementations of concurrent languages as well.
翻译:在此立场文件中, 我们想要提供并捍卫一个新的模板, 研究程序之间的等值 -- 特定的进程代数框架中, 用于同时计算。 我们相信, 我们的分层发展模式将澄清程序员的任务和职责与测试员的任务和职责之间往往隐含的区别。 它还将启发像通信系统的微积分那样的跨进程代数、 $\pi$- 计算器 -- 也在其分布式 { 或移动环境中 。 我们的区别始于在三个概念上分离的实体内对进程本身概念进行分解。 我们认为, 我们的分层发展模式将澄清程序员的任务和职责之间往往存在的隐含的区别。 虽然观察的作用以及连接定义的微妙性, 同样的 \ emph{ { 进程可以测试{ { 每一个进程 {emph{ } 或移动环境。 测试者应该从三个概念上分离的实体内对进程本身的概念进行分解。 我们的系统本身的概念本身的概念本身概念开始, 我们称之为\emph{ press}, emph{ syemremely cloveal col laction the view view view view view view view view view view view view viol view view view view viol view viol viol viol viol view viol viol viol view viol viol viol viol viol viol viol viol viol viol vic vic viol viol viol viol vic viol viol vic vic vic vic viol viol vic viol vic vic vic vic) vic vic viol viol) viol vic viol vic vic vic vic viol vic viol li vic vic lic lic vic viol viol lic vic) viol viol lic lic