Резьбовой код


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

Поточный код имеет лучшую плотность , чем код, сгенерированный альтернативными методами генерации и альтернативными соглашениями о вызовах . В кэшированных архитектурах он может выполняться немного медленнее. [ править ] Тем не менее , программа , которая достаточно мала , чтобы поместиться в кэш процессора компьютера , может работать быстрее , чем более крупная программа , которая страдает от многих промахов кэша . [1] Небольшие программы также могут быть быстрее при переключении потоков , когда другие программы заполнили кеш.

Многопоточный код наиболее известен своим использованием во многих компиляторах языков программирования , таких как Forth , многих реализациях BASIC , некоторых реализациях COBOL , ранних версиях B , [2] и других языках для небольших миникомпьютеров и для радиолюбительских спутников . [ нужна ссылка ]

Распространенным способом создания компьютерных программ является использование компилятора для преобразования исходного кода (написанного на каком -либо символическом языке ) в машинный код . Полученный исполняемый файл обычно работает быстро, но поскольку он специфичен для аппаратной платформы, он не является переносимым. Другой подход заключается в создании инструкций для виртуальной машины и использовании интерпретатора на каждой аппаратной платформе. Интерпретатор создает среду виртуальной машины и выполняет инструкции. Таким образом, должен быть скомпилирован только интерпретатор.

Ранние компьютеры имели относительно мало памяти. Например, на большинстве Data General Nova , IBM 1130 и многих первых микрокомпьютерах было установлено всего 4 КБ ОЗУ. Следовательно, много времени было потрачено на то, чтобы найти способы уменьшить размер программы, чтобы она поместилась в доступной памяти.

Одним из решений является использование интерпретатора, который понемногу считывает язык символов и вызывает функции для выполнения действий. Поскольку исходный код обычно намного плотнее , чем результирующий машинный код, это может уменьшить общее использование памяти. По этой причине Microsoft BASIC является интерпретатором: [a] его собственный код должен был совместно использовать 4 КБ памяти таких машин, как Altair 8800 , с исходным кодом пользователя. Компилятор преобразует исходный язык в машинный код, поэтому компилятор, исходный код и выходные данные должны находиться в памяти одновременно. В интерпретаторе нет вывода. Код создается построчно, выполняется, а затем отбрасывается.