Научная статья на тему 'ПОНЯТИЕ СИСТЕМЫ ПРЕПРОЦЕССИНГА И ЭТАПЫ ЕЕ ПРОЕКТИРОВАНИЯ'

ПОНЯТИЕ СИСТЕМЫ ПРЕПРОЦЕССИНГА И ЭТАПЫ ЕЕ ПРОЕКТИРОВАНИЯ Текст научной статьи по специальности «Электротехника, электронная техника, информационные технологии»

CC BY
0
0
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
язык программирования / исходная программа / исходный код / лексический анализ / целевой язык / синтаксический анализ / оптимизация кода / препроцессор. / programming language / source program / source code / lexical analysis / target language / parsing / code optimization / preprocessor

Аннотация научной статьи по электротехнике, электронной технике, информационным технологиям, автор научной работы — Паневин Никита Борисович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

THE CONCEPT OF A PREPROCESSING SYSTEM AND THE STAGES OF ITS DESIGN

this article discusses the concept of a source code preprocessing system and its role in software development. Preprocessing is the process of converting the source code of a program written in one of the programming languages into an equivalent program in another language, called the target language. This is achieved with the help of special software known as a transpiler. Software that uses a preprocessing system to handle the target programming language are called preprocessors.

Текст научной работы на тему «ПОНЯТИЕ СИСТЕМЫ ПРЕПРОЦЕССИНГА И ЭТАПЫ ЕЕ ПРОЕКТИРОВАНИЯ»

ПОНЯТИЕ СИСТЕМЫ ПРЕПРОЦЕССИНГА И ЭТАПЫ ЕЕ ПРОЕКТИРОВАНИЯ

Паневин Н.Б.

Паневин Никита Борисович - магистр, Институт передовых информационных технологий Тульского государственного педагогического института им. Л.Н.

Толстого, г. Тула

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

Ключевые слова: язык программирования, исходная программа, исходный код, лексический анализ, целевой язык, синтаксический анализ, оптимизация кода, препроцессор.

THE CONCEPT OF A PREPROCESSING SYSTEM AND THE STAGES OF ITS

DESIGN Panevin N.B.

Panevin Nikita Borisovich - Master's Degree, INSTITUTE OF ADVANCED INFORMATION TECHNOLOGIES TULA STATE PEDAGOGICAL INSTITUTE NAMED AFTER

L.N. TOLSTOY, TULA

Abstract: this article discusses the concept of a source code preprocessing system and its role in software development. Preprocessing is the process of converting the source code of a program written in one of the programming languages into an equivalent program in another language, called the target language. This is achieved with the help of special software known as a transpiler. Software that uses a preprocessing system to handle the target programming language are called preprocessors.

Keywords: programming language, source program, source code, lexical analysis, target language, parsing, code optimization, preprocessor.

УДК 004.4232

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

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

Транслитируемым или исходным языком программирования считается язык программирования, в котором содержатся дополнительные операторы и который требует дополнительной обработки для их изменения. Исходный код на данном языке обрабатывается системой препроцессинга.

Целевым языком программирования считается такой язык программирования, который не будет содержать дополнительных операторов. Для преобразования в него используется система препроцессинга.

Систему препроцессинга используют для решения следующих задач:

1) Упрощение инструкций посредством создания пользовательских операций или полноценных выражений.

2) Добавление нового функционала, обыгранного либо в рамках компилируемого языка, либо с наличием готового преобразования в конечный язык программирования.

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

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

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

1) Лексема — это символ или последовательность из нескольких символов исходной программы, которая соответствует шаблону токена и идентифицируется лексическим анализатором как экземпляр токена.

2) Шаблон — это описание вида, который может принимать лексема токена. В случае ключевого слова шаблон представляет собой последовательность символов, образующих это ключевое слово.

3) Токен — это пара, состоящая из идентификатора токена и его значения. Идентификатора токена — это абстрактный символ или последовательность из нескольких символов, представляющий тип лексической единицы.

Во время работы системы препроцессинга в ней могут присутствовать следующие этапы:

1) Лексический анализ - процесс, при котором исходный код разделяется на составные части и на каждую из них накладывается грамматическая структура. В последствии препроцессор использует эту структуру для создания промежуточного представления исходной программы.

2) Синтаксический анализ - процесс, при котором анализатор использует первые компоненты токенов, полученных при лексическом анализе, для создания промежуточного представления, которое описывает грамматическую структуру потока токенов.

3) Транслитерация - процесс, при котором происходит непосредственное преобразование промежуточного представления исходного кода в эквивалентное промежуточное состояние целевого языка с обработкой операторов исходного языка. Процесс преобразования происходит с использованием таблицы правил, в которой описано, какие элементы или группы элементов промежуточного состояния должны быть преобразованы в эквивалентные элементы или группы элементов промежуточного состояния целевого языка.

4) Оптимизация кода - процесс, занимающийся обработкой промежуточного представления исходной программы с целью получения более качественного кода. На данном этапе могут быть убраны излишние преобразования, упрощены нагруженные конструкции, а также изменен порядок вычислений и замена аналогичными, но менее затратную инструкцию.

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

Список литературы /References

1. Препроцессор [Электронный ресурс]. - Режим доступа: https://learn.microsoft.com/ru-ru/cpp/preprocessor/preprocessor?view=msvc-170. - Дата доступа: 26.06.2024

2. Препроцессор [Электронный ресурс]. - Режим доступа: https://math.spbu.ru/user/dlebedin/preproc.pdf. -Дата доступа: 26.06.2024

3. CSS-препроцессоры в 2024. Большой обзор [Электронный ресурс]. Режим доступа: https://htmlacademy.ru/blog/css/css-preprocessor. - Дата доступа: 26.06.2024

4. Препроцессоры [Электронный ресурс]. - Режим доступа: https://mrmlnc.gitbooks.io/less-guidebook-for-beginners/content/chapter_1/preprocessors.html. - Дата доступа: 26.06.2024

5. Компилятор [Электронный ресурс]. - Режим доступа: https://bigenc.ru/c/kompiliator-6d89ee. - Дата доступа: 26.06.2024

6. ЧТО ТАКОЕ КОМПИЛЯТОР? КАК РАБОТАЕТ: ВИДЫ И ПРИМЕРЫ [Электронный ресурс]. - Режим доступа: https://digitalocean.ru/n/chto-takoe-kompilyator. - Дата доступа: 26.06.2024\

7. Препроцессор Pug(Jade) [Электронный ресурс]. - Режим доступа: https://gist.github.com/neretin-trike/53aff5afb76153f050c958b82abd9228/. - Дата доступа: 26.06.2024

8. Что такое компилятор [Электронный ресурс]. - Режим доступа: https://elbrusboot.camp/blog/chto-takoie-kompiliator/. - Дата доступа: 26.06.2024

i Надоели баннеры? Вы всегда можете отключить рекламу.