Языки программирования

 

Для представления алгоритма в виде понятном компьютеру, служат языки программирования, на одном из которых и должен быть записан алгоритм. В результате алгоритм превращается в компьютерную программу. Однако лишь единственный язык программирования понятен компьютеру без переводчика – это язык его машинных команд (кодов). Команды, как и любая другая информация в машине, представляются в виде двоичных кодов. Машинные коды – это двоичные коды, которыми кодируются команды ЭВМ. Эти коды содержат две части, в одной из которых размещается код операции, в другой – адреса операндов и результата. Приведем учебный пример

машинных кодов ЭВМ:

В современных ПЭВМ реали-зуется, как правило, порядка 200 различных команд. Прог-раммированию на языке ма-шинных кодов свойственны 2 недостатка: 1) высокая тру-доемкость программирования, 2) необходимость знания устройства ЭВМ.

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

 

Развитие языков программирования всегда осуществлялось и продолжает осуществляться в направлении исключения указанных недостатков. Первый шаг в этом направлении – это переход к языку ассемблера. Отличие ассемблера от языка машинных кодов заключается лишь в том, что двоичный код операции в ассемблере заменяется на ее символьное имя. В результате при записи в программе команды "сложение" при использовании ассемблера пишется ее имя "Add", а не код 0001. Однако при программировании на ассемблере программисту также необходимо знание устройства ЭВМ. Эти недостатки исчезают лишь при использовании так называемых языков высокого уровня. Примерами таких языков являются BASIC, C, Pascal и т.д. Эти языки гораздо более понятны человеку, нежели машинные коды, они не требуют знания устройства ЭВМ. Однако при использовании, как и в случае ассемблера, требуются спецпрограммы-переводчики с языка высокого уровня (ЯВУ) на язык машинных кодов. Эти программы называются трансляторами, а процесс перевода – трансляцией. В результате схема общения человека с ЭВМ приобретает следующий вид:

 

Трансляция

Существуют трансляторы 2-х типов: компиляторы и интерпретаторы. Компиляторы до использования программы переводят текст программы с ЯВУ на язык машинных команд целиком. Результат перевода – программа в машинных кодах – называется объектным модулем. Для ее исполнения в дальнейшем не нужен компилятор. Интерпретаторы переводят текст программы не целиком, а покомандно и не создают объектного модуля. Для исполнения программы в этом случае всегда нужен интерпретатор. Последнее свойство является явным недостатком. Однако отладка программы при использовании интерпретатора резко упрощается. Для некоторых языков разработаны как компиляторы, так и интерпретаторы. К числу таких языков относится QuickBasic. На практике вы будете работать с его усеченной по числу операторов версией QBASIC, для которого существует лишь интерпретатор. Для разработки и отладки программ на языках высокого уровня используются системы программирования, которые состоят из следующих компонентов:

1) текстовый редактор для подготовки текста программы на ЯВУ

2) транслятор для перевода исходного текста программы на язык машинных кодов

3) средства для отладки программ.

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