Extended ML
   HOME
*





Extended ML
Extended ML is a wide-spectrum language based on ML, covering both specification and implementation. It extends the syntax of ML to include axioms, which need not be executable but can rigorously specify the behavior of the 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 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). References * S. Kahrs, D. Sannella and A. Tarlecki. The definition of extend ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Wide-spectrum Language
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. The concept was introduced by F. L. Bauer ''et al.'' in 1978: ...The program should then be developed step by step applying correctness preserving transformations.... The development process thus involves usually multiple reshapings.... Since most current programming languages do not contain all the concepts needed for the formulation of the different versions, the programmer is nowadays forced to use different languages. To avoid the transition from one language to another, it seems appropriate to have one coherent language frame covering the whole spectrum outlined above, i.e. a ''wide spectrum language''.Bauer, p. 15 The advantage of a single language rather than separate specification, high-le ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Extensible ML
Extensibility is a software engineering and systems design principle that provides for future growth. Extensibility is a measure of the ability to extend a system and the level of effort required to implement the extension. Extensions can be through the addition of new functionality or through modification of existing functionality. The principle provides for enhancements without impairing existing system functions. An extensible system is one whose internal structure and dataflow are minimally or not affected by new or modified functionality, for example recompiling or changing the original source code might be unnecessary when changing a system’s behavior, either by the creator or other programmers. Because software systems are long lived and will be modified for new features and added functionalities demanded by users, extensibility enables developers to expand or add to the software’s capabilities and facilitates systematic reuse. Some of its approaches include faciliti ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


