Catalogue Search | MBRL
Search Results Heading
Explore the vast range of titles available.
MBRLSearchResults
-
DisciplineDiscipline
-
Is Peer ReviewedIs Peer Reviewed
-
Reading LevelReading Level
-
Content TypeContent Type
-
YearFrom:-To:
-
More FiltersMore FiltersItem TypeIs Full-Text AvailableSubjectPublisherSourceDonorLanguagePlace of PublicationContributorsLocation
Done
Filters
Reset
2,051
result(s) for
"program specifications"
Sort by:
Practical TLA+ : planning driven development
Learn how to design complex, correct programs and fix problems before writing a single line of code. This book is a practical, comprehensive resource on TLA+ programming with rich, complex examples. Practical TLA+ shows you how to use TLA+ to specify a complex system and test the design itself for bugs. You'll learn how even a short TLA+ spec can find critical bugs. Start by getting your feet wet with an example of TLA+ used in a bank transfer system, to see how it helps you design, test, and build a better application. Then, get some fundamentals of TLA+ operators, logic, functions, PlusCal, models, and concurrency. Along the way you will discover how to organize your blueprints and how to specify distributed systems and eventual consistency. Finally, you'll put what you learn into practice with some working case study applications, applying TLA+ to a wide variety of practical problems: from algorithm performance and data structures to business code and MapReduce. After reading and using this book, you'll have what you need to get started with TLA+ and how to use it in your mission-critical applications. What You'll LearnRead and write TLA+ specificationsCheck specs for broken invariants, race conditions, and liveness bugsDesign concurrency and distributed systemsLearn how TLA+ can help you with your day-to-day production workWho This Book Is ForThose with programming experience who are new to design and to TLA+.
Composition-Nominative Methods and Models in Program Development
2022
Software development methods take into consideration various program aspects. Among such aspects, compositionality and nominativity are the basic ones. Compositionality suggests that program meaning is a composition of meanings of its components, while nominativity suggests that components themselves are constructed with the help of relation “name–value”. Compositionality permits to describe program semantics with the formalism of program algebras. As to nominativity, it permits to represent various data structures in a unified form of nominative data. In this case, programs can be specified by program algebras over such data. This leads to composition-nominative languages used for program modeling. Such languages can be extended to program specification languages. Composition-nominative logics provide means for program reasoning. In this paper, we continue our research of program algebras and logics over nominative data. We consider various classes of nominative data with simple/complex names and simple/complex values with direct and indirect naming. We define program and specification algebras over hierarchical nominative data, specify corresponding languages and construct a program logic of Floyd–Hoare type for such programs. Constructed logics are logics over partial predicates and functions in which complex names are used. In this case, the rules of classical Floyd–Hoare logics are not sound; therefore, we use special compositions extending logic expressiveness, special consequence relations, and modified rules of Floyd–Hoare logics. Presented results give means for modeling and reasoning about program over complex data structures.
Journal Article
Algorithmic program synthesis: introduction
2013
Program synthesis is a process of producing an executable program from a specification. Algorithmic synthesis produces the program automatically, without an intervention from an expert. While classical compilation falls under the definition of algorithmic program synthesis, with the source program being the specification, the synthesis literature is typically concerned with producing programs that cannot be (easily) obtained with the deterministic transformations of a compiler. To this end, synthesis algorithms often perform a search, either in a space of candidate programs or in a space of transformations that might be composed to transform the specification into a desired program. In this introduction to the special journal issue, we survey the history of algorithmic program synthesis and introduce the contributed articles. We divide the field into
reactive synthesis
, which is concerned with automata-theoretic techniques for controllers that handle an infinite stream of requests, and
functional synthesis
, which produces programs consuming finite input. Contributed articles are divided analogously. We also provide pointers to synthesis work outside these categories and list many applications of synthesis.
Journal Article
Truth versus information in logic programming
2014
The semantics of logic programs was originally described in terms of two-valued logic. Soon, however, it was realised that three-valued logic had some natural advantages, as it provides distinct values not only for truth and falsehood but also for “undefined”. The three-valued semantics proposed by Fitting (Fitting, M. 1985. A Kripke–Kleene semantics for logic programs. Journal of Logic Programming 2, 4, 295–312) and Kunen (Kunen, K. 1987. Negation in logic programming. Journal of Logic Programming 4, 4, 289–308) are closely related to what is computed by a logic program, the third truth value being associated with non-termination. A different three-valued semantics, proposed by Naish, shared much with those of Fitting and Kunen but incorporated allowances for programmer intent, the third truth value being associated with underspecification. Naish used an (apparently) novel “arrow” operator to relate the intended meaning of left and right sides of predicate definitions. In this paper we suggest that the additional truth values of Fitting/Kunen and Naish are best viewed as duals. We use Belnap's four-valued logic (Belnap, N. D. 1977. A useful four-valued logic. In Modern Uses of Multiple-Valued Logic, J. M. Dunn and G. Epstein, Eds. D. Reidel, Dordrecht, Netherlands, 8–37), also used elsewhere by Fitting, to unify the two three-valued approaches. The truth values are arranged in a bilattice, which supports the classical ordering on truth values as well as the “information ordering”. We note that the “arrow” operator of Naish (and our four-valued extension) is essentially the information ordering, whereas the classical arrow denotes the truth ordering. This allows us to shed new light on many aspects of logic programming, including program analysis, type and mode systems, declarative debugging and the relationships between specifications and programs, and successive execution states of a program.
Journal Article
Specifying distributed multi-agent systems in chemical reaction metaphor
by
Lin, Hong
,
Yang, Chunsheng
in
Chemical Reaction Metaphor
,
Chemical reactions
,
Computer applications
2006
Issue Title: Special Issue: Innovations in Applied Artificial Intelligence This paper presents an application of Chemical Reaction Metaphor (CRM) in distributed multi-agent systems (MAS). The suitability of using CRM to model multi-agent systems is justified by CRM's capacity in specifying dynamic features of multi-agent systems. A case study in an agent-based e-learning system (course material updating) demonstrates how the CRM based language, Gamma, can be used to specify the architectures of multi-agent systems. The effectiveness of specifying multi-agent systems in CRM from the view point of software engineering is further justified by introducing a transformational method for implementing the specified multi-agent systems. A computation model with a tree-structured architecture is proposed to base the design of the specified multi-agent system during the implementation phase. A module language based on the computation model is introduced as an intermediate language to facilitate the translation of the specification of multi-agent systems. The multicast networking technology pragmatizes the implementation of communications and synchronization among distributed agents. The paper also discusses the feasibility of implementing an automatic translation from the Gamma specification to a program in the module language.[PUBLICATION ABSTRACT]
Journal Article
A clausal resolution method for branching-time logic ECTL
2006
We expand the applicability of the clausal resolution technique to the branching-time temporal logic ECTL+. ECTL+ is strictly more expressive than the basic computation tree logic CTL and its extension, ECTL, as it allows Boolean combinations of fairness and single temporal operators. We show how any ECTL+ formula can be translated to a normal form the structure of which was initially defined for CTL and then used for ECTL. This enables us to apply to ECTL+ a resolution technique defined over the set of clauses. Both correctness of the method and complexity of the transformation procedure are given.
Journal Article
Specification of predictable variability as a tool for software modification management
2007
Variability properties of reusable software assets at various stages of software development are considered, and the concept of predictable variability is introduced. A UML profile and a semi-automatic method of using it are proposed for annotating and retrieving reusable assets in digital libraries. Using this method, the user should not remember the exact notation of key retrieval descriptors and need not keyboard them with errors since the environment of controlled vocabularies [8] is supported. [PUBLICATION ABSTRACT]
Journal Article
Exploring Tabular Verification and Refinement
by
Sekerinski, Emil
in
Algorithmics. Computability. Computer arithmetics
,
Applied sciences
,
Computer science; control theory; systems
2003
Tabular representations have been proposed for structuring complex mathematical expressions as they appear in the specification of programs. We argue that tables not only help in writing and checking complex expressions, but also in their formal manipulation. More specifically, we explore the use of tabular predicates and tabular relations in program verification and refinement.
Journal Article
Architectural Specifications in CASL
by
Bidoit, Michel
,
Tarlecki, Andrzej
,
Sannella, Donald
in
Applied sciences
,
Computer science; control theory; systems
,
Exact sciences and technology
2002
One of the most novel features of C ASL , the Common Algebraic Specification Language, is the provision of so-called architectural specifications for describing the modular structure of software systems. A brief discussion of refinement of C ASL specifications provides the setting for a presentation of the rationale behind architectural specifications. This is followed by some details of the features provided in C ASL for architectural specifications, hints concerning their semantics, and simple results justifying their usefulness in the development process.
Journal Article