Skip to main content
QUICK REVIEW

[论文解读] A DENOTATIONAL ENGINEERING OF PROGRAMMING LANGUAGES to make software systems reliable and user manuals clear, complete and unambiguous. A book in statu nascendi

Andrzej Blikle, Chrząstowski-Wachtel, Piotr|arXiv (Cornell University)|Jan 1, 2018
Computability, Logic, AI Algorithms参考文献 17被引用 1
一句话总结

本文提出了一种编程语言的指称工程方法论,通过形式化的数学模型精确地定义语言语义,旨在提高软件可靠性并消除用户手册中的歧义。通过基于cpos(链完备偏序集)和形式化语法的指称模型来构建编程语言,该方法实现了无歧义、数学严谨的语言定义,并支持正确程序开发与文档编制的工具链。

ABSTRACT

The book is devoted to two research areas: (1) Designing programming languages along with their denotational models. A denotational model of a language consists of two many-sorted algebras - an algebra of syntax and an algebra of denotations - and a (unique) homomorphism from syntax to denotations called the semantics of the language. (2) Designing sound program-constructors for languages with denotational models. In our approach programs syntactically contain their total-correctness specifications. A program is said to be correct if it is correct wrt its specification. A program-constructor is sound if given correct component-programs yields a correct resulting program. Both methods are illustrated on an example-language Lingua.

研究动机与目标

  • 解决现有编程语言手册中存在的歧义、不完整性和不一致性问题。
  • 通过使用指称模型的形式化指定语言语义,提高软件可靠性。
  • 基于形式语义建立一种系统化的方法论,用于编写清晰、完整且无歧义的用户手册。
  • 通过分层语言设计(Lingua)和形式化验证原则,支持正确程序的开发。
  • 建立一个社区和工具链,用于实现和验证所提出的语言工程框架。

提出的方法

  • 基于链完备偏序集(cpos)的指称模型定义编程语言,确保数学严谨性和完整性。
  • 引入一种多层语言设计Lingua,其包含从形式定义生成的抽象语法、具体语法和语义条款。
  • 使用形式代数签名生成抽象语法规则,并支持语义条款的生成。
  • 设计工具,从语义条款和语法定义自动生成代码,包括解释器和编译器。
  • 开发一种系统,将口语化语法恢复为正式的具体语法,以提升可用性。
  • 建立一种手册编写框架,整合基础语义,确保清晰性和一致性。

实验结果

研究问题

  • RQ1如何形式化编程语言的语义,以消除语言规范中的歧义并确保完整性?
  • RQ2何种数学基础能够支持构建可靠且无歧义的编程语言定义?
  • RQ3如何系统化地编写用户手册,使其反映形式语义,同时无需专家级知识?
  • RQ4需要何种工具链来支持从语法到执行的正式定义编程语言的实现?
  • RQ5如何建立一个开发者社区,以构建和维护一个基于形式基础的编程语言系统?

主要发现

  • 指称工程方法为使用cpos和形式语法定义编程语言提供了数学上坚实的基础,确保了语义的完备性。
  • 可从形式签名构建分层语言系统(Lingua),实现模块化且正确的语言开发。
  • 可从形式定义系统地推导出用于生成抽象语法、具体语法、语义条款以及解释器/编译器代码的工具。
  • 基于形式语义编写的用户手册既精确又对专业程序员具有可读性,从而减少了歧义。
  • 该框架支持构建一个社区驱动的非开源实现,以保持数学正确性并避免不合理的扩展。
  • 使用微型程序进行的编程实验表明,该方法论在真实世界、性能关键的场景中具有可行性与正确性。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。