Понедельник, 15.06.2026
Шпаргалка :)
Меню сайта
Категории раздела
Мои статьи [172]
Наш опрос
Оцените мой сайт
Всего ответов: 259
Форма входа
Главная » Статьи » Мои статьи

Программа на языке высокого уровня. Язык программирования С.

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

Компилятор – осуществляет перевод текста программы на машинный язык целиком. Результат работы – объектный файл, содержащий программу на машинном языке и информацию о данных, используемых программой. Объектный файл обрабатывается компоновщиком (линкером)  или редактором связи. Компоновщик обрабатывает объектные файлы, разрешает внешние ссылки (делает доступным вызовы объектов функций или данных из других объектных файлов или стандартных библиотек), осуществляет необходимую подготовительную работу для последующей загрузки программы на исполнение. Загрузчик программ, осуществляющих размещение исполняемого кода и данных в памяти ЭВМ и передающий управление первой исполняемой команде программы. В случае персональных ЭВМ функции загрузчика распределены между ОС и кодом, включаемым в исполняемый файл. Исполнение программы начинается с загрузки в регистр счетчика исполняемых команд ЦП, адреса первой исполняемой команды программы. Устройство управления считывает по этому адресу код команды, в соответствии с ним считывает значения операндов, передает код и операнды АЛУ, которое выполняет необходимые операции. По завершению выполнения команды значение регистра счетчика команд увеличивается на значение длины команды, которая известна по коду операции. Процедура повторяется до тех пор, пока не будет встречена команда stop. Исполняемая программа обычно завершается возвратом управления программе, вызвавшей данную программу (ОС).

Интерпретатор – покомандно или построчно считывает программу на исходном языке, переводит на машинный язык и отправляет на  выполнение. Входом является программа на языке программирования. Результат – построчно выполняемая команда.

Компилятор языка С воспринимает исходный файл, содержащий программу на языке С, как последовательность текстовых строк. Каждая строка завершена символом новой строки. Этот символ вставляется текстовым редактором при нажатии клавиши ENTER (ВВОД).

 

 

Компилятор языка С последовательно считывает строки программы и разбивает каждую из считанных строк на группы символов, называемые лексемами. Лексема—это единица текста программы, которая имеет самостоятельный смысл для компилятора языка С и которая не содержит в себе других лексем. Никакие лексемы, кроме символьных строк, не могут продолжаться на последующих строках текста программы. Знаки операций, константы, идентификаторы и ключевые слова, описанные в этом разделе, являются примерами лексем. Разделители, например квадратные скобки [], фигурные скобки {}, круглые скобки (), угловые скобки < > и запятые, также являются лексемами. Внутри идентификаторов, ключевых слов, а также знаков операций, состоящих из нескольких символов, пробельные символы недопустимы. Когда компилятор языка Си выделяет отдельную лексему, он пытается включить в нее последовательно столько символов, сколько возможно, прежде чем перейти к выделению следующей лексемы. Рассмотрим, например, следующее выражение: i+++j В этом примере компилятор языка Си вначале сформирует из первых двух знаков "плюс" операцию инкремента (++), а из оставшегося знака плюс — операцию сложения. Выражение проинтерпретируется как (i++)+(j), а не как (i)+(++j).В подобных случаях рекомендуется для ясности разделять лексемы пробельными символами или круглыми скобками.

Категория: Мои статьи | Добавил: Eskander (27.01.2010)
Просмотров: 487 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2026
    Бесплатный конструктор сайтовuCoz