Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Eiffel. Краткий обзор

div.main {margin-left: 20pt; margin-right: 20pt}

Eiffel. Краткий обзор


Лапшин А.


1. Что такое Eiffel ?


Eiffel это Обьектно-Ориентированный язык, предназначенный для проектирования и разработки высококачественного программного обеспечения. Наиболее полно преимущества Eiffel раскрываются в больших и сложных проектах. Eiffel это не расширение или подмножество какого либо другого языка, это самостоятельный язык прграммирования. Частично, то что заложено в Eiffel, позаимствовано из более ранних языков - таких как Simula, Ada, Pascal...

Eiffel имеет стройную Обьектно-Ориентированную модель, различные методологии поощряющие написание хороших Обьектно-Ориентированных программ. Среди таких методологий особенно выделяется "Design By Contract" - которая по сути является "сердцем" Eiffel. Несмотря на очевидные достоинства данной методологии она достаточно медленно проникает в мир разработки программного обеспечения. До недавнего времени в чистом виде это методология была реализована только в Eiffel. На сегодняшний день применение "Design By Contract" можно увидеть, например, в скриптовом языке Ruby, компания ISE(Interactive Software Engineering) разрабатывает для Microsoft .NET "Contract Wizard" позволяющий использовать преимущества технологии "Design By Contract" с любым .NET компонентом. Также существуют попытки привнести эту методологию в такие традиционные языки как C++, Java.

Кроме того что Eiffel является языком программирования, он может рассматриваться как метод разработки программного обеспечения.

2. Как появился Eiffel ?


Eiffel был создан Бертрандом Мэйером (Bertrand Meyer) и поддерживается компанией под его руководством - Interactive Software Engineering (ISE) of Goleta, CA. Принципы языка были сформулированы в 1985 году и уже в 1986 году появился первый компилятор. Свое имя Eiffel получил в честь конструктора Густава Эйфеля(Gustave Eiffel) - который спроектировал и построил знаменитую французскую башню.

3. Какие существуют реализации языка на сегодняшний день ?


Наиболее распространенными Eiffel компиляторами являются продукты компаний ISE( www.eiffel.com ) ISE Eiffel, Object-Tool( www.object-tools.com ) - Visual Eiffel, Halstenbach ACT GmbH(www.halstenbach.com) - ISS Base и свободно распространяемый компилятор SmallEiffel ( http://smalleiffel.loria.fr/ ). Часть из этих компиляторов компилируют Eiffel программы в промежуточный код на C и затем полученный код компилируется в выполняемые файлы. Компилятор VisualEiffel от Object Tools генерирует непосредственно выполняемые файлы. Так же некоторые из компиляторов могут компилировать в Java байт - код. Вместе с выходом Microsoft .NET Beta 2 вышла версия компилятора ISE Eiffel 5.0 которая поддерживает генерацию с языка Eiffel# в байт код(MSIL) для Microsoft .NET. (Eiffel# это диалект языка Eiffel поддерживающий пока не все возможности Eiffel - было анонсировано, что со временем Eiffel# будет обладать теми же возможностями что и Eiffel)

4. Основные свойства Обьектно-ориентированного языка Eiffel:


Design By Contract - возможность задать prepost - conditions для методов и invariant для класса Все обьекты в Eiffel имеют общий базовый класс. Статическая система контроля типов и динамическое связывание. Сборщик мусора Эффективная реализация множественного наследования - решена проблема с совпадающими именами методов, проблема двойного наследования. Гибкий контроль области видимости - возможность для каждого метода указать типы клиентов которые имеют доступ к этому методу. Система обработки исключительных ситуаций - ориентирована именно на обработку исключительных ситуаций и делает использование исключений в других целях неудобным. Unified Access Principle - минимизация последствий для кода клиента при смене реализации атрибутов Создание интерфейсных классов - абстрактные классы в C++. Параметризованные типы - шаблоны в C++, generic types. Ковариантное переопределение параметров. Более мощный аналог delegates чем в С#. Expanded values (boxed/unboxed values в С#). Простой механизм работы с многопоточными приложениями(SCOOP).

5. Где найти дополнительную информацию ?


"Object-Oriented Software Construction", Bertrand Meyer, Prentice Hall, 2nd edition 1997.

"Eiffel: The Language". Bertrand Meyer

"Invitation to Eiffel". From ISE.

"An Overview of Eiffel". Richard Paige.

"Object-Oriented Software Engineering with Eiffel" Jean-Marc Jezequel.

http://www.elj.com/

http://www.cetus-links.org/oo_eiffel.html

www.eiffel.com

comp.lang.eiffel



  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте