Фэндом


Успехи в конструировании и производстве компьютерной техники предоставили многим людям возможность напрямую работать с компьютерами. Нужно подобное продвижение в конструировании и производстве компьютерных программ для того чтобы взаимодействие с компьютером было продуктивным настолько насколько это возможно. Система Смолток - это результат десятилетия исследований по созданию компьютерных программ предназначенных для высокофункционального и интерактивного взаимодействия с персональным компьютером. Данная книга это первое детальное описание системы Смолток. Она делится на четыре главные части:

Первая часть - обзор концепции и синтаксиса языка программирования.

Вторая часть — аннотированое и иллюстрированное определение функциональности системы.

Третья часть — пример разработки и реализации небольшого приложения.

Четвёртая часть - определение виртуальной машины Смолтока.

Первая часть вводит подход Смолтока к представлению информации и манипулированию ей. Словарь с помощью которого обсуждается Смолток состоит из пяти слов — объект, сообщение, класс, экземпляр и метод. Определяются данные термины и вводится синтаксис языка программирования Смолток.

Вторая часть книги содержит описания различных видов объектов уже присутствующих в системе программирования Смолтока. Новые виды объектов могут быть добавлены программистом, но большой набор объектов уже содержится в системе. Приводятся сообщения которые можно посылать любому виду объектов, также приведён комментарий для них и пример использования.

Третья часть книги это пример добавления в систему новых видов объектов. Она описывает добавление приложения для model discrete, моделей управляемых событиями такими как мойка автомобилей, банки или информационные системы. Некоторые читатели могут найти полезным прочесть третью часть книги сразу после чтения первой части, заглядывая в определение языка во второй части когда не ясно значение предложений Смолтока.

Четвёртая часть книги описывает как может быть реализована виртуальная машина для Смолтока. Данная виртуальная машина предоставляет объектно-ориентированное хранилище, ориентированную на сообщения обработку данных и графически ориентированное взаимодействие. Она в основном интересна читателям которые хотят реализовать систему Смолток, или читателям которые хотят детально понимать реализацию ориентированной на сообщения системы.

Задача написания книгиПравить

Написание данной первой книги о системе Смолток было сложной задачей, в основном из за sociology of the system's creation, и также из за необходимости людей в различной информации о такой системе. Мы можем разделить различные причины сложности данной задачи на четыре категории:

  • Смолток это предвосхищение.
  • Смолток основан на малом количестве концепций, но определяется с помощью необычной терминологии.
  • Смолток это графическая интерактивная среда.
  • Смолток это большая система.

Смолток это предвосхищениеПравить

В начале 1970-х годов в Xerox Palo Alto Research Center Learning Research Group началась работа по поиску путей с помощью которых различные люди смогли бы эффективно и успешно использовать мощность компьютеров. В 1981 название группы було изменено на Software Concepts Group or SCG. Задачей SCG было создание мощной информационной системы, такой чтобы пользователь мог загружать в неё информацию, получать к ней доступ и управлять ей и чтобы система могла развиваться в соответствии с идеями пользователя. Количество и виды компонентов системы должны увеличиваться в соответствии с увеличением осведомлённости пользователя об эффективном использовании системы.

Стратегия SCG по реализации данной задачи была сконцентрирована на двух принципиальных областях исследования: язык описания (язык программирования) который служит интерфейсом между моделями в голове пользователя и моделями в оборудовании компьютера, и на языке для взаимодействия (интерфейс пользователя) который согласовывает систему взаимодействия человека и компьютера. Исследования Смолтока следовало двух- или четырёх-годичному циклу: создать систему соответствующую текущему пониманию; реализовать приложения которые проверяют возможности системы по поддержанию данных приложений; и в конце основываясь на полученном опыте переформулировать понимание о нужных программах и перепроектировать язык программирования и/или интерфейс пользователя.

