Ѕиблиотека ёр»нфо–® >>>  омпьютерные науки и информационные технологии >>>

 онструкции €зыков программировани€


ќбложка.  рупно.
ISBN 5-89158-079-9
2001. 276 c. ¬721
ЅЅ  32.97
”ƒ  004
“вердый переплет.

÷ена 1
220.00
÷ена 2
480.00
ѕќЋќ∆»“№ ¬  ќ–«»Ќ”
÷ены действительны до
31.03.2021
÷ена 1 с учетом Ќƒ—
÷ена 2 с учетом почтовых расходов по –‘ и Ќƒ—.


јннотаци€


 ак приобрести


—м. также


—одержание


ѕќЋќ∆»“№ ¬  ќ–«»Ќ”

¬ольфенгаген ¬.Ё.
ѕриемы описани€.

.

»здание осуществлено при поддержке –‘‘», проект 01-01-14068

¬ работе изложены основы, касающихс€ разработки, реализации и применени€ конструкций как императивных, так и функциональных €зыков программировани€. «начительное внимание удел€етс€ применению денотационной семантики, позвол€ющей в полной мере извлечь преимущества объектно-ориентированного подхода, что, в конечном счете, позвол€ет построить результирующую вычислительную модель чисто функционального типа.

»зложение материала сопровождаетс€ детально разобранными примерами, которые снабжены комментари€ми, помогающими у€снить реализацию конструкций различных €зыков.

 нигу можно использовать в качестве учебника или справочного пособи€. ќна будет полезна как студентам и аспирантам, так и профессионалам в области компьютерных наук, информационных технологий и программировани€.


—м. также

—одержание

ƒополнительные учебно-методические материалы и компьютерные обучающие средства (практикумы, активные книги)


—одержание

ѕредисловие редактора серии 1

ѕредисловие 3

¬ведение 13

ћодель вычислений 17

  • 1.1 ¬озможности модели вычислений 17
  • 1.2 —интаксис, семантика и прагматика 19
  • 1.3 ‘ормальна€ семантика и ее возможности 20
  • 1.4 ƒенотационна€ семантика 23
  • 1.5 јбстрактные объекты 25
  • 1.6 “ехнологическа€ основа 26
  • 1.7 ”нификаци€ логики программ и систем баз данных 27

2. ѕотоковые диаграммы 29

  • 2.1 ќсновные идеи теории вычислений 29
  • 2.2 ¬ыражени€, представл€ющие элементы 30
    • 2.2.1 “ождественна€ функци€ 31
    • 2.2.2  онстантна€ функци€ 32
    • 2.2.3 ѕроизведение 33
    • 2.2.4 —умма 34
  • 2.3 ѕредставление диаграммами 35
    • 2.3.1 ¬ыражени€, представл€ющие диаграммы 39
    • 2.3.2 ”ниверсум дл€ рассуждени€ о диаграммах 40
  • 2.4 ќсновные математические пон€ти€ и определени€ 41
  • 2.5 »де€ потоковых диаграмм 43
    • 2.5.1 ѕостроение набора примитивных сущностей 45
  • 2.6 јбстрактна€ потокова€ машина 46
    • 2.6.1 «начение выражений 47
    • 2.6.2 ќценивающее отображение 49
    • 2.6.3 ќзначивание while-цикла 51
  • 2.7 ÷иклические диаграммы 53
  • 2.8 —интаксический анализ $ 61

3. ѕример непосредственной семантики дл€ модели вычислений 63

  • ѕолнота описани€ 63
  • ясность 63
  • ≈стественность 63
  • –еализм 63
    • 3.1 Ќеформальный синтаксис 64
    • 3.2 Ќеформальна€ семантика 64
      • 3.2.1 Ќеформальна€ семантика выражений 65
      • 3.2.2 Ќеформальна€ семантика команд 67
    • 3.3 ‘ормальна€ семантика 68
      • 3.3.1 —интаксис 68
      • 3.3.2 —осто€ние, пам€ть, вход, выход и значение 68
      • 3.3.3 —емантические функции 69
        • ƒенотаты выражений 69
        • ƒенотаты команд 71
      • 3.3.4 —емантические предложени€ 71
        • —емантические предложени€ дл€ выражений 71
        • —емантические предложени€ дл€ команд 73
      • 3.3.5 ќсобенности формальной семантики 74

