Библиотека knigago >> Компьютеры и Интернет >> Базы данных >> Обзор и сравнительный анализ языков программирования


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 951, книга: Обоюдоострый меч
автор: Карен Трэвисс

В захватывающем романе "Обоюдоострый меч" Карен Трэвисс создает захватывающий мир, где политические интриги и сверхъестественные силы сталкиваются в хаотичном танце. История вращается вокруг Леиры, молодой женщины с загадочным прошлым и скрытыми способностями. Когда ее мир разрушается, ей приходится бежать, спасая секреты, которые могут поставить под угрозу судьбу королевства. Ее путешествие приводит ее к встрече с Эшрином, принцем из враждующего клана, который таит собственные...

СЛУЧАЙНАЯ КНИГА

Декабристка. Анна Кирова
- Декабристка

Жанр: Современные любовные романы

Год издания: 2021

Серия: Декабрьские грёзы

Антон Евгеньевич Москаль (kouzdra) , Олег Анатольевич Плисс , Андрей Николаевич Терехов , Андрей Андреевич Терехов , Владимир Викторович Уфнаровский - Обзор и сравнительный анализ языков программирования

Обзор и сравнительный анализ языков программирования
Книга - Обзор и сравнительный анализ языков программирования.  Антон Евгеньевич Москаль (kouzdra) , Олег Анатольевич Плисс , Андрей Николаевич Терехов , Андрей Андреевич Терехов , Владимир Викторович Уфнаровский  - прочитать полностью в библиотеке КнигаГо
Название:
Обзор и сравнительный анализ языков программирования
Антон Евгеньевич Москаль (kouzdra) , Олег Анатольевич Плисс , Андрей Николаевич Терехов , Андрей Андреевич Терехов , Владимир Викторович Уфнаровский

Жанр:

Базы данных

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Обзор и сравнительный анализ языков программирования"

Конспект

Читаем онлайн "Обзор и сравнительный анализ языков программирования". [Страница - 15]

классов
Object
Magnitude
Character
Date
Time
Number
Float
Fraction
Integer
LargeNegativeInteger
LargePositiveInteger
SmallInteger
Collection
SequenceableCollection
LinkedList
Semaphore
ArrayedCollection
Array
Word Array
Display Bitmap
Run Array
String …

Почему надо знать иерархию объектов? Потому, что сообщение, которое не может
быть обработано, передается на обработку его суперклассу, затем его суперклассу и т.д. Если
дошли до Object’a и не смогли обработать, то высылается ответное сообщение
doesNotUnderstand: (‘:’ – т.к. системное сообщение).
О гармонии мироздания:
Объекты – являются экземплярами класса.
Классы – если все является объектами ⇒ у них тоже должны быть свои прототипы ⇒
Метаклассы – невидимы для пользователя; классы являются экземплярами
метакласса. Все метаклассы являются экземплярами MetaClass.

Синтаксис языка:

Выражения:
1. Литералы
2. Имена переменных (только эти выражения зависят от контекста)
3. Выражения посылки сообщений (значение определяется классом-получателем)
4. Выражения-блоки

Массив:
# ('1' '2' '3')
# ((1 2) 3)

Внутри массива могут быть другие массивы ( но они решеткой не обозначаются).
Массивы могут быть неоднородными.
Присваивания:
Обозначаются “←” (в более поздних версиях “:=” тоже разрешено)
Сообщения:
Имя получателя
Имя сообщения
Сообщения могут быть:
– унарные alpha sin (могут выдать результат или ошибку)
– бинарные Number+1 (результат будет выдан наружу)
– ключевые ages at: 'Вася' put 3 (эквивалентно at: put: 'Вася' 3, т.е. сообщение с 2
переменными)
Правила разбора сообщений:
1. Унарные и бинарные – слева направо
2. Бинарные выше по приоритету, чем ключевые
3. Унарные выше бинарных
4. Выражения в скобках выше унарных
Каскадирование сообщений:
Collection new add:1; add:2; add:3

что эквивалентно
|temp|
temp ←
temp ←
temp ←
temp ←

Описание переменных заключается в |…|.
Операторы разделяются “.”

Collection new.
add:1.
add:2.
add:3.

Выражения-блоки:
[index ← index+1]

– вычисляется только по получении сообщения value

Т.о. записывается, например, цикл for:
4 Times Repeat: [index ← index+1]

Если послать value блоку [], то получим Nil

Условные выражения:
(number \\ 2) = 0
if True: [parity ← 0]
if False: [parity ← 1]
[: array | total ← total+array size]

– параметром будет передан массив и
добавится его размер

Пример:
Class name
History
superclass
Object
instance variable names allIncomes incomes
class variable names RateTax
class methods
initialize
initialize
RateTax ← 0.12
instance creation
initial Balance : amount
^ super new setInitialBalance : amount
new
^ super new setInitialBalance : 0
instance methods
transaction recording
recieve: amount from: source
incomes at: source
put: (self totalRecievedFrom : source)+amount
inquires
totalRecievedFrom: source
(incomes includekey: source)
if True: [^incomes at: source]
if False: [^0]...

Заключительная лекция
Subtyping – подтипы (строятся наследованием, но не только им).

Определение. Тип A является подтипом B, если в любом контексте, где можно
использовать B, допустимо использование A. Обозначается A --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.