Вышла (http://www.eiffel.com/general/news/2012/eiffelstudio71_relea...) новая версия интегрированной среды разработки для языка Eiffel (http://ru.wikipedia.org/wiki/Eiffel) - EiffelStudio 7.1. Eiffel - это оъектно-ориентированный язык, поддерживающий технологию проектирования по контракту (http://www.rsdn.ru/article/design/Code_Contracts.xml), основанную на принципе (http://habrahabr.ru/post/83269/) подстановки Барбары Лисков. Технология проектирования по контракту и юнит-тесты являются взаимодополняющими (http://habrahabr.ru/post/146702/), позволяя повысить корректность ПО.
Основные характеристики языка Eiffel и среды EiffelStudio:
- Полностью объектно-ориентированный подход, основанный на классах, межклассовые отношения только двух видов: быть клиентом класса и быть наследником класса;
- Статическая типизация, автоматическая сборка мусора, обобщенное программирование;
- В языке Eiffel отсутствуют: глобальные переменные, объединения (union) и структуры, перегрузка методов классов, инструкция goto, неявные преобразования типов, указатели;
- Технология "Проектирование по контракту" (http://www.itlab.unn.ru/file.php?id=646) - предусловия, постусловия, инварианты поддерживаются непосредственно самим компилятором языка (не требуются дополнительные инструменты и библиотеки);
- Поддержка множественного наследования; разрешение конфликта имен (компоненты, наследованные от разных классов имеют одно и тоже имя) путем переименования конфликтующих компонентов у класса наследника; возможность выбора версии компонента при дублируемом наследовании;
- Void-safety (https://www.opennet.ru/soft/VoidSafety.pdf) - технология, позволяющая избавиться от ошибки разыменования пустого указателя с помощью прикрепленных и открепляемых типов, контроль осуществляется (http://eao197.blogspot.com/2009/10/compprog-void-safety-eiff...) компилятором;
- SCOOP (https://www.opennet.ru/soft/SCOOP.pdf) - специальная модель многопоточного программирования, добавляющая всего одно ключевое слово в язык;
- Кроссплатформенная реализация - существуют версии EiffelStudio для FreeBSD, Linux, OpenBSD, Solaris (в том числе и Solaris SPARC), Windows;
- Возможность вызова функций языка C;
- Байткод, полученный в результате компиляции, транслируется в эквивалентные конструкции языка C, которые затем компилируются компилятором языка C, что позволяет добиться высокой скорости выполнения программ;
- Melting Ice Technology - время компиляции при внесении изменений пропорционально объему измененного кода
Из изменений (http://docs.eiffel.com/book/eiffelstudio/release-notes-eiffe...) в новой версии можно отметить:
- Реализована сборка мусора для процессоров SCOOP;
- Добавлен Eiffel Web Framework для построения веб-приложений и сервисов на Eiffel;
- Улучшена передача параметров компилятору и компоновщику для языка C;
- Добавлена поддержка GTK3 c бэкендом HTML5 (предварительная версия);
- Улучшена производительность SCOOP для некоторых типов параллельных вызовов;
- Адаптирована библиотека EiffelVision 2 для создания SCOOP приложений с графическим интерфейсом;
- Добавлена поддержка данных XML в ODBC, улучшена поддержка MySQL.
Существуют две версии EiffelStudio - коммерческая и открытая под лицензией GPL, отличие между ними заключается только в возможности создания приложений с закрытым кодом в коммерческой версии. Свободная версия для различных платформ доступна для скачивания (http://sourceforge.net/projects/eiffelstudio/files/EiffelStu.../).
Дополнение: Опубликован русскоязычный перевод (https://www.opennet.ru/base/dev/eiffel_scoop.txt.html) документации Eiffel по технологии SCOOP.
URL: http://www.eiffel.com/general/news/2012/eiffelstudio71_relea...
Новость: https://www.opennet.ru/opennews/art.shtml?num=34418