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


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

 


Лекция 05. 
2.3.3.Уровни типизации ЯП. 
Правила типизации языка предполагают:

наличие объявления типов данных;

реализация связывания типов с переменной;

определение типов смешанных арифметических выражений;

наличие правил преобразования типов.
Определение. Если для языка определены правила типизации, то язык 
считается типизированным, если эти правила для языка не определены – 
язык нетипизирован.
При этом языки имеют несколько уровней типизации:
1. Слабая типизация – язык, в котором информация о типе используется 
только для обеспечения корректности представления данных в ячейке. 
Например, для языка со слабой типизацией в операторах 
c char;
c = 4;
контроль типов ошибок не выявит. 
2. Сильная типизация – язык, в котором осуществляется полный 
контроль типов (статический, динамический или смешанный), в таком языке 
ошибки типов выявляются все и всегда.
3. Защитно-типизированный язык – язык, в котором операторы с 
возможными ошибками недопустимы.
Сильная типизация обеспечивает высокую надежность.
Pascal – сильнотипизированный (за исключением вариантных записей) с 
элементами защитной типизации;
Fortran – cлаботипизированный, т.к. в языке нет проверки соответствия 
типов формальных и фактических параметров подпрограмм, а также 
переменных операторов EQUIVALENCE.
Ada – почти сильнотипизированный, но позволяет программистам 
отключать проверку типов;
C – cлаботипизированный, имеются некоторые функции, параметры 


которых не подвергаются проверке, кроме того, для типа данных Union 
проверка не осуществляется, по крайней мере, в статике.
2.3.4. Связывание переменной с типом данных. 
Существует три способа связывания типа с переменной:
1. 
Статическое связывание. 
Реализуется с помощью:

операторов объявления типов;

правил объявления типа, принятых при разработке языка.
Большинство ЯПВУ требуют явного объявления, т.е. наличие в составе 
языка операторов объявления типа переменной. Однако в таких ЯП, как 
FORTRAN, PL\1, Бейсик есть и неявные соглашения. Например, переменные, 
имена которых начинаются с букв i, j, k, l, m, n считаются типа integer, хотя 
неявные объявления способствуют возникновению ошибок. Статическое 
связывание обычно реализуется на стадии компиляции, поэтому оно 
поддерживает надежность языка программирования (и в этом основное 
преимущество статического связывания).
 
2. Динамическое связывание.
При динамическом связывании при объявлении переменной ее тип не 
указывается. Определение типа и его связывание с ней происходит при 
присвоении переменной значения. Например, в языках APL , SNOBOL4 
существует оператор 

Download 4.1 Mb.

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




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