Архитектура «Front end and back end»

В обобщенном смысле понятия «front end» и «back end» означают начальное и конечное состояние определенного процесса, входящий и выходящий потоки, первый из которых отвечает за получение информации от пользователя и за ее переработку, а второй – за конечный результат.


В архитектуре программирования front end – это интерфейс программы, то есть та ее часть, которая непосредственно контактирует с пользователем, а back end объединяет полученные данные с программным кодом, защищает и сохраняет их.


Такое разделение программы является одним из вариантов абстракции, при этом процесс, именуемый «back end», обычно скрыт от пользователя. Также одни программы могут служить входными потоками к другим программам, и так до бесконечности. Множество существующих программ можно рассматривать с точки зрения архитектуры «Front end and back end». Так, графический менеджер Windows Explorer является фронт-эндом по отношению к файловой системе компьютера, в компиляторах front end занимается трансляцией программы на современном языке программирования в промежуточное представление, а back end генерирует на основе этого представления машинный код, который может воспринять данная ЭВМ.


В компиляторах работа фронтэнда не зависит от вида процессора, для которого будет генерироваться машинный код. Поэтому для одного языка программирования можно написать только один «front end», который будет работать для бэкэндов различных архитектур. Далее, на вход бэкэнда подается абстрактное представление о программе, которое генерируется в машинный код под определенную архитектуру компьютера. При наличии одного готового бэкэнда в программе-компиляторе под конкретную платформу на вход к нему можно дописать несколько фронтэндов с различных языков программирования. Такие действия возможны, поскольку большинство языков программирования имеют общие понятия (переменные, данные, операции, типы данных), на основании чего при помощи фронтэндов для различных языков их можно привести к одному каноническому виду, именуемому машинно-независимым промежуточным представлением. Точно так же к полученному машинно-независимому представлению пишется машинно-зависимое представление с оптимизациями и генерацией кода (бэкэнд). Он может работать на процессорах с одинаковой архитектурой, так как определенные виды оптимизаций работают только с конкретными моделями процессоров.

уникальные шаблоны и модули для dle

Добавить комментарий