Система Смолток прошла через пять таких циклов. Исследования до сих пор продолжаются. Мы надеемся что существование детального описания результатов текущих исследований поможет сообществу работающему в соответствии с видинием SCG. Продолжающееся развитие исследований означает что программы описанные в данной книге это "движущиеся цели" и информация в данной книге представляет только остановка на длинном пути. Задерживание поезда на станции достаточно долго чтобы написать о нём книгу делает задачу написания книги сложной.

Смолток основан на малом количестве концепцийПравить

Смолток основан на малом количестве концепций, но определяется с помощью необычной терминологии. Из за единообразной ориентации системы на концепцию объект-сообщение, присутствует немного новых концепций программирования для изучения нужных для понимания Смолтока. С одной стороны, это значит что читатель может рассмотреть все концепции быстро и затем изучать различные способы с помощью которых эти концепции применяются в системе. Эти концепции представляются при помощи определения пяти слов упомянутых ранее которые создают словарь Смолтока - объект, сообщение, класс, экземпляр и метод. Эти пять слов определяются в терминах остальных, так что это выглядит так что читатель должен знать всё до понимания чего-либо.

Смолток это средаПравить

Смолток это графическая, интерактивная среда программирования. Как suggested видинием персонального компьютера, Смолток разработан так что каждый компонент системы доступен пользователю и может быть представлен различными способами для обзора и манипулирования. Задача интерфейса пользователя в Смолтоке - попытка создать визуальный язык для каждого объекта. Оборудование нужное для системы Смолток включает графический экран с высоким разрешением и указывающее устройство такое как graphics pen или мышка. При помощи данных устройств пользователь может выбирать информацию видимую на экране и запускать сообщения для взаимодействия с этой информацией. Один из способов представления деталей системы Смолток это начать с интерфейса пользователя и описывать каждую возможность доступных объектов. Такое представление можно начать с сценариев по которым программист может взаимодействовать с системой. Каждый сценарий будет снимком динамической системы. В линейном, статическом способе книга будет пытаться представить динамику множества путей доступа к большому и разнообразному количеству информации.

Данная сторона системы является важной частью того что предоставляет Смолток как среда написания программ. Однако, для объяснения способа работы графического интерфейса пользователя, читатель должен вначале понимать язык программирования. Поэтому данная книга изменяет представление системы начиная с самого языка. Информация об объектах системы которые поддерживают интерфейс пользователя отделена и, за исключением корневых классов графики, не представлена в данной книге. Другая книга по Смолтоку об интерфейсе пользователя представляет детальное обсуждение реализации данных объектов системы (Смолток: интерактивная среда разработки (Smalltalk-80: The Interactive Programming Environment by Adele Goldberg))

Смолток это большая системаПравить

Система Смолток состоит из многих компонентов. Она включает объекты которые предоставляют функциональность обычно относимую к операционной системе: автоматическое управление памятью, файловая система, управление монитором, редактирование текста и изображений, ввод с клавиатуры и указывающего устройства, отладчик, a performance spy, планировщик процессора, компиляция и декомпиляция. Существует множество видов объектов о которых нужно знать.

Смолток построен по модели взаимодействующих объектов. Большое приложение рассматривается как состоящее из тех же единиц что и вся система. Взаимодействие между наиболее простыми объектами рассматривается также как и высокоуровневое взаимодействие между компьютером и пользователем. Объекты поддерживают модульность — работа любого объекта не зависит от внутренних деталей других объектов. Сложность системы преодолевается при помощи минимизации взаимозависимостей между компонентами системы. Сложность также преодолевается при помощи группирования подобных компонентов; в Смолтоке это достигается при помощи классов. Классы это главный механизм расширения Смолтока. Определённые пользователем классы становятся частью системы на тех же правах что и корневые классы системы. Подклассы поддерживают возможность дробить систему без повторения тех же идей в различных местах.

