Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы и ответы к Алгоритмизации.docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
99 Кб
Скачать
☆
  1. Классификация языков программирования.

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

  • высокое качество создаваемых программ (компактность и скорость выполнения);

  • возможность использования конкретных аппаратных ресурсов;

  • предсказуемость объектного кода и заказов памяти;

  • для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ;

  • трудоемкость процесса составления программ ( особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок;

  • низкая скорость программирования;

  • невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.

Машинно-ориентированные языки по степени автоматического программирования подразделяются на классы.

Есть несколько разных классификаций языков программирования. Деление языков на языки высокого и низкого уровня в зависимости от терминов, необходимых для описания задачи, является наиболее распространенной из них.

Языки низкого уровня близки к машинным командам, языки высокого уровня близки к естественным языкам программирования.

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

Бывает 3 вида трансляторов:

  • Интерпретатор - пооператорно обрабатывает и выполняет исходный код программы;

  • Компилятор, которым вся программа преобразуется в модуль на машинном языке, после чего он ее записывает в память компьютера, и только потом исполняет;

  • Ассемблер - переводит записанную на ассемблере программу на машинный язык.

Также языки программирования делятся на поколения:

  • Первое поколение: машинно–ориентированные, ручное управление памятью на машинах первого поколения;

  • Второе поколение: так называемый автокод - мнемоническое представление команд;

  • Третье поколение: использовались при создании прикладных программ;

  • Четвертое поколение: были разработаны для управления базами данных и создания специальных прикладных программ;

  • Пятое поколение: визуальный, объектно–ориентированный и декларативный язык, к примеру, LISP и PROLOG, используемые при построении программ, использующих методы искусственного интеллекта, а также Delphi и C++.

  1. Сравнительная характеристика языков программирования высокого уровня.

  1. Концепция структурного программирования.

Структурное программирование (СП) возникло, как вариант решения проблемы, уменьшения СЛОЖНОСТИ разработки программного обеспечения.

В начале эры программирования работа программиста ничем не регламентировалась. Решаемые задачи не отличались размахом и масштабностью, использовались в основном машинно-ориентированные языки и близкие к ним язык типа Ассемблера, разрабатываемые программы редко достигали значительных размеров, не ставились жесткие ограничения на время их разработки.

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

Таким образом, цель структурного программирования - повышение надежности программ, обеспечение сопровождения и модификации, облегчение и ускорение разработки.

Методология структурного императивного программирования — подход, заключающийся в задании хорошей топологии императивных программ, в том числе отказе от использования глобальных данных и оператора безусловного перехода, разработке модулей с сильной связностью и обеспечении их независимости от других модулей.

Подход базируется на двух основных принципах:

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

  • Использование структурного кодирования.