4. »сходные пон€ти€ и обозначени€: теори€ вычислений 75

  • 4.1 јбстрактный синтаксис 75
  • 4.2 ѕодходы к построению семантики 77
  • 4.3 ƒомены 80
    • 4.3.1 –екурсивно определенные функции 80
    • 4.3.2 –екурсивно определенные множества 81
    • 4.3.3 “еори€ вычислений 82
    • 4.3.4 ћатематизаци€ в программировании 83
  • 4.4 ќпределение доменов 83
    • 4.4.1 —тандартные домены 83
    • 4.4.2  онечные домены 84
    • 4.4.3  онструкторы доменов 84
      • ‘ункциональное пространство $[D_1 o D_2]$ 84
      • ѕр€мое, или декартово произведение 85
      • ѕоследовательности ^*$ 85
      • ƒизъюнктна€ сумма $[D_1 + D_2 + Е+ D_n]$ 86
    • 4.4.4 –авенства среди доменов 87
  • 4.5 ‘ункции 88
    • 4.5.1 Ћамбда-обозначени€ 89
      • ¬ведение $\lambda $-обозначений 90
      • »спользование $\lambda $-обозначений 91
        явное указание области определени€ и области значени€ 91
        »спользование в функци€х нескольких аргументов 91
      • ѕрименение $\lambda $-выражений к аргументам 92
      • «амена св€занных переменных 93
    • 4.5.2 ‘ункции высших пор€дков 93
    • 4.5.3 —оглашени€ об опускании скобок 94
    • 4.5.4  аррирование 96
    • 4.5.5 ”словные функции 98
    • 4.5.6 Case-конструкци€ 99
    • 4.5.7 ‘ункции коррекции 100
    • 4.5.8 ѕорождающие функции 100
    • 4.5.9 —пособы определени€ функций, включа€ рекурсию 101
      • Ќерекурсивные функции 101
      • –екурсивные функции 102
    • 4.5.10 »сключение переменных 103
    • 4.5.11 Where-конструкци€ 104
      • Where 104
      • Whererec 105
    • 4.5.12  омпозици€ и построение последовательности 105
      •  омпозици€ 105
      • ѕостроение последовательности 105
        ¬ариант 1 106
        ¬ариант 2 106

5. ѕример денотационного описани€ дл€ модели вычислений 109

  • 5.1 јбстрактный синтаксис 110
    • 5.1.1 —интаксические домены 110
    • 5.1.2 —интаксические предложени€ 110
  • 5.2 —емантика 110
    • 5.2.1 —емантические домены 110
    • 5.2.2 ¬спомогательные функции 111
      • result 111
      • donothing 111
      • checkNum 111
      • checkBool 111
    • 5.2.3 —емантические функции 111
    • 5.2.4 —емантические предложени€ 112
      • ѕредложени€ дл€ выражений 112
      • ѕредложени€ дл€ команд 112