ML Programming Language Family
ML or ml may refer to: Computing and mathematics * ML (programming language), a general-purpose functional programming language * .ml, the top-level Internet domain for Mali * Machine language, the direct instructions to a computer's central processing unit (CPU) * Machine learning, a field of computer science * Markup language, a system for annotating a document * Maximum likelihood, a method of estimating the parameters of a statistical model * Mathematical Logic, a variation of Quine's system New Foundations Measurement * Megalitre or megaliter (ML, Ml, or Mℓ), a unit of capacity * Millilitre or milliliter (mL, ml, or mℓ), a unit of capacity * Millilambert (mL), a non-SI unit of luminance * Richter magnitude scale (''M''L), used to measure earthquakes * Megalangmuir (ML), a unit of exposure of a surface to a given chemical species (convention is 1 ML=monolayer=1 Langmuir) Other * 1050, in Roman numerals * ''ML'' (film), a 2018 Philippine film * ML 8-inch shell gun * ML ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Theoretical Computer Science (journal)
''Theoretical Computer Science'' (TCS) is a computer science journal published by Elsevier, started in 1975 and covering theoretical computer science. The journal publishes 52 issues a year. It is abstracted and indexed by Scopus and the Science Citation Index. According to the Journal Citation Reports, its 2020 impact factor The impact factor (IF) or journal impact factor (JIF) of an academic journal is a scientometric index calculated by Clarivate that reflects the yearly mean number of citations of articles published in the last two years in a given journal, as i ... is 0.827. References Computer science journals Elsevier academic journals Publications established in 1975 {{comp-sci-theory-stub ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Andrzej Tarlecki
Andrzej is the Polish form of the given name Andrew. Notable individuals with the given name Andrzej * Andrzej Bartkowiak (born 1950), Polish film director and cinematographer * Andrzej Bobola, S.J. (1591–1657), Polish saint, missionary and martyr * Andrzej Chyra (born 1964), Polish actor * Andrzej Czarniak (1931–1985), Polish alpine skier * Andrzej Duda (born 1972), Polish 6th president * Andrzej Jajszczyk, Polish scientist * Andrzej Kmicic, fictional protagonist of Henryk Sienkiewicz's novel ''The Deluge'' * Andrzej Kokowski (born 1953), Polish archaeologist * Andrzej Krauze (born 1947), Polish-British cartoonist and illustrator * Andrzej Leder (born 1960), Polish philosopher and psychotherapist * Andrzej Mazurczak (born 1993), Polish basketball player * Andrzej Mleczko (born 1949), Polish illustrator * Andrzej Nowacki (born 1953), Polish artist * Andrzej Paczkowski (born 1938), Polish historian * Sir Andrzej Panufnik (1914–1991), Polish composer * Andrzej Person, Polish ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Don Sannella
Donald T. Sannella FRSE is professor of computer science in the Laboratory for Foundations of Computer Science, at the School of Informatics, University of Edinburgh, Scotland. Sannella graduated from Yale University, University of California, Berkeley and University of Edinburgh with degrees in computer science. His research interests include: algebraic specification and formal software development, correctness of modular systems, types and functional programming, resource certification for mobile code. Sannella is founder of the European Joint Conferences on Theory and Practice of Software, a confederation of computer science conferences, held annually in Europe since 1998. He is editor-in-chief of the journal ''Theoretical Computer Science'', and is co-founder and CEO oContemplate Ltd His father is Ted Sannella. Honours and awards In 2014 Sannella was elected a Fellow of the Royal Society of Edinburgh The Royal Society of Edinburgh is Scotland's national academy ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Extensible Markup Language
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. The World Wide Web Consortium's XML 1.0 Specification of 1998 and several other related specifications—all of them free open standards—define XML. The design goals of XML emphasize simplicity, generality, and usability across the Internet. It is a textual data format with strong support via Unicode for different human languages. Although the design of XML focuses on documents, the language is widely used for the representation of arbitrary data structures such as those used in web services. Several schema systems exist to aid in the definition of XML-based languages, while programmers have developed many application programming interfaces (APIs) to aid the processing of XML data. Overview The main purpose of XML is serialization, i ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Specification Language
A specification language is a formal language in computer science used during systems analysis, requirements analysis, and systems design to describe a system at a much higher level than a programming language, which is used to produce the executable code for a system.Joseph Goguen "One, None, A Hundred Thousand Specification Languages" Invited Paper, IFIP Congress 1986 pp 995-1004 Overview Specification languages are generally not directly executed. They are meant to describe the ''what'', not the ''how''. Indeed, it is considered as an error if a requirement specification is cluttered with unnecessary implementation detail. A common fundamental assumption of many specification approaches is that programs are modelled as algebraic or model-theoretic structures that include a collection of sets of data values together with functions over those sets. This level of abstraction coincides with the view that the correctness of the input/output behaviour of a program takes precedence ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Program Verification
In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal methods of mathematics. Formal verification can be helpful in proving the correctness of systems such as: cryptographic protocols, combinational circuits, digital circuits with internal memory, and software expressed as source code. The verification of these systems is done by providing a formal proof on an abstract mathematical model of the system, the correspondence between the mathematical model and the nature of the system being otherwise known by construction. Examples of mathematical objects often used to model systems are: finite-state machines, labelled transition systems, Petri nets, vector addition systems, timed automata, hybrid automata, process algebra, formal semantics of programming languages such as operational semantics, de ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


ML (programming Language)
ML (Meta Language) is a general-purpose functional programming language. It is known for its use of the polymorphic Hindley–Milner type system, which automatically assigns the types of most expressions without requiring explicit type annotations, and ensures type safetythere is a formal proof that a well-typed ML program does not cause runtime type errors. ML provides pattern matching for function arguments, garbage collection, imperative programming, call-by-value and currying. It is used heavily in programming language research and is one of the few languages to be completely specified and verified using formal semantics. Its types and pattern matching make it well-suited and commonly used to operate on other formal languages, such as in compiler writing, automated theorem proving, and formal verification. Overview Features of ML include a call-by-value evaluation strategy, first-class functions, automatic memory management through garbage collection, parametric polymorph ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Program Specification
In computer science, formal specifications are mathematically based techniques whose purpose are to help with the implementation of systems and software. They are used to describe a system, to analyze its behavior, and to aid in its design by verifying key properties of interest through rigorous and effective reasoning tools. These specifications are ''formal'' in the sense that they have a syntax, their semantics fall within one domain, and they are able to be used to infer useful information. Motivation In each passing decade, computer systems have become increasingly more powerful and, as a result, they have become more impactful to society. Because of this, better techniques are needed to assist in the design and implementation of reliable software. Established engineering disciplines use mathematical analysis as the foundation of creating and validating product design. Formal specifications are one such way to achieve this in software engineering reliability as once predicted. ...
[...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]