Язык программирования Перфолента.Net - Официальный сайт

 Язык программирования Перфолента.Net - Официальный сайт.

Поиск   
Главная :: О проекте :: Контакты :: Обратная связь :: Благодарности :: ВходГость

   >   >   >   > 



Перфолента.Net компилируемый язык со статической типизацией.

Перфолента, в отличие от интерпретируемых языков 1С, OneScript, Python, является компилируемым языком со статической типизацией, но с элементами динамической типизации, которая используется по мере необходимости. Подробности процесса компиляции и различные варианты применения описаны в этой статье.

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


Язык Перфолента компилируется в CIL.

Перфолента компилируемый язык, поэтому текст программы на нем, в отличие от интерпретируемых языков, полностью переводится на машинный язык перед выполнением.

Однако в архитектуре .Net, на которой базируется язык Перфолента, принята двухэтапная компиляция. Сначала компилятор Перфоленты переводит программу на промежуточный низкоуровневый язык CIL (Common Intermediate Language), представляющий из себя подобие машинного языка для некоторой виртуальной машины, а затем, при первом запуске программы (или по мере вызова методов программы), специальный JIT (Just In Time) компилятор платформы .Net переводит программу с промежуточного языка на машинный язык конкретного процессора, установленного в вашем компьютере.

Компилятор Перфоленты может запускаться из командной строки или из редактора кода, поставляемого в дистрибутиве.
Команда запуска из командной строки выглядит так:

pflc.exe myprogram.pfl

В результате, в папке программы образуется запускаемый файл EXE или библиотека DLL.

Статическая типизация.

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

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

Перем в1 тип Вещ = 4.3
Перем ц1 тип Целое = 3
Перем д1 тип ДВещ = в1 + ц2


Динамическая типизация.

Иногда тип обрабатываемых данных не известен на этапе компиляции. На этот случай в языке Перфолента.Net имеется тип Объект, являющийся чем-то в виде контейнера для хранения объектов любого из других типов. Так вот, операции с типом Объект относятся к элементам динамической типизации, когда тип операндов и сама возможность проведения операции определяются во время выполнения программы, а не во время её компиляции. Динамическая типизация ведет к значительному снижению скорости выполнения программы, но зато позволяет работать с типами о которых ничего не было известно при компиляции.

В следующем примере все переменные имеют тип Объект. В переменной о1 хранится вещественное число типа Вещ. В переменной о2 хранится целое число типа Целое. А вот в переменную о3 будет помещен результат сложения чисел двух разных типов, причем определение типов, которые необходимо сложить так же произойдет во время выполнения программы. Если между двумя типами операция сложения будет не определена возникнет исключение.

Перем о1 тип Объект = 4.3
Перем о2 тип Объект = 3
Перем о3 тип Объект = о1 + о2

Для получения максимальной скорости работы избегайте использования в программе типа Объект. Используйте его только при необходимости работать с типами данных о которых станет известно во время выполнения.




К началу статьи


Предыдущая статья:
История и причины появления языка Перфолента.Net

Следующая статья:
Почему язык программирования Перфолента работает намного быстрее, чем языки 1С и OneScript

Вернуться в раздел:
Вводный раздел
  Поддержи проект!

Вы можете поддержать разработку Перфоленты, перечислив любую удобную сумму, которая пойдет на развитие языка и поддержку инфраструктуры сайта.

  Новости:
      04.01.2025 Опубликован новый релиз дистрибутива языка программирования Перфолента.Net версии 0.4.15.0_CE
      23.09.2024 Опубликована новая статья: "Конструируем класс. Делегаты."
      30.08.2024 Опубликован новый релиз дистрибутива языка программирования Перфолента.Net версии 0.4.14.0
      24.05.2024 Обновлён справочный раздел сайта
      01.07.2023 Новая версия 0.4.13.0 языка программирования Перфолента.Net
       Все новости