12 research outputs found

    Verificaci贸n de Programas no Determin铆sticos

    Get PDF
    We continue with our series of introductory articles on the axiomatic verification of programs. In this second work, we focus on the nondeterministic sequential paradigm, always within the framework of imperative input/output programs. As nondeterminism is manifested in concurrency, the article also serves as an introduction to the verification of concurrent programs, in which a formal treatment of correctness verification is more justified due to their complexity. We work with a classic programming language, with nondeterministic conditional selections and repetitions, and then incorporating random assignments. For the verification of the programs we propose an adaptation of the verification axiomatic method described in the previous publication, limited to deterministic sequential programming. We present examples of the application of the method and a systematic program development is also included, emphasizing again the approach of using the axioms and rules for programming as well as verifying, in order to obtain correct programs by construction. Finally, we introduce the concept of fairness, which effect is to reduce the degree of nondeterminism of a program based on certain equity criteria in the execution environment, and we describe a couple of adaptations in the verification rules to contemplate this aspect.Continuando con nuestra serie de art铆culos intoductorios sobre la verificaci贸n axiom谩tica de programas, en este segundo trabajo nos enfocamos en el paradigma secuencial no determin铆stico, siempre en el marco de los programas imperativos de entrada/salida. Como el no determinismo se manifiesta en la concurrencia, el art铆culo sirve tambi茅n como introducci贸n a la verificaci贸n de programas concurrentes, en los que m谩s se justifica por su complejidad un tratamiento formal de las pruebas de correctitud. Trabajamos con un cl谩sico lenguaje de programaci贸n, con selecci贸n condicional y repetici贸n no determin铆sticas, al que luego se incorporan asignaciones aleatorias. Para las pruebas de los programas planteamos una adaptaci贸n del m茅todo axiom谩tico de verificaci贸n descripto en la publicaci贸n previa, limitado a la programaci贸n secuencial determin铆stica. Presentamos ejemplos de aplicaci贸n del m茅todo e incluimos un desarrollo sistem谩tico de programa, volviendo a destacar el approach de utilizar los axiomas y reglas para programar al mismo tiempo que verificar, con el objeto de obtener programas correctos por construcci贸n. Finalmente introducimos el concepto de fairness, cuyo efecto es reducir el grado de no determinismo de un programa en base a determinados criterios de equidad en el entorno de ejecuci贸n, y describimos un par de adaptaciones en las reglas de prueba para contemplar este aspecto

    Fifty years of Hoare's Logic

    Get PDF
    We present a history of Hoare's logic.Comment: 79 pages. To appear in Formal Aspects of Computin

    On the existence of Cook semantics : (preprint)

    Get PDF

    Ten years of Hoare s logic, a survey, part I

    Get PDF

    Completeness and complexity of reasoning about call-by-value in Hoare logic

    Get PDF
    We provide a sound and relatively complete Hoare logic for reasoning about partial correctness of recursive procedures in presence of local variables and the call-by-value parameter mechanism and in which the correctness proofs support contracts and are linear in the length of the program. We argue that in spite of the fact that Hoare logics for recursive procedures were intensively studied, no such logic has been proposed in the literature

    Formal semantics and the logical structure of programming languages

    Get PDF
    Ph.D.Lucio Chiaravigli
    corecore