|
||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[0] Незнакомый Smalltalk Ю.А. Кирютенко и В.А. Савельев Введение к разговору о языке Smalltalk В качестве первого эпиграфа - типичный разговор российских программистов: 1-ый программист: "Что ты знаешь о языке Smalltalk?" 2-ой программист: "Ничего, я с ним не знаком!" В ходе развития методов создания совершенного программного продукта постепенно возникают новые методологии его построения, которые значительно увеличивают производительность труда программиста, облегчают и дисциплинируют производственные процессы проектирования, модернизации и сопровождения больших прикладных программ. Среди них выделяется такое ныне популярное направление, как объектно-ориентированная методология программирования. Особую роль в популярности этого подхода сыграла его тесная связь с интерфейсами пользователя (особенно графическими), а также включение элементов этой идеологии в популярные сегодня (на персональных компьютерах фирмы IBM) языки программирования C++ и Pascal with Objects фирмы Borland (эти языки некоторые авторы называют "гибридными"). Распространение мощных и доступных по цене персональных компьютеров дало техническую основу для их широкого распространения и применения в программисткой практике. За последние пятилетие в США, Японии и Западной Европе значительно вырос интерес к «чистому объектно-ориентированному языку программирования -языку Smalltalk. Вероятно самое первое издание, посвященное этому языку - августовский выпуск журнала "BYTE" в 1981 году, на обложке которого впервые появился воздушный шар с именем Smalltalk на борту, резво летящий от уединенного острова "общих исследований" к высотам популярности! Сегодня, число ежегодно издающихся книг по объектно-ориентированной методологии программирования и языку Smalltalk там переваливает за сотню. Только в России и теоретические исследования и программистская практика, связанные с этим направлением, широким кругам программистов практически не известны. Книги на русском языке, хотя бы едва-едва затрагивающие эти вопросы, можно пересчитать на пальцах одной руки. В море англоязычных книг, посвященных объектно-ориентированной методологии программирования и языку Smalltalk, выделяется книга, первое издание которой получило "литературный псевдоним" - Голубая Книга (Blue Book). В нашей статье речь пойдет о втором издании этой книги, книги написанной членами группы разработчиков системы Smalltalk-80 Адель Голдберг (Adele Goldberg, Pare Place System) и Дэвидом Робсоном (David Robson, Xerox PARC) "Smalltalk-80: The language, ed.2, Addison-Wesley, 1989", которую можно смело назвать "классикой программистской литературы". Сегодня одна из самых цитируемых книг в данной области, она, несмотря на прошедшие годы, до сих пор все еще остается, на наш взгляд, лучшей книгой об объектно-ориентированной парадигме программирова- Copyright © Ю.А. Кирютенко, В.А. Савельев, 1997. "Смолток в России" URL: http: www.math.rsu.ru/smalltalk/ ния, о ее чистой и полной реализации в языке программирования Smalltalk-80 и о структуре и возможностях самого языка программирования. Книга уникальна уже потому, что предлагает исчерпывающее описание объектно-ориентированной идеологии программирования (часть 1), содержит подробное описание реализации этих идей в объектно-ориентированном языке программирования Smalltalk-80 (часть 2), дает примеры его эффективного использования при создании объектов, имитирующих поведение моделей, управляемых событиями (часть 3). По своему содержанию книга интересна и для тех, кто хотел бы познакомиться только с объектно-ориентированной парадигмой программирования, и для тех, кто использует эту идеологию, независимо от того каким языком программирования - "чистым" или "нечистым" - он пользуется, и для тех, кто сегодня читает лекции и ведет практические занятия по современным языкам программирования в вузе, лицее или школе. Книга, при соответствующем уровне математической и программистской культуры, доступна учащимся старших классов средней школы и студентам младших курсов вуза, за исключением, может быть, третьей части, для понимания которой необходимо прослушать хотя бы небольшой курс по основам теории вероятности и математической статистики. Но книга практически недоступна! Англоязычное издание, или перевод на ряд европейских языков, в России не купить и в библиотеках не найти. Ее перевод на русский язык, сделанный авторами этой статьи, которые по ходу перевода, разработали и читают курсы лекций по данной тематике на механико-математическом факультете Ростовского государственного университета, более года не находит в России издателя. Цель данной публикации - рассказать о том, что у нас пока мало известно, найти единомышленников, и, очень хочется надеяться, найти спонсоров и издателя Голубой Книги (пока почти что сказки) программирования! Попытаемся, перелистывая страницы Голубой Книги, рассказать что же такое Smalltalk, и, одновременно, рассказать немного о содержании самой книги. Smalltalk: Идеология системы Книга - это зеркало. Если в него смотрится обезьяна, то из него не может выглянуть лик апостола. К. Лихтенберг Система Smalltalk-80, начало создания которой формой Xerox из городка Пало Альто, Калифорния, США, восходит к 1970 году, основывается на идеях алгоритмического языка Simula (Симула), и на идеях Элана Кея (Alan Kay), который предложил создать однородную объектно-ориентированную систему программирования, основанную на малом числе взаимосвязанных понятий. Новые и основные понятия - это прежде всего пять слов, составляющие словарь объектно-ориентированного языка программирования: объект, сообщение, класс, экземпляр, метод. Созданный на этой идеологии в начале восьмидесятых Smalltalk-80 характеризуется следующими чертами: •Smalltalk-80 - это язык программирования, чисто реализующий новую парадигму программирования и служащий основой для создания мощной информационной системы, в которой пользователь может хранить, получать и обрабатывать информацию так, что система развивается и расширяется вместе с развитием представлений и требований пользователя к системе. •Smalltalk-80 - это язык, основанный на небольшом числе понятий, которые мож- но быстро объяснить и продемонстрировать различные способы их применения, но каждое из которых определяется в терминах остальных, и получается, что читатель должен знать "все", прежде чем узнает что-либо. •Smalltalk-80 - это графическая, интерактивная среда программирования, в которой каждый доступный пользователю компонент системы может быть представлен осмысленным образом для изучения и обработки, а встроенный в систему интерфейс пользователя поддерживает создание визуального языка для представления каждого объекта. •Smalltalk-80 - это очень большая, но просто сконструированная система, объекты которой, обеспечивают функции, обычно присущие операционной системе: автоматическое управление памятью, файловую систему, управление дисплеем, редактирование текстов и графических образов, ввод с клавиатуры и с мыши, отладчик, планирование процессов, компиляцию и декомпиляцию, и много других видов объектов, которые необходимо изучить. •Smalltalk-80 - это система, созданная в соответствии с моделью взаимодействующих объектов. Объекты системы поддерживают принцип модульности: функционирование любого объекта не зависит от внутренних деталей других объектов. Минимизация взаимной зависимости компонентов системы снижает ее сложность, для дальнейшего снижения которой используется объединение одинаковых объектов в классы. Классы являются основным механизмом расширения системы Smalltalk-80. Определяемые пользователем классы становятся частью системы на тех же основаниях, что и классы ядра системы. Понятие подкласса позволяет разделить систему на составляющие и для того, чтобы избежать повторений одних и тех же понятий в разных местах, и для того, чтобы сами классы объединить в единую структуру, называемую иерархией классов. Именно управление сложностью - один из основных вкладов языка Smalltalk-80 в современное программирование! Smalltalk: Структура системы "Кто долго размышляет, тот всегда находит лучшее решение." И.В. Гете Объекты и сообщения Объект - компонент системы. Объектами, например, являются: числа, строки символов, очереди, словари, прямоугольники, каталоги файлов, редакторы текстов, программы, компиляторы, вычислительные процессы, финансовые отчеты, визуальные представления информации ... Каждый объект состоит из некоторой принадлежащей ему памяти и множества операций, таким образом объединяя в себе (инкапсулируя) и данные и операции по их обработке. Природа операций над объектом зависит от того, что представляет объект. Объекты, представляющие числа, используют арифметические функции. Объекты, представляющие структуры данных, хранят и обрабатывают информацию. Сообщение - запрос к объекту выполнить одну из операций. Сообщение определяет, какая требуется операция, но не определяет как эта операция должна выполняться. Только получатель - объект, которому послано сообщение, опреде- |
Среды: Smalltalk80 MicroCap Local bus Bios Pci 12С ML Микроконтроллеры: Atmel Intel Holtek AVR MSP430 Microchip Книги: Емкостный датчик 500 схем для радиолюбителей часть 2 (4) Структура компьютерных программ Автоматическая коммутация Кондиционирование и вентиляция Ошибки при монтаже Схемы звуковоспроизведения Дроссели для питания Блоки питания Детекторы перемещения Теория электропривода Адаптивное управление Измерение параметров Печатная плата pcad pcb Физика цвета Управлении софтверными проектами Математический аппарат Битовые строки Микроконтроллер nios Команды управления выполнением программы Перехода от ahdl к vhdl Холодный спай Усилители hi-fi Электронные часы Сердечники из распылённого железа Анализ алгоритмов 8-разрядные КМОП Классификация МПК История Устройства автоматики Системы и сети Частотность Справочник микросхем Вторичного электропитания Типы видеомониторов Радиобиблиотека Электронные системы Бесконтекстный язык Управление техническими системами Монтаж печатных плат Работа с коммуникациями Создание библиотечного компонента Нейрокомпьютерная техника Parser Пи-регулятор ч.1 ПИ-регулятор ч.2 Обработка списков Интегральные схемы Шина ISAВ Шина PCI Прикладная криптография Нетематическое: Взрывной автогидролиз Нечеткая логика Бытовые установки (укр) Автоматизация проектирования Сбор и защита Дискретная математика Kb радиостанция Энергетика Ретро: Прием в автомобиле Управление шаговым двигателем Магнитная запись Ремонт микроволновки Дискретные системы часть 2 | ||