|
|
Компьютеры - Контрактное программирование - Реализация в языках программирования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.
Просмотров: 2722
|