Бесплатный хостинг картинок 4imgs.ru |
Smalltalk
Smalltalk (произносится [смолток]) — объектно-ориентированный язык программирования с динамической типизацией, разработанный в Xerox PARC Аланом Кэйем, Дэном Ингаллсом, Тедом Кэглером, Адель Голдберг, и другими в 1970-х годах. Язык был представлен как Smalltalk-80. Smalltalk продолжает активно развиваться и собирает вокруг себя сообщество пользователей. Smalltalk оказал большое влияние на развитие многих других языков, таких как: Objective-C, Actor, Java, Groovy и Ruby. Многие идеи 1980-х и 1990-х по написанию программ появились в сообществе Smalltalk. К ним можно отнести рефакторинг, шаблоны проектирования (применительно к ПО), карты Класс-Обязанности-Взаимодействие и экстремальное программирование в целом. Основатель концепции Wiki, Вард Каннингем, также входит в сообщество Smalltalk.
Основные идеиОсновными идеями Smalltalk являются:
Smalltalk также использует другие современные идеи:
Одной из неожиданных особенностей Smalltalk является то, что традиционные конструкции: if-then-else, for, while, и т. д. не являются частью языка. Все они реализованы с помощью объектов. Например, решение принимается с помощью посылки сообщения
и несколько синтаксических конструкций для определения объектов-литералов и временных переменных. Чтобы лучше понять, как работает механизм обмена сообщениями, можно представить каждый объект как веб-сервер, отвечающий на запросы. При этом, на запросы можно просто выдавать заранее предопределённый ответ, аналог этому — выдача веб-страницы, расположенной по определённому пути; можно перенаправить запрос-сообщение другому объекту, аналог — прокси-сервер; изменить запрос по определённым правилам, аналог — техника url rewriting. Если для реакции на сообщение нет предопределённого метода, то вызывается метод #doesNotUnderstand:, так же, как веб-сервер открывает страницу с сообщением об ошибке, если задан несуществующий путь к веб-странице. Следующий пример, показывающий нахождение гласных в строке, иллюстрирует стиль Smalltalk. Символ aString vowels aString := 'This is a string'. vowels := aString select: [:aCharacter aCharacter isVowel]. В последней строке посылается сообщение select: aBlock newCollection newCollection := self species new. self do: [:each (aBlock value: each) ifTrue: [newCollection add: each]]. ^newCollection Он осуществляет перебор своих элементов (это метод rectangles aPoint rectangles := OrderedCollection with: (Rectangle left: 0 right: 10 top: 100 bottom: 200) with: (Rectangle left: 10 right: 10 top: 110 bottom: 210). aPoint := Point x: 20 y: 20. collisions := rectangles select: [:aRect aRect containsPoint: aPoint]. ИсторияSmalltalk был создан группой исследователей возглавляемой Аланом Кэйем в исследовательском центре Xerox PARC. Первая реализация, известная как Smalltalk-71, была создана за несколько месяцев как результат спора о том что язык программирования, основанный на идее посылки сообщений, подсказанной Симулой, должен реализовываться на «странице кода». Более поздняя версия, действительно использованная для исследовательской работы, известна сейчас как Smalltalk-72. Его синтаксис и модель исполнения сильно отличались от современного Smalltalk, настолько, что его надо рассматривать как другой язык. После существенных переработок, которые зафиксировали несколько сторон семантики выполнения для увеличения эффективности, была создана версия известная как Smalltalk-76. В этой версии добавились наследование, синтаксис более близкий к Smalltalk-80, и среда разработки включающую большинство инструментов знакомых сейчас Smalltalk-ерам. В Smalltalk-80 были добавлены метаклассы, что делало фразу «всё — объекты» истинной путём связывания с индивидуальными классами свойств и поведения (например, поддержки различных способов создания экземпляров). Smalltalk-80 был первой версией, доступной за пределами PARC — сначала как Smalltalk-80 Version 1, розданный небольшому количеству компаний и университетов для «экспертной оценки». Позже, в 1983 году, были выпущены общедоступная реализация, известная как Smalltalk-80 Version 2 — в виде образа (независимый от платформы файл, содержащий объекты) и спецификации виртуальной машины. Сейчас существует две реализации Smalltalk, являющиеся прямыми потомками Smalltalk-80 — Squeak и VisualWorks.[1] Образ Smalltalk-80 version 2 запущен на Hobbes, виртуальной машине ST-80, реализованной на VisualWorks. «Здравствуй, мир»Простой примерTranscript show: 'Здравствуй, мир!' Этот пример показывает две стороны Smalltalk. Во-первых, посылка сообщения: в Smalltalk все действия производятся путём посылки сообщений объектам. В данном случае сообщение это Во-вторых, этот пример показывает основной синтаксис посылки сообщения в Smalltalk: <получатель сообщения> <пробел> <сообщение>. В отличие от C++, нет точек после получателя, и нет скобок вокруг аргументов. Пример объектаОпределение классаObject subclass: #MessagePublisher instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Smalltalk Examples' Это простое определение класса с определением имени и категории. Обычно среда разработки предоставляет заготовку с большей частью текста этого примера. Определение методаpublish Transcript show: 'Hello, world!' Это определение метода с именем Вызов метода
MessagePublisher new publish
В данном примере создаётся экземпляр класса Реализации
Примечания
СсылкиИмеется викиучебник по теме «Smalltalk»
Литература
Категории:
Источник: Русская википедия 2012 | ||||||||||||||||||||||||||||||
Вы можете разместить ссылку на этот материал у себя на сайте, блоге или форуме
Похожие статьи SmallTalkSmallTalk Smalltalk Семантика: объектно-ориентированная Появился в: 1980 г. Автор(ы): Алан Кэй, Дэн Ингаллс, Xerox PARC Типизация данных: динамическая Основные реализации: Испытал влияние: Simula, Sketchpad, Lisp Повлиял на: AppleScript, C#, Groovy, Java, Python, Scala, смолток]) — объектно-ориентированный язык программирования с динамической типизацией, разработанный в Xerox PARC Аланом Кэйем, Дэном Ингаллсом, Тедом Кэглером, Адель Голдберг, и другими в 1970-х годах. Язык был представлен как Smalltalk-80 и с тех пор широко используется. Smalltalk продолжает активно развиваться и собирает вокруг себя Smalltalk Smalltalk Smalltalk Семантика: объектно-ориентированная Появился в: Разработка начата в 1969 г., стал доступен для широкого использования в 1980 Автор(ы): Алан Кэй, Дэн Ингаллс, Xerox PARC Типизация данных: динамическая Основные реализации: Pharo, Squeak, VisualWorks, GNU Smalltalk Испытал влияние: Simula, Sketchpad, Lisp, Logo Повлиял на: Objective-C, AppleScript, C#, Dylan, Groovy, Io, Java, Lisaac, NewtonScript, Python, Ruby, Scala, Self Smalltalk (произносится [смолток]) — объектно-ориентированный язык программирования с динамической типизацией, разработанный в Xerox PARC Аланом Кэйем, Дэном Ингаллсом, Тедом Кэглером, Адель Голдберг, и Smalltalk Smalltalk Smalltalk Семантика: объектно-ориентированная Появился в: Разработка начата в 1969 г., стал доступен для широкого использования в 1980 Автор(ы): Алан Кэй, Дэн Ингаллс, Xerox PARC Типизация данных: динамическая Основные реализации: Pharo, Squeak, VisualWorks, GNU Smalltalk Испытал влияние: Simula, Sketchpad, Lisp, Logo Повлиял на: Objective-C, AppleScript, C#, Dylan, Groovy, Io, Java, Lisaac, NewtonScript, Python, Ruby, Scala, Self Smalltalk (произносится [смолток]) — объектно-ориентированный язык программирования с динамической типизацией, разработанный в Xerox PARC Аланом Кэйем, Дэном Ингаллсом, Тедом Кэглером, Адель Голдберг, и Smalltalk Smalltalk Smalltalk Семантика: объектно-ориентированная Появился в: Разработка начата в 1969 г., стал доступен для широкого использования в 1980 Автор(ы): Алан Кэй, Дэн Ингаллс, Xerox PARC Типизация данных: динамическая Основные реализации: Pharo, Squeak, VisualWorks, GNU Smalltalk Испытал влияние: Simula, Sketchpad, Lisp, Logo Повлиял на: Objective-C, AppleScript, C#, Dylan, Groovy, Io, Java, Lisaac, NewtonScript, Python, Ruby, Scala, Self Smalltalk (произносится [смолток]) — объектно-ориентированный язык программирования с динамической типизацией, разработанный в Xerox PARC Аланом Кэйем, Дэном Ингаллсом, Тедом Кэглером, Адель Голдберг, и Язык Smalltalk Язык Smalltalk Smalltalk Семантика: объектно-ориентированная Появился в: 1980 г. Автор(ы): Алан Кэй, Дэн Ингаллс, Xerox PARC Типизация данных: динамическая Основные реализации: Испытал влияние: Simula, Sketchpad, Lisp Повлиял на: AppleScript, C#, Groovy, Java, Python, Scala, смолток]) — объектно-ориентированный язык программирования с динамической типизацией, разработанный в Xerox PARC Аланом Кэйем, Дэном Ингаллсом, Тедом Кэглером, Адель Голдберг, и другими в 1970-х годах. Язык был представлен как Smalltalk-80 и с тех пор широко используется. Smalltalk продолжает активно развиваться и собирает вокруг себя Искать все статьи, похожие на текущую (Smalltalk) |
Универсальная энциклопедия 2012 Карта сайта Страница создана за 0.062174 сек. Всего документов включено в базу знаний: 5150576 |