Управление сложность это ключевой вклад подхода Смолтока в программировании. Первые пример языка очень простые, взяты из типовых упражнений по программированию представленных во многих книгах по различным языкам программирования. Поэтому эти примеры очень короткие, иллюстрирующие одну или две идеи. При помощи этих примеров нельзя увидеть достоинства Смолтока. Кроме того, они могут быть выполнены на другом языке и, возможно, даже лучше. Достоинства Смолтока становятся видимыми при разработке и реализации больших приложений, или когда производится модификация самой системы. Напрмер, рассмотрим словарь, часто используемую структуру данных в системе Смолток. Можно разработать, реализовать, отладить и установить новое представление словарей без нарушения работы запущенной системы. Это возможно до тех пор пока интерфейс сообщений при помощи которого происходит взаимодействие с другими системами не нарушается.

Система Смолток поддерживает множество интересных инструментов разработки, в особенности классы и экземпляры как единицы организации и разделения информации, и подклассы как способ наследования и улучшения существующих возможностей. Вместе с интерактивным способом процесса создания программы, система Смолток предоставляет мощное средство для макетирования приложений и улучшения существующих.

Написание книги о такой мощной системе предполагает что некоторые вещи опущены. Повторим что мы не описываем в данной книге детали интерфейса программиста и способа которым создаются графические приложения. Мы фокусируемся на языке и корневых классах системы.

Для чего читать эту книгуПравить

Эта книга предполагает от читателя некоторое количество компьютерной граммотностьи. Мы предполагаем что читатель

  • знает почему системы программ это хорошая идея;
  • это программист или разработчик языков программирования который значет хорошо хотя бы один язык;
  • знаком с идеей синтаксиса выражений и выполнения выражений интерпретатором;
  • знаком с набором инструкций компьютера, управляющими структурами такими как итерация и рекурсия и знаком с ролью структур данных;
  • заинтересован в улучшении контроля над представлением и манипуляцией информации в компьютерной системе;
  • ищет новые идеи создания систем программ (приложений) которые поддерживают возможность выражать программные решения способом близким к натуральному представлению решения.

Часть данной книги для программистов интересующихся как реализовать язык и его среду разработки на данном типе оборудования. Из за наличия различных архитектур задаче "портативности" придаётся особое значение. Портативность означает что толька малая часть функциональности должна действиетльно быть реализована при помощи оборудования для того чтобы реализовать работающую систему. Данная книга даёт пример достижения данной портативности.

Sharing the creditПравить

The Smalltalk-80 system is based on ideas gleaned from the Simula language and from the visions of Alan Kay, who first encouraged us to try to create a uniformly object-oriented system. The current embodiment of these ideas is the result of two related activities: research carried out at the Xerox Palo Alto Research Center, and cooperation with a group of stalwart participants in a project to review the research results.

In August, 1980, several hardware manufacturers were invited to review the pages of our second attempt to write a book about Smalltalk and its latest realization. Our first attempt described the Smalltalk-76 system and was abandoned in response to our desire to create a more portable system for distribution outside the Xerox research centers. Our second attempt was a book that was partially historical in nature, partially statements about a vision for personal computing, and partially functional specification for a new Smalltalk system. We thought we would entitle it Smalltalk Dreams and Schemes as a reflection of the dual purpose of our writing. The manufacturers who patiently reviewed our material were from Apple Computer, Digital Equipment Corporation, Hewlett-Packard, and Tektronix. These companies were chosen because they designed hardware systems. We hoped that, in reviewing the material, they would learn about our unusual software goals and would devote some time to the problem of creating hardware systems specifically for Smalltalk-like systems. We knew that hardware systems currently on the market, and even ones planned for the near future, would have insufficient power to support our goals. Instead of designing software to fit the hardware we could buy, we decided to try to get the hardware designed to fit the software we wanted.

The manufacturers assigned personnel from their research laboratories to the task of reading the second version of the book. This book has benefited from much discussion and hard work on the part of these reviewers. The early part of the book was completely rewritten as a result of their constructive criticism. The reviewers are responsible for our continuing to try to complete the distribution process and for our completing this book, but not for any faults in its ultimate form. Each set of reviewers implemented the system at least once in order to test our specification of the Smalltalk-80 virtual machine. The current specification reflects their careful review.

