SLAM Project
   HOME
*





SLAM Project
The SLAM project, which was started in 1999 by Thomas Ball and Sriram Rajamani of Microsoft Research, aimed at verifying software safety properties using model checking techniques. It was implemented in OCaml, and has been used to find many bugs in Windows Device Drivers. It is distributed as part of the Microsoft Windows Driver Foundation development kit as the Static Driver Verifier (SDV). "SLAM originally was an acronym but we found it too cumbersome to explain. We now prefer to think of 'slamming' the bugs in a program."Ball, Thomas; Cook, Byron; Levin, Vladimir; and Rajamani, Sriram K.''SLAM and Static Driver Verifier: Technology Transfer of Formal Methods inside Microsoft'' Lecture Notes in Computer Science (LNCS), Vol. 2999: Boiten, Eerke A.; Derrick, John; and Smith, Graeme; eds.; ''Fourth International Conference on Integrated Formal Methods (IFM 2004), 4–7 April 2004, Canterbury, GB'', Springer, Berlin/Heidelberg, pp. 1–20 It initially stood for "software (specification ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Thomas Ball (computer Scientist)
Thomas or Tom Ball may refer to: * Thomas Ball (priest, born 1590) (1590–1659), English divine * Thomas Ball (archdeacon of Chichester) (1697–1770), Church of England clergyman * Thomas Ball (New Zealand politician) (1809–1897), represented the Mongonui electorate * Thomas Ball (artist) (1819–1911), American sculptor * Thomas Henry Ball (1859–1944), American politician and U.S. representative from Texas * Thomas Ball (New Zealand cricketer) (1865–1953), New Zealand cricketer * Tom Ball (golfer) (1882–1919), English golfer * Thomas R. Ball (1896–1943), American politician and U.S. representative from Connecticut * Tommy Ball (1900–1923), English footballer * Thomas Ball (provost of Cumbrae) (died 1916), Scottish priest * Tom Ball (cricketer) (1921–2002), Australian cricketer * Thomas Ball (South African cricketer) (born 1951), South African cricketer * Thomas Ball (computer scientist) (born 1965), see SLAM project The SLAM project, which was started in 1999 ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Sriram Rajamani
Rama (; ), Ram, Raman or Ramar, also known as Ramachandra (; , ), is a major deity in Hinduism. He is the seventh and one of the most popular ''avatars'' of Vishnu. In Rama-centric traditions of Hinduism, he is considered the Supreme Being. Rama is said to have been born to Kaushalya and Dasharatha in Ayodhya, the ruler of the Kingdom of Kosala. His siblings included Lakshmana, Bharata (Ramayana), Bharata, and Shatrughna. He married Sita. Though born in a royal family, their life is described in the Hindu texts as one challenged by unexpected changes such as an exile into impoverished and difficult circumstances, ethical questions and moral dilemmas. Of all their travails, the most notable is the kidnapping of Sita by demon-king Ravana, followed by the determined and epic efforts of Rama and Lakshmana to gain her freedom and destroy the evil Ravana against great odds. The entire life story of Rama, Sita and their companions allegorically discusses duties, rights and social ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Microsoft Research
Microsoft Research (MSR) is the research subsidiary of Microsoft. It was created in 1991 by Richard Rashid, Bill Gates and Nathan Myhrvold with the intent to advance state-of-the-art computing and solve difficult world problems through technological innovation in collaboration with academic, government, and industry researchers. The Microsoft Research team has more than 1,000 computer scientists, physicists, engineers, and mathematicians, including Turing Award winners, Fields Medal winners, MacArthur Fellows, and Dijkstra Prize winners. Between 2010 and 2018, 154,000 AI patents were filed worldwide, with Microsoft having by far the largest percentage of those patents, at 20%.Louis Columbus, January 6, 201Microsoft Leads The AI Patent Race Going Into 2019 ''Forbes'' According to estimates in trade publications, Microsoft spent about $6 billion annually in research initiatives from 2002-2010 and has spent from $10–14 billion annually since 2010. Microsoft Research has made signi ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Model Checking
In computer science, model checking or property checking is a method for checking whether a finite-state model of a system meets a given specification (also known as correctness). This is typically associated with hardware or software systems, where the specification contains liveness requirements (such as avoidance of livelock) as well as safety requirements (such as avoidance of states representing a system crash). In order to solve such a problem algorithmically, both the model of the system and its specification are formulated in some precise mathematical language. To this end, the problem is formulated as a task in logic, namely to check whether a structure satisfies a given logical formula. This general concept applies to many kinds of logic and many kinds of structures. A simple model-checking problem consists of verifying whether a formula in the propositional logic is satisfied by a given structure. Overview Property checking is used for verification when two desc ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


