Science of Computer Programming ( IF 1.3 ) Pub Date : 2020-05-28 , DOI: 10.1016/j.scico.2020.102494 Samuel Feitosa , Rodrigo Ribeiro , Andre Du Bois
Property-based testing of compilers or programming language semantics is difficult to accomplish because it is hard to design a random generator for valid programs. Most compiler test tools do not have a well-specified way for generating type-correct programs, which is a requirement for such testing activities. In this project, we formalize a type-directed procedure to generate random well-typed Java 8 programs in the context of Featherweight Java, extending it with interfaces, λ-expressions and default methods. We implement the approach using the Haskell programming language and verify it against relevant properties using QuickCheck, a library for property-based testing.
中文翻译:
一种类型定向算法,用于生成随机的类型良好的Java 8程序
基于属性的编译器或编程语言语义测试很难完成,因为很难为有效程序设计随机生成器。大多数编译器测试工具都没有明确指定的方法来生成类型正确的程序,这是此类测试活动的必要条件。在这个项目中,我们将形式化过程正式化,以在Featherweight Java的上下文中生成随机的类型良好的Java 8程序,并使用接口,λ表达式和默认方法对其进行扩展。我们使用Haskell编程语言实现该方法,并使用QuickCheck(基于属性的测试库)针对相关属性对其进行验证。