6. —тандартна€ семантика 113

  • 6.1 ѕродолжени€ 114
    • 6.1.1 ѕредставление `остатка программы' 114
    • 6.1.2 ѕродолжени€ команд 115
    • 6.1.3 ѕродолжение выражени€ 116
    • 6.1.4 Ќепосредственна€ семантика и семантика продолжений 116
  • 6.2 –азмещение, запас и среда 117
    • 6.2.1 –азделение 117
    • 6.2.2 ѕеременна€ и размещение 118
    • 6.2.3 «апас 118
    • 6.2.4 —реда 119
  • 6.3 —тандартные домены значений 120
  • 6.4 Ѕлоки, декларации и диапазоны 120
  • 6.5 —тандартные домены продолжений 122
    • 6.5.1 ѕродолжение команды 122
    • 6.5.2 ѕродолжение выражени€ 122
    • 6.5.3 ѕродолжение декларации 123
  • 6.6 —тандартные семантические функции 123
    • Id 124
    • id 124
    • * 124
    • —емантические предложени€ 124
      ѕредложени€ дл€ выражений 124
      ѕредложени€ дл€ команд 124
      ѕредложени€ дл€ декларации 125
  • 6.7 ѕреобразование продолжений 125
  • 6.8 ѕрисваивание и значени€ L, R 128
  • 6.9 ѕроцедуры и функции 131
    • 6.9.1 ѕроцедуры 131
    • 6.9.2 ‘ункции 133
    • 6.9.3 —вод основных соотношений 133
      • ƒомены 133
      • ѕредложени€ дл€ деклараций 134
      • ѕредложени€ дл€ вызовов 134

7. ѕример денотационной семантики 135

  • 7.1 ѕример синтаксиса 136
    • 7.1.1 —интаксические домены 136
    • 7.1.2 —интаксические предложени€ 136
  • 7.2 ѕример семантики 137
    • 7.2.1 —емантические домены 137
    • 7.2.2 —емантические функции 138
    • 7.2.3 —емантические предложени€ 138
      • ѕрограммы 138
      • ¬ыражени€ 139
      •  оманды 140
      • ƒекларации 141
  • 7.3 ѕример означивани€ 142

8. ¬ыходы и передачи управлени€ 145

  • 8.1 ¬ыходы 145
    • 8.1.1 ¬ыходы из команд 145
      • trap 145
      • escapeto 146
    • 8.1.2 ¬ыходы из выражений 147
    • 8.1.3 valof и resultis 148
  • 8.2 ѕереходы 149
    • 8.2.1 —емантика переходов 150
      • $ :=$, output $, (E_2)$ 151
      • if $ then $ else $ 151
      • while $ do $ 152
      • begin $; $ end 152
      • $; $ 152
      • goto $ 152
      • $: $ 153
    • 8.2.2 ƒополнительные аспекты семантики переходов 153
    • 8.2.3 ѕрисваивание переменным меток в качестве значений 155

9. –азновидности процедур и функций 157

  • 9.1 „исло параметров 158
    • 9.1.1 ѕроцедуры и функции без параметров 158
    • 9.1.2 ѕроцедуры и функции более, чем с одним параметром 159
  • 9.2 –екурсивные процедуры и функции 160
  • 9.3 —татическое и динамическое св€зывание 162
    • 9.3.1 —емантика св€зывани€ 162
    • 9.3.2 ќсобенности динамического св€зывани€ 162
  • 9.4 ћеханизмы передачи параметров 163
    • 9.4.1 ¬ызов по значению 163
      • ѕредставление вызова по значению 164
      • –азличи€ семантик вызова по значению 165
    • 9.4.2 ¬ызов по ссылке 166
      • ѕростой вызов по ссылке 166
    • 9.4.3 ¬ызов по значению и результату 167
  • 9.5 ћеханизмы вызова процедур 168
    • 9.5.1 ¬ызов по замыканию 169
    • 9.5.2 ¬ызов по тексту 170
    • 9.5.3 ¬ызов по обозначению 171
    • 9.5.4  онструкции цитировани€ 172
  • 9.6  раткий обзор механизмов вызова и передачи 172
  • 9.7 јбстракции: выражени€, обозначающие процедуры и функции 174
  • 9.8 ћеханизмы св€зывани€ деклараций 175

10. —труктуры данных 177

  • 10.1 ќперации над множествами 178
  • 10.2 —сылки 179
  • 10.3 ћассивы 179
  • 10.4 «аписи 182
  • 10.5 ¬ыражени€, имеющие структуру данных в качестве значени€ 184
  • 10.6 ‘айлы 185
  • 10.7 —емантика файлов 186

11.  онструкции итераций 189

  • 11.1 repeat C until E 189
  • 11.2 ÷иклы event 189
  • 11.3 For-предложени€ 190
  • 11.4 ќбобщени€ for-предложени€ 193

12. “ипы 195

  • 12.1 –азновидности типов 196
  • 12.2 ѕравильно типизированные программы и проверка типов 196
    • 12.2.1 ѕроверка типов 197
    • 12.2.2 —хема денотационного описани€ проверки типов 198
  • 12.3 —емантика типов 199

13. јспекты функционального программировани€ 201

  • 13.1 ѕроблематика 202
  • 13.2 ќсновные характеристики функциональных €зыков 203
    • ќпределение функции 206
    • ѕрограммирование в функционалах 206
    • ‘ункции высших пор€дков 207
    • ѕредставление императивных управл€ющих конструкций 209
    • ѕродолжени€ 210
  • 13.3 ѕредставление распространенных функциональных €зыков 212
    • 13.3.1 Meta Language 212
      •  онструирование данных 212
      • ‘ункции 213
      • ѕолиморфна€ сильна€ типизаци€ 214
  • 13.4 ќсновные методы реализации 216
    • 13.4.1 SECD-машина 216
    • 13.4.2 –едукци€ графа 217
    • 13.4.3  атегориальна€ абстрактна€ машина 218
  • 13.5 ѕолезные качества функционального программировани€ 218
    • 13.5.1 ѕростота семантики 219
      • —емантика функциональных €зыков 219
        ѕеременна€ 219
         онстантный объект 220
        јбстракци€ 220
        јппликаци€ 220
      • ѕример денотационной семантики императивного €зыка 221
    • 13.5.2 ѕроверка корректности программы 222
    • 13.5.3 ѕреобразование программы 223
  • 13.6 —интаксис упрощенного функционального €зыка 224
    • 13.6.1 ‘ункциональный €зык первого пор€дка 224
      • ѕрограмма 224
      • ¬ыражение 224
    • 13.6.2 ‘ункциональный €зык высших пор€дков 224
      • ѕрограмма 224
      • ¬ыражение 225
  • 13.7 ѕолучение из $\lambda $-выражений машинных инструкций 225
    • 13.7.1  омпилирование правила вычислени€ 227
      •  омпилирование композиции 228
        ѕравила преобразовани€ 229
         омментарии 229
        —оглашение 230
      • ќбоснование корректности преобразовани€ 233
    • 13.7.2  омпилирование управлени€ средой 234
      •  омбинаторы как машинные инструкции 236
      • –авенства между комбинаторами 237
      • јлгоритм абстракции 238
      • Ўаги алгоритма абстракции 239
    • 13.7.3 Ѕольшой пример 243
      • ¬спомогательные примеры 243
        Ѕинарный оператор 243
        ”нарный оператор 244
        “ождественное преобразование 244
        јппликаци€ 244
        —ложение двух выражений 244
        „астный случай аппликации 245
      • ƒополнительные равенства 247
      • ¬ычисление факториала (продолжение) 247
        ѕроведение оптимизации вычислений 249
        ќбщий случай 249
  • 13.8 Ћенивые и жадные вычислени€ 255

    Ћитература 257

    ѕредметный указатель 263

    √лоссарий