Скачать бесплатно книги - программирование.

Скачать бесплатно книги - программирование.


загрузка...






Программирование

Программирование

Книги, статьи, руководства и примеры

Автор: Дегтярев Михаил.

Язык программирования Smalltalk (Смаллтолк).

Язык программирования Smalltalk - это динамически типизированный объектно-ориентированный язык программирования, разработанный в Xerox PARC, в разработке принимали участие: Алан Кэй , Дэн Инголс, Тед Kaehler Адель Голдберг , и другие в 1970-х годах. Язык был выпущен как Smalltalk-80 и широко использовался начиная с этого времени. .
Несмотря на свою 20-летнюю историю, широко распространено мнение, что опыт программирования и производительности языка программирования Smalltalk по-прежнему является непревзойденным другими средами разработки и языками. Программирование для чайников Smalltalk до сих пор продолжает активное развитие, и собрал вокруг себя лояльное сообщество пользователей.
Язык программирования Smalltalk оказал большое влияние на развитие многих других языков программирования, в том числе: Objective-C , Actor, Java и Ruby . Многие разработки и идеи 1990-х годов пришли из Смаллтолк сообщества, таких как шаблоны проектирования (применительно к ПО), экстремальное программирование и рефакторинг кода. Программирование для начинающих. Среди последователей языка программирования Смаллтолк можно выделить самого знаменитого - Ward Cunningham , изобретателя ВикиВики концепции (основы Википедии).

Для основ программирования вот самые грандиозные идеи, пришедшие из языка программирования Смаллтолк:

В следующем примере кода для нахождения гласных в строке демонстрируется стиль Smalltalk's. ( «|» символ объявляет переменные, «:» объявляет параметры, а «[ ]» и «{}» являются скобками на данный момент):

| aString vowels |
aString := 'This is a string'.
vowels := aString select: [:aCharacter | aCharacter isVowel].

В последней строке кода, переменная типа строка отправляется на блок выбора: где в качестве аргумента выступает блок кода. Вот код суперкласса Collection, который производит обработку этих данных делает:

| newCollection |
newCollection := self species new.
self do: [:each | 
   (aBlock value: each) 
       ifTrue: [newCollection add: each]].
^newCollection

Этот суперкласс реагирует на сообщение, перебирая каждый член (что определяется в строке do: method) и оценивая каждый раз кусок кода aBlock, который передан в качестве параметра в переменную aBlock в виде (aCharacter isVowel), при оценке создает булевскую (Boolean) переменную, которая затемпередается в блок обработки ifTrue: . Если булево значение «правда», символ добавляется в строку, которая должна быть возвращена. Так как блок выбора определен в классе абстрактных коллекций, мы можем также использовать с помощью другого кода:

| 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].



Если возник вопрос, то вы можете получить ответ: форум программистов