Компилятор Делавар. Нововведения в языке. Инструкции и операции — различия между версиями
Админ (обсуждение | вклад) (Новая страница: « == См. также == * Компилятор Делавар Категория:Компилятор Делавар Категория:Ubuntu {{i}}») |
Дизайнер (обсуждение | вклад) м |
||
Строка 1: | Строка 1: | ||
+ | '''Нововведения в языке. Инструкции и операции''' | ||
+ | В языке имеются следующие управляющих конструкции: | ||
+ | if(cond) { statements } [else { statements }], | ||
+ | for(init_expr; cond_expr; step_expr) { statements }, | ||
+ | while(cond) { statements }, | ||
+ | do { statements } while(cond) | ||
+ | switch(int_expr) { case n1: statements ... default: statements } | ||
+ | |||
+ | По сравнению с 16-битной версией компилятора добавлена инструкция do..while и switch. Также в теле цикла можно использовать операторы break и continue. | ||
+ | |||
+ | Есть отличие в задании условия cond: результирующим значением выражения условия должно быть обязательно булево выражение. Например: | ||
+ | int a = 3 | ||
+ | if(a != 0) | ||
+ | b = 5 | ||
+ | |||
+ | В инструкции switch выражение int_expr может быть следующих типов: char, byte, word, int или enum. | ||
+ | |||
+ | Для числовых типов добавлены битовые операции (&, |, ^, ~, &=, |=, ^=), операции сдвига (<<, >>, <<=, >>=). | ||
+ | |||
+ | Появилась инструкция sizeof(type), которая возвращает размер типа в байтах. В качестве параметра принимает имя типа. Пример: word sizeInt = sizeof(int). | ||
+ | |||
+ | Начиная с версии 0.52 компилятора, появилось ключевое слово extern, которое позволяет объявить глобальную переменную, определенную во внешнем модуле (библиотеке). Используется следующий синтаксис: extern type_name name, где type_name - имя типа, name - имя переменной. Например, extern int foo. | ||
+ | |||
+ | В версии 0.58 компилятора Делавар появилось ключевое слово synonym, которое можно использовать в двух случаях: | ||
+ | * для создания синонима типа (другого имени типа), | ||
+ | * для создания ссылки на переменную (другого имени переменной). | ||
+ | |||
+ | Для объявления синонима типа используется следующий синтаксис: synonym new_type_name type_name. Например, synonym UINT word. Возможно объявление синонимов как базовых, так и пользовательских типов. Объявления синонимов типа возможны только в глобальной области видимости модуля. После объявления синонима типа, возможно использование нового имени типа для объяления переменных. | ||
+ | |||
+ | Для объявления ссылки на переменную используется аналогичный синтаксис: synonym new_var_name var_name. Например, synonym b a, где а - имя переменной. После объявления синонима имени переменной возможно обращение к ней по имени b. Объявление ссылки на переменную возможно в области видимости исходной переменной, или во вложенных областях видимости относительно этой переменной. | ||
+ | |||
+ | В версии 0.61 компилятора Делавар появилась возможность использования глобальных операторов new и delete для создания и удаления ссылочных типов и их массивов в динамической памяти. При создании составного ссылочного типа с помощью оператора new вызывается конструктор объекта с заданными параметрами (если они указаны). Перед удалением такого объекта с помощью оператора delete - происходит вызов деструктора (если он имеется). Примеры использования операторов new и delete имеются в папке C:\DC32\EX\INHERIT. Для значимых составных типов и их массивов реализован вызов конструктора по умолчанию (без параметров) в момент объявления переменной, также вызов деструктора при их уничтожении (выходе из области видимости). | ||
== См. также == | == См. также == |
Текущая версия на 21:53, 13 января 2016
Нововведения в языке. Инструкции и операции
В языке имеются следующие управляющих конструкции:
if(cond) { statements } [else { statements }], for(init_expr; cond_expr; step_expr) { statements }, while(cond) { statements }, do { statements } while(cond) switch(int_expr) { case n1: statements ... default: statements }
По сравнению с 16-битной версией компилятора добавлена инструкция do..while и switch. Также в теле цикла можно использовать операторы break и continue.
Есть отличие в задании условия cond: результирующим значением выражения условия должно быть обязательно булево выражение. Например:
int a = 3 if(a != 0) b = 5
В инструкции switch выражение int_expr может быть следующих типов: char, byte, word, int или enum.
Для числовых типов добавлены битовые операции (&, |, ^, ~, &=, |=, ^=), операции сдвига (<<, >>, <<=, >>=).
Появилась инструкция sizeof(type), которая возвращает размер типа в байтах. В качестве параметра принимает имя типа. Пример: word sizeInt = sizeof(int).
Начиная с версии 0.52 компилятора, появилось ключевое слово extern, которое позволяет объявить глобальную переменную, определенную во внешнем модуле (библиотеке). Используется следующий синтаксис: extern type_name name, где type_name - имя типа, name - имя переменной. Например, extern int foo.
В версии 0.58 компилятора Делавар появилось ключевое слово synonym, которое можно использовать в двух случаях:
- для создания синонима типа (другого имени типа),
- для создания ссылки на переменную (другого имени переменной).
Для объявления синонима типа используется следующий синтаксис: synonym new_type_name type_name. Например, synonym UINT word. Возможно объявление синонимов как базовых, так и пользовательских типов. Объявления синонимов типа возможны только в глобальной области видимости модуля. После объявления синонима типа, возможно использование нового имени типа для объяления переменных.
Для объявления ссылки на переменную используется аналогичный синтаксис: synonym new_var_name var_name. Например, synonym b a, где а - имя переменной. После объявления синонима имени переменной возможно обращение к ней по имени b. Объявление ссылки на переменную возможно в области видимости исходной переменной, или во вложенных областях видимости относительно этой переменной.
В версии 0.61 компилятора Делавар появилась возможность использования глобальных операторов new и delete для создания и удаления ссылочных типов и их массивов в динамической памяти. При создании составного ссылочного типа с помощью оператора new вызывается конструктор объекта с заданными параметрами (если они указаны). Перед удалением такого объекта с помощью оператора delete - происходит вызов деструктора (если он имеется). Примеры использования операторов new и delete имеются в папке C:\DC32\EX\INHERIT. Для значимых составных типов и их массивов реализован вызов конструктора по умолчанию (без параметров) в момент объявления переменной, также вызов деструктора при их уничтожении (выходе из области видимости).
См. также
Яндекс | Картинки | Видео | Карты | Карты ОСМ | Спутник | Гугл | Вольфрам-Альфа | РуВики | EnWiki