• DocumentCode
    3143969
  • Title

    A Formal Specification of a Programming Language: Design of Pit

  • Author

    Pedersen, Leif ; Reza, Hassan

  • Author_Institution
    Univ. of North Dakota, Grand Forks
  • fYear
    2006
  • fDate
    15-19 Nov. 2006
  • Firstpage
    111
  • Lastpage
    118
  • Abstract
    Formal specifications and supporting tools have shown to be very effective to improve the quality and correctness of a software system. A compiler is large and complex software; it takes as input a program written in some language and generates as output a program in another language. One of the main characteristics of any compiler is to preserve the semantics of the program being compiled. Therefore, developing correct compilers that can generate faithful target code without introducing any errors is critically important. In this paper, we show how to use Z notation to formally specify part of the Pit, which is a general-purpose programming language that we are currently developing. The main idea behind Pit is to create a language where the programmer can choose between allocating memory manually by using static ally-typed "primitive" variables or allowing the compiler to insert memory management code automatically by using dynamically-typed "auto" variables. This feature, in turn, allows a programmer to choose between automatically ensuring that there are no buffer overrun or integer overflow vulnerabilities in the code.
  • Keywords
    formal specification; program compilers; programming languages; software quality; Pit; compiler; formal specification; general-purpose programming language; Computer bugs; Computer languages; Costs; Error correction codes; Formal specifications; Memory management; Neodymium; Program processors; Programming profession; Software systems;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Leveraging Applications of Formal Methods, Verification and Validation, 2006. ISoLA 2006. Second International Symposium on
  • Conference_Location
    Paphos
  • Print_ISBN
    978-0-7695-3071-0
  • Type

    conf

  • DOI
    10.1109/ISoLA.2006.7
  • Filename
    4463702