OCaml
OCaml ( , formerly Objective Caml) is a general-purpose programming language, general-purpose, multi-paradigm programming language which extends the Caml dialect of ML (programming language), ML with object-oriented programming, object-oriented features. OCaml was created in 1996 by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy, Ascánder Suárez, and others. The OCaml toolchain includes an interactive top-level Interpreter (computing), interpreter, a bytecode compiler, an optimizing native code compiler, a reversible debugger, and a package manager (OPAM). OCaml was initially developed in the context of automated theorem proving, and has an outsize presence in static program analysis, static analysis and formal methods software. Beyond these areas, it has found serious use in systems programming, web development, and financial engineering, among other application domains. The acronym ''CAML'' originally stood for ''Categorical Abstract Machine Language'', but O ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Windows Driver Foundation
Windows Driver Frameworks (WDF, formerly Windows Driver Foundation), is a set of Microsoft tools and libraries that aid in the creation of device drivers for Windows 2000 and later versions of Windows. It complements Windows Driver Model, abstracting away much of the boilerplate complexity in writing Windows drivers. WDF consists of Kernel-Mode Driver Framework (KMDF) and User-Mode Driver Framework (UMDF). These individual frameworks provide a new object-oriented programming model for Windows driver development. The primary goals of WDF is conceptual scalability and reduced duplication, enabling developers to apply the same concepts across different driver types and reducing the code overhead required for drivers. This differs markedly from the Windows Driver Model (WDM) which requires driver developers to be fully familiar with many complex technical details to write a basic driver. Part of the key to achieving conceptual scalability is that KMDF and UMDF use an "opt-in" mode ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Abstraction Model Checking
In computer science and in mathematics Mathematics is an area of knowledge that includes the topics of numbers, formulas and related structures, shapes and the spaces in which they are contained, and quantities and their changes. These topics are represented in modern mathematics ..., abstraction model checking is for systems where an actual representation is too complex in developing the model alone. So, the design undergoes a kind of translation to scaled down "abstract" version. The set of variables are partitioned into visible and invisible depending on their change of values. The real state space is summarized into a smaller set of the visible ones. Galois connected The real and the abstract state spaces are Galois connected. This means that if we take an element from the abstract space, concretize it and abstract the concretized version, the result will be equal to the original. On the other hand, if you pick an element from the real space, abstract it and concreti ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


BLAST Model Checker
The Berkeley Lazy Abstraction Software verification Tool (BLAST) is a software model checking tool for C programs. The task addressed by BLAST is the need to check whether software satisfies the behavioral requirements of its associated interfaces. BLAST employs counterexample A counterexample is any exception to a generalization. In logic a counterexample disproves the generalization, and does so rigorously in the fields of mathematics and philosophy. For example, the fact that "John Smith is not a lazy student" is a ...-driven automatic abstraction refinement to construct an abstract model that is then model-checked for safety properties. The abstraction is constructed on the fly, and only to the requested precision (arithmetic), precision. Achievements BLAST came first in the category DeviceDrivers64 in the 1st Competition on Software Verification (2012) that was held at TACAS 2012 in Tallinn. BLAST came third (category DeviceDrivers64) in the 2nd Competition on Software V ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Formal Methods
In computer science, formal methods are mathematically rigorous techniques for the specification, development, and verification of software and hardware systems. The use of formal methods for software and hardware design is motivated by the expectation that, as in other engineering disciplines, performing appropriate mathematical analysis can contribute to the reliability and robustness of a design. Formal methods employ a variety of theoretical computer science fundamentals, including logic calculi, formal languages, automata theory, control theory, program semantics, type systems, and type theory. Background Semi-Formal Methods are formalisms and languages that are not considered fully “formal”. It defers the task of completing the semantics to a later stage, which is then done either by human interpretation or by interpretation through software like code or test case generators. Taxonomy Formal methods can be used at a number of levels: Level 0: Formal specification may ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


OCaml Software
OCaml ( , formerly Objective Caml) is a general-purpose, multi-paradigm programming language which extends the Caml dialect of ML with object-oriented features. OCaml was created in 1996 by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy, Ascánder Suárez, and others. The OCaml toolchain includes an interactive top-level interpreter, a bytecode compiler, an optimizing native code compiler, a reversible debugger, and a package manager (OPAM). OCaml was initially developed in the context of automated theorem proving, and has an outsize presence in static analysis and formal methods software. Beyond these areas, it has found serious use in systems programming, web development, and financial engineering, among other application domains. The acronym ''CAML'' originally stood for ''Categorical Abstract Machine Language'', but OCaml omits this abstract machine. OCaml is a free and open-source software project managed and principally maintained by the ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]