Интернет магазин китайских планшетных компьютеров



Компьютеры - Контрактное программирование - Реализация в языках программирования

23 января 2011


Оглавление:
1. Контрактное программирование
2. Описание
3. Реализация в языках программирования



Поддержка DbC на языковом уровне

Языки, изначально поддерживающие средства для контрактного программирования:

  • Clojure
  • Cobra
  • D
  • Eiffel
  • Fortress
  • Lisaac
  • Nice
  • Oxygene
  • Sather
  • SPARK посредством статического анализа программ на Аде
  • Spec#
  • SeC
  • J@va
  • CofoJA

Поддержка DbC с помощью сторонних библиотек

  • C и C++ посредством CTESK, библиотеки Contract++, препроцессора DBC for C, GNU Nana или компилятора C++ от Digital Mars.
  • C# посредством Code Contracts
  • Java посредством JavaTESK, iContract2, Contract4J, jContractor, Jcontract, C4J, CodePro Analytix, STclass, Jass preprocessor, OVal with AspectJ, Java Modeling Language, SpringContracts для Spring Framework, или Modern Jass, Custos с использованием AspectJ, JavaDbC с использованием AspectJ, cofoja.
  • JavaScript посредством Cerny.js или ecmaDebug.
  • Lisp
    • Common Lisp с помощью макросов или протокола метаобъектов CLOS.
    • Scheme посредством расширения PLT, а именно тот факт, что любое нарушение контракта должно указывать на виновного и иметь точное объяснение.
  • Nemerle с помощью макросов.
  • Perl с помощью CPAN-модулей Class::Contract или Carp::Datum.
  • Python с помощью пакета zope.interface, PyDBC или Contracts for Python.
  • Ruby с помощью DesignByContract, Ruby DBC или ruby-contract.

Общие инструменты

  • Perfect Developer посредством Perfect specification language может проверять контракт, используя статический анализ кода и генерируя программы на языках типа C++ и Java.


Просмотров: 2604


<<< Декомпозиция