
Лекция на тему «Языки и методы программирования»
Вопросы:
-
Машинный код процессора
-
Алгоритм и программа
-
Язык программирования
-
Компиляторы и интерпретаторы
-
Классификация языков программирования
-
Системы программирования
-
Средства создания программ
-
Эволюция языков программирования
-
Структурное программирование
-
Объектно-ориентированное программирование
-
-
Машинный код процессора
Процессор компьютера – это большая интегральная микросхема. Все команды и данные он получает в виде электрических сигналов. Сигналы можно представить как совокупности нулей и единиц, т.е. числами. Разным командам соответствуют разные числа. Поэтому реально программа, с которой работает процессор, представляет собой последовательность чисел, называемую машинным кодом.
-
Алгоритм и программа
Управлять компьютером нужно по определенному алгоритму. Алгоритм – это точно определенное описание решения задачи в виде конечной (по времени) последовательности действий. Такое описание ещё называется формальным. Для представления алгоритма в виде, понятном компьютеру, служат языки программирования. Сначала всегда разрабатывается алгоритм действий, а потом он записывается на одном из таких языков. В итоге получается текст программы - полное, законченное и детальное описание алгоритма на языке программирования. Затем этот текст программы специальными служебными приложениями, которые называются трансляторами, либо переводится в машинный код, либо исполняется.
Трансляция это способ преобразования исходного текста программы, написанного на языке высокого уровня, в язык машинных кодов (объектный код). В процессе трансляции проводится лексический, синтаксический и семантический анализ текста программы. Если в программе имеются ошибки, то система программирования выдает соответствующие сообщения.
Одной из разновидностей транслятора является компилятор, обеспечивающий перевод программ с языка высокого уровня (приближенного к человеку) на язык более низкого уровня (близкий к ЭВМ), или машинный язык. Другая разновидность транслятора – ассемблер, осуществляющий перевод с языка низкого уровня (языка Ассемблер) на машинный язык, имеющий примерно тот же уровень. Некоторые трансляторы служат для переноса программ с одной машины на другую.
-
Язык программирования
Самому написать программу в машинном коде весьма сложно, причем эта сложность резко возрастает с увеличением размера программы и трудоемкости решения нужной задачи. Условно можно считать, что машинный код приемлем, если размер программы не превышает нескольких десятков байтов и нет потребности в операциях ручного ввода/вывода данных.
Поэтому сегодня практически все программы создаются с помощью языков программирования. Теоретически программу можно написать и средствами обычного человеческого (естественного) языка – это называется программированием на метаязыке (подобный подход обычно используется на этапе составления алгоритма), но автоматически перевести такую программу в машинный код пока невозможно из-за высокой неоднозначности естественного языка.
Языки программирования – искусственные языки. От естественных они отличаются ограниченным числом «слов», значение которых понятно транслятору, и очень строгими правилами записи команд (операторов).
Совокупность подобных требований образует синтаксис языка программирования, а смысл каждой команды и других конструкций языка – его семантику.
На этапе лексического анализа производится выделение из исходного текста отдельных слов и символов языка и их проверка. Определяются ключевые слова, имена объектов и данных, удаляются лишние пробелы и комментарии. Нарушение формы записи приводит к тому, что транслятор не может понять назначение оператора и выдает сообщение о синтаксической ошибке.
На этапе семантического анализа производится проверка типов данных.
Правильно написанное, но не отвечающее алгоритму использование команд языка приводит к семантическим ошибкам (называемые ещё логическими ошибками времени выполнения).
Процесс поиска ошибок в программе называется тестированием, процесс устранения ошибок – отладкой.
Примеры вопросов
1. Компонент интегрированной системы программирования, предназначенный для перевода исходного текста программы в машинный код, называется:
-
-
транслятором;
-
переводчиком;
-
редактором связей?
2. На какой стадии трансляции может быть выявлена ошибка «пропущена точка с запятой»:
-
на стадии оптимизации кода;
-
на стадии лексического анализа;
-
на стадии синтаксического анализа;
-
на стадии семантического анализа?
3. Какая стадия трансляции занимается проверкой типов в выражениях:
-
генерация кода;
-
лексический анализ;
-
семантический анализ;
-
синтаксический анализ?
4. К какому сообщению приводит обнаруженное при тестировании нарушение формы записи программы? — К сообщению о синтаксической ошибке.