294 research outputs found

    Lucid : a formal system for writing and proving programs

    Get PDF
    Lucid is both a programming language and a formal system for proving properties of Lucid programs. The programming language is unconventional in many ways, although programs are readily understood as using assignment statements and loops in a 'structured' fashion. Semantically, an assignment statement is really an equation between 'histories', and a whole program is simply an unordered set of such equations. From these equations, properties of the program can be derived by straightforward mathematical reasoning, using the Lucid formal system. The rules of this system are mainly those of first order logic, together with extra axioms and rules for the special Lucid functions. This paper formally describes the syntax and semantics of programs and justifies the axioms and rules of the formal system

    Does Dysbiosis Play a Role in Age-Related Hearing Impairment?

    Get PDF
    Age-related hearing impairment (ARHI) is prevalent in older adults, affecting at least 60% of people by the time they reach 71 to 80 years of age.1 The number of people with ARHI will necessarily increase as humans live longer and a greater proportion of the population is older.2 Hearing loss does not just impact communication; it is associated with loneliness and depression, cognitive decline and dementia, as well as reduced physical well-being.3-6 A decade ago, an international report calculated that hearing loss cost Europe £213 billion annually.7 There is currently no effective drug treatment for hearing loss. Hearing aids (average cost £2,300/pair) are the most commonly prescribed ameliorative therapy, but uptake is low; and among those who obtain hearing aids, a high proportion do not use them or are dissatisfied with them. Hearing loss prevention is therefore of compelling necessity, and genetic studies will help us understand how and why people lose their hearing ability and will inform prevention strategies

    Coeffects: Unified static analysis of context-dependence

    Get PDF
    Monadic effect systems provide a unified way of tracking effects of computations, but there is no unified mechanism for tracking how computations rely on the environment in which they are executed. This is becoming an important problem for modern software – we need to track where distributed computations run, which resources a program uses and how they use other capabilities of the environment. We consider three examples of context-dependence analysis: liveness analysis, tracking the use of implicit parameters (similar to tracking of resource usage in distributed computation), and calculating caching requirements for dataflow programs. Informed by these cases, we present a unified calculus for tracking context dependence in functional languages together with a categorical semantics based on indexed comonads. We believe that indexed comonads are the right foundation for constructing context-aware languages and type systems and that following an approach akin to monads can lead to a widespread use of the concept
    corecore