As authors of this book, we took responsibility for creating the written description of the Smalltalk-80 system. But credit for the creation of the system goes to all the members of the Software Concepts Group. To these people, we state our debt, our thanks, and our love. Dan Ingalls manages the overall systems design and development effort. Peter Deutsch on the Dorado, Glenn Krasner on the Alto, and Kim McCall on the Dolphin (also called the Xerox 1100 Scientific Information Processor), contributed expertise to the virtual machine implementations on the Xerox computers. User interface ideas, implementations, and management of the release process were carried out by James Althoff (user interface development), Robert Flegal (design of the graphics editor), Ted Kaehler (while laboring over virtual memory problems), Diana Merry (our text guru), and Steve Putz (version management). Peggy Asprey, Marc Meyer, Bill Finzer, and Laura Gould, in trying to keep their applications studies in pace with the system development, tested major changes. Copious reading of the manuscript at various stages of inception was done by Michael Rutenberg, Michael Madsen, Susanne Bodker, and Jay Trow. Editing assistance was given by Rachel Rutherford and Janet Moreland.

Chapter 18 on the Smalltalk-80 graphics kernel was revised from a paper written by Dan Ingalls for Byte magazine; Chapter 30 was initially written by Larry Tesler. Graphical images in Chapters 18, 19, and 20, were created by Robert Flegal (especially Figures 18.1 and 20.1), Dan Ingalls, and Adele Goldberg (especially Figures 20.2 and 20.3). Steve Putz offered valuable assistance in creating the images for Chapter 17. Images for the openings to Parts One and Two, and all images for the opening pages of Chapters 1 through 20, were created by Adele Goldberg. Images for Parts Three and Four, and all images for the opening pages of Chapters 21 through 30, were created by Robert Flegal. These images were created using the Smalltalk-80 graphics editor in combination with a low-resolution image scanner designed by Joseph Maleson.

To the participants in the review process, we also give our thanks. With them we have set an example of cooperative scientific exchange that we hope will evolve and continue to grow. Encouragement to begin this project came from our laboratory manager, Bert Sutherland. Reviewers and implementors were: from Apple, Rick Meyers and David Casseres; from Digital Equipment Corporation, Stoney Ballard, Eric Os-man, and Steve Shirron; from Hewlett-Packard, Alec Dara-Abrams, Joe Falcone, Jim Stinger, Bert Speelpenning, and Jeff Eastman; and from Tektronix, Paul McCullough, Allen Wirfs-Brock, D. Jason Penney, Larry Katz, Robert Reed, and Rick Samco. We thank their companies and administrators for their patience and willingness to depart from industry standards, at least for one brief moment—at Apple, Steve Jobs and Bruce Daniels; at Digital, Larry Samburg; at Hewlett-Packard, Paul Stoft, Jim Duley, and Ted Laliotis; and at Tektronix, Jack Grimes, and George Rhine. The folks from Tektronix prepared detailed reviews on audiotape, so we could not only see the errors of our ways, but hear them as well!

It is our hope that this book and its companion will facilitate the distribution of the Smalltalk concepts in the computer community. If it succeeds, then that success is shared by us with our colleagues at the Xerox Palo Alto Research Center.

Postscript on the production of this book The original text for this book was supplied to the publisher on magnet- the Production ic tape. The tape included formatting codes identifying the various of This Book types of textual entity in the manuscript. The actual format of each type of entity was supplied by the publisher. This process worked smoothly thanks in large part to the efforts and patience of Eileen Colahan of the International Computaprint Corporation and Fran Fulton, our production editor, as well as the cooperation of Sue Zorn, Marshall Henrichs, and Jim DeWolf of Addison-Wesley.

Many of the graphical images that represent Smalltalk-80 screen graphics and the Part and Chapter artwork were printed on the Plate-maker system developed by Gary Starkweather and the Imaging Sciences Laboratory of PARC. We would like to thank Gary, Eric Larson, and Julian Orr for making the Platemaker available to us. Adele Goldberg David Robson Palo Alto, California January, 1983

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

Викия не будет доступна для последующих модификаций. Если вы желаете продолжать работать со страницей, то, пожалуйста, отключите расширение для блокировки рекламы.

Также на Фэндоме

Случайная вики