User Tools

Site Tools


start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
start [2016/07/12 15:50]
jonathan
start [2017/08/30 21:50] (current)
jonathan
Line 1: Line 1:
 ====== Eiffel: the Method====== ====== Eiffel: the Method======
  
-Eiffel is a pure, statically typed OO language. It has built-in support for Design By Contract. Mechanisms such as design by contract, now available in mainstream programming languages, should be taught ​as part of foundational computational thinking ​at the university level. Students who learn the benefits of principled thinking and see the value of the related tools will retain these lessons throughout their careers. ​Eiffel ​is an industrial strength object-oriented ​language that has influenced ​other languages ​such as Java, C# and UMLCompanies use Eiffel because ​it provides the right paradigms ​to address ​the construction ​of largehigh-quality object oriented software systemsEiffel ​is more than a language; it is a framework ​for thinking about, specifying, designing and implementing object-oriented software.+Eiffel ​is an industrial strength object-oriented language that has influenced other languages such as Java, C# and UML. It is a pure, statically typed OO language, and is used for complex systems where it provides the right paradigms to address the construction of large, high-quality object oriented software systems. Eiffel is more than a language; it is a framework for thinking about, specifying, designing and implementing object-oriented software. It has built-in support for Design By Contract ​(DbC) that supports the use of specification and validation of designs ​as part of foundational computational thinking. Students who learn the benefits of principled thinking and see the value of the related tools will retain these lessons throughout their careers. ​  
 + 
 +[[http://​eiffel.eecs.yorku.ca|http://​eiffel.eecs.yorku.ca]] 
 +====== PVS ====== 
 + 
 +PVS (Prototype Verification System) ​is a specification ​language ​and theorem prover for validating specifications. PVS helps engineers to design coherent specifications,​ and to predict the behaviour of systems satisfying the specifications — before implementing them. PVS provides interactive assistance to prove theorems ​that validate the specifications/​models. PVS has been used by OPG to certify nuclear reactors, by NASA for space/​avionic systems, and in a large number of other mission critical applications. PVS is both a language and an inference system. The language is a typed higher order logic, featuring undecidable type checking. You cannot write code (such as Java, Ruby or Haskell)You can only write mathematics. It thus forces one to write specifications of systems (i.e. what systems do free of implementation detail) and not how they do it. Furthermore,​ PVS can so some automatic syntax, typing and other checks that helps ensure that specifications are meaningful. PVS can then be used to validate ​the specifications. PVS was featured in the movie [[http://​shemesh.larc.nasa.gov/​people/​cam/​TheMartian/​|The Martian]]. 
 + 
 +[[http://​pvs.eecs.yorku.ca|http://​pvs.eecs.yorku.ca]] 
 + 
 +====== TLA+ ====== 
 + 
 +TLA stands for the Temporal Logic of Actions. TLA+ is the TLA specification language and the PlusCal algorithm languagetogether with their associated toolsTLA+ is based on the idea that the best way to describe things formally is with simple mathematics,​ and that specification ​language ​should contain as little as possible beyond what is needed to write simple mathematics precisely. TLA+ is especially well suited ​for writing high-level specifications of concurrent and distributed systems. 
 + 
 +[[http://​tla.eecs.yorku.ca|http://​tla.eecs.yorku.ca]]
start.1468338643.txt.gz · Last modified: 2016/07/12 15:50 by jonathan