Skip to main content

Что такое таблица филиалов?

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

В 1980-х годах отраслевые таблицы широко использовались в программировании на ассемблере. Они по-прежнему используются в программировании сборок для встраиваемых систем и разработки операционных систем. Начиная с 1990-х годов языки программирования компиляторов также используют функционирование таблиц ветвлений.

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

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

Языки программирования компилятора генерируют свои собственные таблицы ветвлений, когда это необходимо, используя поисковые ключи при оптимизации компиляторов. Некоторые программисты предпочитают вручную помогать компилятору в создании контекстной таблицы ветвей, предоставляя компилятору двухэтапные условные параметры для поиска ключей. В более ранние годы компиляции программ реализация таблиц ветвей раньше была командами «GoTo» на языках компиляторов Фортрана. Таблицы ветвлений все еще используются для реализации изменений в потоке программ на языках компиляторов или для того, чтобы служить отправной точкой для повторяющихся последовательностей команд.