Описание структуры всевозможных документов, трехмерных виртуальных миров, графических интерфейсов пользователя и многих других объектов, используемых в моделях и в реальном мире. Использование трансляторов, предназначенных для интерпретации текстов.
Аннотация к работе
Федеральное государственное автономное образовательное учреждение высшего образования "Высшая Школа Экономики" Факультет информатики, математики и компьютерных наукВ настоящее время искусственные языки, использующие для описания предметной области текстовое представление, широко применяются не только в программировании, но и в других областях. Отчасти, для решения этой проблемы был создан babel - транслятор, предназначенный для перевода программного кода, написанного на ES6 в код, соответствующий стандарту ES5. интерфейс транслятор текст Ввиду обретения огромной популярности, язык js становится намного более широко-используемым в сфере web-разработки, нежели PHP. Общей целью разработки является идея показать, что несмотря на то, что все языки программирования имеют свои преимущества и недостатки, реально создать такой инструмент, который в конкретной области применения будет иметь возможность транслировать код в языковую форму, необходимую пользователю. Ввиду обретения огромной популярности, язык js становится намного более широко-используемым в сфере web-разработки, нежели PHP.Эта функциональность особенно полезна при определении шаблонов в JAVASCRIPT: · данный исходный код преобразуется в: Babel позволяет использовать синтаксис нового стандарта языка JS в любой нужный момент без потребности ожидания обновления оборудования или программ, работающих с исходным кодом, написанным с использованием нового стандарта. Спецификация (Common Language Infrastructure specification (CLI)) описывает список функций, которые должен предоставить каждый язык программирования для использования.NET Framework и общеязыковой среды исполнения (Common Language Runtime (CLR)) и взаимодействия с компонентами программ, написанных на других языках программирования. Каждый.NET-совместимый язык программирования поддерживает одинаковые типы данных, использует те же.NET Framework классы, компилируется в промежуточный уровень, называемый MSIL (Microsoft Intermediate Language) и использует общеязыковую среду выполнения для управления выполнением. Кроме этого, компоненты, написанные на одном языке, могут легко взаимодействовать с компонентами, написанными на другом языке. Идея унификации конкретного набора функций в.NET Framework реализована и в текущем проекте - был взят необходимый для решения конкретных практических задач (а именно, для написания серверной части сайтов) набор функций языка PHP, которые необходимо реализовать на языке JS с последующей возможностью транслирования исходного кода на JS в PHP.Сегодня, огромное количество программистов постепенно переходит к использованию данной платформы для разработки web-приложений и не только, ввиду следующих преимуществ: Node.js добавляет возможность JAVASCRIPT взаимодействовать с устройствами ввода-вывода через свой API, подключать другие внешние библиотеки, написанные на разных языках, обеспечивая вызовы к ним из JAVASCRIPT-кода. Строгость Waterfall-модели к временным срокам, неизменяемость поставленных требований, отсутствие возможности варьировать последовательность действий в разработке послужили определяющим фактором отказа от данной модели в текущем проекте. Рассмотрим возможность парсинга исходного кода, написанного на языке JS, в структуру, представляющую абстрактное синтаксическое дерево на примере следующего фрагмента кода: В Приложении 3 представлена реализация данного фрагмента кода в виде структуры, представляющей абстрактное синтаксическое дерево. Основные атрибуты структурного представления, генерируемого абстрактного синтаксического дерева: Название атрибута описание Пример type - тип / название выделенной лексемы variable declaration, identifier, call expression, literal body - содержание основных синтаксических единиц кода Тело программы, функции, блока start / end - расположение взятой лексемы (номера первого и последнего значащих символов лексемы) "start": 0, "end": 78 name - название функций, переменных "name": "factorial" "name": "n" left, right, operator - обработка выражений левая часть выражения, оператор, правая часть выражения (n == 1) argument - аргумент при вызове функции Может быть несколько - в данном примере аргументом при вызове функции factorial является выражение n - 1 Создается метод code, который в качестве аргументов принимает node (текущий узел дерева - для каждого нового дерева первым узлом всегда будет узел типа Program) и src (представление транслируемого кода в виде строки - с целью вычисления позиции лексемы в зависимости от атрибутов "start" и "end") - данный метод будет применяться при необходимости сгенерировать PHP код из полученной структуры после парсинга кода.
План
Оглавление
Введение
Глава 1. Теоретическая часть. Аналоги разрабатываемого продукта Babel
Глава 2. Практическая часть. Инструменты разработки и методология