Лекция 01. Тема Общая характеристика языков программирования высокого уровня


Download 4.1 Mb.
Pdf ko'rish
bet13/57
Sana12.11.2023
Hajmi4.1 Mb.
#1767546
TuriЛекция
1   ...   9   10   11   12   13   14   15   16   ...   57
Bog'liq
Lektsii po YaP Lukinova 2 sem

 
LIST 

10.3 4.6 16.7 ,
 
который загрузит в переменную массив из 3-х реальных чисел и она станет 
массивом реальных чисел. Но, если ниже в программе имеется оператор 
 
LIST 

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


таблицы данных, в которую один раз введены данные символьного типа; 
другой – числового). Однако такой способ имеет существенные недостатки:
 

в силу отсутствия статического контроля типов, может случиться 
ситуация, когда неверные типы в правой части оператора 
присваивания не могут быть обнаружены ни при компиляции, ни 
при выполнении. Например: пусть X, Y– целые переменные, A – 
массив, пусть в программе вместо X = Y по ошибке записали X = A, 
тогда тип X меняется на массив и получаются неверные результаты. 
При статическом связывании компилятор обнаружит такую ошибку. 
 

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

обычно реализуется через интерпретатор, т.к. сложность 
динамического связывания требует значительных затрат времени, 
его использование целесообразно только при таком способе 
реализации языка. 
 
3. Логический вывод типа.
 
Реализован в языке ML, который поддерживает и функциональное, и 
императивное программирование. Он использует механизм логического 
вывода типа. Например, в операторе c=3.14*r*r константа 3.14 определяет 
тип переменных r и с, если константы нет, то тип не определен.

Download 4.1 Mb.

Do'stlaringiz bilan baham:
1   ...   9   10   11   12   13   14   15   16   ...   57




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling