Компилятор Делавар. Нововведения в языке. Инструкции и операции — различия между версиями

Материал из ТХАБ.РФ
Перейти к: навигация, поиск
 
м
 
Строка 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