The topic of this article may not meet Wikipedia's general notability guideline .(October 2011) |
Paradigms | Multi-paradigm: functional, imperative, modular |
---|---|
Family | ML: Standard ML |
Designed by | S. Kahrs, D. Sannella, A. Tarlecki |
Developer | University of Edinburgh |
First appeared | 1985 |
Final release | 1.1 / 1999 |
Typing discipline | strong, static, inferred |
Platform | IA-32, SPARC |
OS | Cross-platform: Linux, Solaris |
Website | homepages |
Influenced by | |
ML, Standard ML |
Extended ML is a general-purpose, high-level, wide-spectrum programming language based on the languages ML and Standard ML, covering both program specification and implementation. It extends the syntax of ML to include axioms, which do not need to be executable but can rigorously specify the behavior of a program. With this addition, the language can be used for stepwise refinement, proceeding gradually from an initial formal specification to eventually yield an executable Standard ML program. Correctness of the final executable with respect to the original specification can then be established by proving the correctness of each of the refinement steps. Extended ML is used for research into and teaching of formal methods in program development and specification, and research into automatic program verification.
Extended ML is neither related to the programming language Extensible ML (other than being similarly derived from ML), nor to the specification language Extensible Markup Language (XML).
A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their syntax (form) and semantics (meaning), usually defined by a formal language. Languages usually provide features such as a type system, variables, and mechanisms for error handling. An implementation of a programming language is required in order to execute programs, namely an interpreter or a compiler. An interpreter directly executes the source code, while a compiler produces an executable program.
In computer science, formal methods are mathematically rigorous techniques for the specification, development, analysis, 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.
Hope is a small functional programming language developed in the 1970s at the University of Edinburgh. It predates Miranda and Haskell and is contemporaneous with ML, also developed at the University. Hope was derived from NPL, a simple functional language developed by Rod Burstall and John Darlington in their work on program transformation. NPL and Hope are notable for being the first languages with call-by-pattern evaluation and algebraic data types.
In computer science, extensible programming is a style of computer programming that focuses on mechanisms to extend the programming language, compiler, and runtime system (environment). Extensible programming languages, supporting this style of programming, were an active area of work in the 1960s, but the movement was marginalized in the 1970s. Extensible programming has become a topic of renewed interest in the 21st century.
Refinement is a generic term of computer science that encompasses various approaches for producing correct computer programs and simplifying existing programs to enable their formal verification.
The notion of institution was created by Joseph Goguen and Rod Burstall in the late 1970s, in order to deal with the "population explosion among the logical systems used in computer science". The notion attempts to "formalize the informal" concept of logical system.
In computer science, an abstract state machine (ASM) is a state machine operating on states that are arbitrary data structures.
Cactus is an open-source, problem-solving environment designed for scientists and engineers. Its modular structure enables parallel computation across different architectures and collaborative code development between different groups. Cactus originated in the academic research community, where it was developed and used over many years by a large international collaboration of physicists and computational scientists.
Rodney Martineau "Rod" Burstall is a British computer scientist and one of four founders of the Laboratory for Foundations of Computer Science at the University of Edinburgh.
Jeannette Marie Wing is Avanessians Director of the Data Science Institute at Columbia University, where she is also a professor of computer science. Until June 30, 2017, she was Corporate Vice President of Microsoft Research with oversight of its core research laboratories around the world and Microsoft Research Connections. Prior to 2013, she was the President's Professor of Computer Science at Carnegie Mellon University, Pittsburgh, Pennsylvania, United States. She also served as assistant director for Computer and Information Science and Engineering at the NSF from 2007 to 2010. She was appointed the Columbia University executive vice president for research in 2021.
A wide-spectrum language (WSL) is a programming language designed to be simultaneously a low-level and a high-level language—possibly a non-executable specification language. Wide-spectrum languages are designed to support a programming methodology based on program refinement.
In type theory, a refinement type is a type endowed with a predicate which is assumed to hold for any element of the refined type. Refinement types can express preconditions when used as function arguments or postconditions when used as return types: for instance, the type of a function which accepts natural numbers and returns natural numbers greater than 5 may be written as . Refinement types are thus related to behavioral subtyping.
Spec Explorer is a Model-Based Testing (MBT) tool from Microsoft. It extends the Visual Studio Integrated Development Environment with the ability to define a model describing the expected behavior of a software system. From these models, the tool can generate tests automatically for execution within Visual Studio's own testing framework, or many other unit testing frameworks.
Bernhard Steffen is a German computer scientist and professor at the TU Dortmund University, Germany. His research focuses on various facets of formal methods ranging from program analysis and verification, to workflow synthesis, to test-based modeling, and machine learning.
The cTuning Foundation is a global non-profit organization developing a common methodology and open-source tools to support sustainable, collaborative and reproducible research in Computer science and organize and automate artifact evaluation and reproducibility inititiaves at machine learning and systems conferences and journals.
Grigori Fursin is a British computer scientist, president of the non-profit CTuning foundation, founding member of MLCommons, and co-chair of the MLCommons Task Force on Automation and Reproducibility. His research group created open-source machine learning based self-optimizing compiler, MILEPOST GCC, considered to be the first in the world. At the end of the MILEPOST project he established cTuning foundation to crowdsource program optimisation and machine learning across diverse devices provided by volunteers. His foundation also developed Collective Knowledge Framework and Collective Mind workflow automation framework to support open research. Since 2015 Fursin leads Artifact Evaluation at several ACM and IEEE computer systems conferences. He is also a founding member of the ACM taskforce on Data, Software, and Reproducibility in Publication.
Grigore Roșu is a computer science professor at the University of Illinois at Urbana-Champaign and a researcher in the Information Trust Institute. He is known for his contributions in runtime verification, the K framework, matching logic, and automated coinduction.
{{cite book}}
: CS1 maint: location missing publisher (link)