Институт №8 МАИ

6 день. Системы программирования


Словарик программиста:

Термины с лекции:




Система программирования

Система программирования — организованная совокупность компонентов для обеспечения программирования.

Синус, логарифм, экспонента — не компилируются в Pascal. Это хороший пример, где компилятор работает не до конца.

Если язык чисто компилируемый (а таких нет), то в нём и нет среды. А сама среда нужна, чтобы можно было взаимодействовать с Unix (с ОС).

Текстовые терминалы

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

В дни универсальных ЭВМ с середины 1970-х до середины 1980-х люди использовали терминалы для дистанционной связи с компьютерами. В отличие от монитора, который обычно размещен рядом с компьютером, терминал может быть расположен очень далеко от главного компьютера.

Терминал получил своё название, так как был размещен на терминальном конце кабеля.

Терминал состоит из экрана и клавиатуры. Программы выполняются на главном компьютере, но результаты отображаются на экране терминала.

Подробнее про терминал

Языковые процессоры

© Assembler — это почти не нужно. Во всём мире нужно человек 100, программирующих на Assembler.

Человеку удобно работать на языке высокого уровня. Но программа и высокоуровневый язык имеют между собой большую пропасть, которую как-то надо устранять.

Компилятор (или транслятор) — принимает на вход текст высокого уровня и транслирует его в текст низкого уровня (в машинные тексты).

Раньше компиляторы было дорого и тяжело разрабатывать (да и сейчас, в принципе). Изначальным целевым языком компилятора был Assembler.

Таким подходом оправдывалась экономия расходов на разработку новых компиляторов.

Компилятор воспринимает всю программу целиком, анализирует её правильность и переводит в машинные коды. Подобно переводчику, он берёт и выполняет письменный перевод текста.

© Все стоят к Assembler спиной!

Недостатки письменного перевода (компилирования): дороговизна, скорость работы. Одновременно они являются и продолжением его достоинств. Письменный перевод всегда получается качественным.

Интерпретатор же берёт и выполняет (бубнит текст).

© Каждый отладчик - это интерпретатор!

Интерпретатор — устный переводчик (ему говорят, и машина выполняет).

Итак, письменный перевод выполняется компилятором, устный перевод - интерпретатором.

© Лучший пример интерпретатора — железный язык.

На компиляторе пишут многоразовые программы

Assembler не является интерпретатором. По методу реализации он является компилятором, хоть и очень примитивным.

На интерпретаторах пишут одноразовые программы/лабы.

© Питон не предназначен для систем… © Windows по уровню сложности сравним с Boeing…

Отладчик — компилятивный суррогат.

Языковая среда — интерпретативные компоненты ЯП.

Профессор Вирт предложил Pascal - улучшение Algol.

© Язык Си мощнее Pascal в 5.5 раз!
- `(joke)`
.....Почему?
- Описание страницы языка Си занимает
- 550 страниц, а языка Pascal - 99! 

P-code — это двоичный массив, маленькая абстрактная стековая машина. Технология компилирования называлась bootstrapping (см. бутстрепинг) (в переводе - развязывание шнурка, потянув за него).

GNU compiler collection

Компиляция программ

a.out — assembler.out (вывод ассемблера - результат линкера)

Команда a.out предназначена для выполнения без затрат на компиляцию (в некомпилируемых системах).

(?) библиотеки (.dll) (?) ключи компилятора - флаги Компиляция + ключ, Linkage

Программирование

Создание программ включает в себя ещё тестирование и отладку.

Тесты должны прощупывать все ветки программы.

© Программист должен быть злым и ненавидеть свою программу, чтобы она работала!

Методы отладки:

1) Ручная отладка. Иначе говоря, ручная прокрутка программы — это интерпретация. Она полезна! Это совершенно другой подход к программированию! 2) Отладка средствами стандарта языка. Проверки вставляем после того, как программа отказалась работать. 3) С помощью отладчика. Если тесты не работают, надо искать семантические ошибки в коде программы. Когда сами пишете программу, часто глаз замыливается, и тогда возникают ошибки. Для этого производите отладку через некоторое время, когда вы полны сил!

© Машина Тьюринга 
— это рулон туалетной бумаги

Дополнительная информация