10.08.2024
#доклад
#конференция
42

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

Рассказываем, как написать тезисы для доклада на конференцию в 2024 году.
Ссылка на ГОСТ
Фото: Rocky Widner / FilmMagic / Getty Images
Блаженко В.
Эксперт по предмету «Информатика»
Студенческие работы от сервиса №1 в России
Поможем написать диплом, курсовую, реферат и любые другие типы работ. Сделаем качественно или вернём деньги.
Заказать
Аннотация к статье
В материале разберу основные этапы работы над курсовой и приемы, которые облегчают написание: я писал курсовые сам и помогал другим студентам.Общая рекомендация ко всему тексту — любые проблемные места лучше обсудить с научным руководителем. Здорово, если вы с ним уже знакомы — например, он ведет у вас пары. Если оставаться с ним в контакте, не понадобится переделывать работу в последний момент.
Содержание статьи
  1. Структура систем программирования
  2. Комплекс языков программирования
  3. Машинное ориентирование в системах программирования
  4. Компилятор и интерпретатор: в чем разница и схожесть

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

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

У общего ПО задача — реализовать функции в рамках структуры компьютера. В состав этого ПО входит операционная система (ОС), система программирования (СП), программы по техническому обслуживанию.

Состав специального ПО — проблемно-ориентированные прикладные программы (ПП). Они решают выделенные задачи пользователей, применительно к объектам управления, исследования или вычислений.

Определение №1 Системой программирования называется программная структура, с ее применением разработчики на конкретных языках программирования создают прикладные программы, тестируют их и оптимизируют.

Во время работы с выбранной языковой средой в программировании, СП функционирует с определенной ОС, на которую она рассчитывалась. Но разрабатывать программы в этой среде программисту доступно для любых ОС.

СП — это инструментальный набор программиста. Состоит из совокупности отдельных компонентов:

  • Компилятора (транслятора, интерпретатора). Он переводит изначальную программу в соответствующий результирующий продукт с машинными командами, или алгоритм в ассемблере;
  • Интегрированных сред разработчика;
  • Текстового редактора для программ;
  • Библиотеки со стандартными подпрограммами и функциями, готовыми участками кода и фреймворками — каркасами приложений;
  • Программного отладчика — для поиска и устранения ошибок;
  • Диалоговой среды. Она организует взаимодействие пользователей с системой. В том числе в многооконном режиме работы;
  • Утилит, которые упрощают работу с каждой библиотекой;
  • Ассемблера (макроассемблера) — машинно-ориентированного языка.

В такой структуре программисты создают прикладные программы под реализацию рабочих заданий.

Комплекс языков программирования

Языки — ключевое звено в структурах СП. Соответственно с ними, системы делятся на процедурные и непроцедурные, то есть проблемно-ориентированные, а также объектно-ориентированные.

Процедурные (алгоритмические) языки

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

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

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

Высокоуровневый язык включает в себя комплекс команд и правил их использования.

Процедурные языки высокого уровня:

  • Fortran — старейший (1957), но остается активным, рабочим. Ориентируется на математические задачи.
  • Basic — простой и одновременно с широким применением символьный код, разработанный в 1964 году. Применяется для обучения начинающих программистов, в тестировании и отладке. Современными его версиями разрабатываются приложения, графические расширения (Visual), и задачи автоматизации.
  • Algol — один из первых (1958), его заслуга состоит в развитии теории языков. Современные языки переняли от него независимые структурные блоки, рекурсию, БНФ в синтаксисе.
  • PL/1 — использовался в структурном программировании при обработке данных, в АСУ. Обладал огромным набором конструкций синтаксиса.
  • С (1973) — используется при создании ПО, ОС (Линукс), ПП.
  • Pascal (1970) — создавался на основе Algol . Имеет строгую структуру и типизацию переменных, понятный синтаксис.

Объектное ориентирование языков

Объектно-ориентированные системы программирования строятся на языках:

  • Delphi — получен на основах Паскаля. Цель — создавать ПП и приложения на мобильные и веб-устройства, консольное ПО.
  • Java — у языка назначение — создавать интерактивные web-страницы.
  • С++ (1983) — объектно-ориентированное расширение С. Работает на всех платформах. На нем пишутся программы для всех ОС.
  • Python — популярный современный язык для интернет-приложений, также машинного обучения. Разно платформенный, эффективный и простой, хорошо изучается.
  • JavaScript — с хорошо читаемым, понятным кодом. Назначение — писать код для сайтов, мобильных приложений, серверных разделов.

Концепция объектного ориентирования языков — взаимодействие между собой программ в общем комплексе, где важно не место и иерархия, а свойства и взаимные зависимости, операции между ними.

Непроцедурные языки

В проблемно-ориентированных СП используются языки:

  • Prolog — на нем строится логическое программирование, включая математическую логику, искусственный интеллект.
  • Lisp. Его применение — обработка, анализ иерархических систем, текстовый анализатор, AutoCAD, Audacity.
  • SQL — английская аббревиатура переводится как «язык со структурированными запросами» декларативного программирования в управлении базами данных.

Непроцедурному языку пользователь указывает действие для выполнения, но без подробностей выполнения.

Машинное ориентирование в системах программирования

Совокупность входных языков, целевое применение и структура СП разносят их по двум категориям: машинно-ориентированных и машинно-независимых.

Состав машинно-ориентированных структур — входной язык, командные операторы, компоненты визуализации.

Они выделяются следующими свойствами:

  • высоким качеством программирования;
  • предсказуемостью в объектном коде и объемах памяти;
  • использованием определенных аппаратных средств;
  • необходимостью знать наборы команд и особенности работы конкретного компьютера;
  • малой производительностью и высокой трудоемкостью написания программ.

По степени автоматизации ПМОС  состоят из классов:

  • Машинных языков. В отдельных компьютерах есть свои определенные командные языки, чтобы выполнять операции.
  • Систем с символьным кодированием. В их командных языках кодам операций с адресами назначаются индентификаторы-символы. Благодаря таким формам их заполнения программист легко запоминает смысловые значения операций. А ошибки при написании появляются значительно реже.
  • Автокодов. Со всеми возможностями языков с символьным кодированием (ЯСК) и расширенным введением макрокоманд — постоянно используемых командных последовательностей, преобразующих информацию с определенными процедурами. Часть развитых автокодов называют Ассемблерами. Они находятся между автокодами и языками высокого уровня. Создание сервисных программ — с помощью Ассемблеров. 

Для перевода макрокоманд в машинный код применяются 2 способа:

  • Расстановка. Здесь каркас с командами реализует нужную функцию, которую обозначила макрокоманда. Происходит трансляция фактических параметров в программную конструкцию, которая с преобразованием становится машинной программой.
  • Генерация. Макрокоманды анализируются специальными программами. Те определяют задачи для выполнения. Формируют последовательность с командами для их реализации.

Обоими способами ЯСК транслируется в набор с макрокомандами. Они же — операторы автокодов.

  • Макросов. Это сжатые записи вместо символов-идентификаторов. Они описывают выполнение необходимых операций в компьютере. Нужны, чтобы сокращать исходные записанные программы. Макропроцессор — компонент ПО, который запускает работу макроса. К нему подается файл с макросами и начальный текст. Он после преобразования выдает выходной текст.

Системы с машинно-независимым программированием

МНСП описывают алгоритмы с решениями заданной функции и информацию для обработки. В таком случае не требуются знания структуры и принципов работы ЭВМ.

МНСП представляются следующими видами:

  • Процедурно-ориентированными системами. Их языки описывают алгоритмы (процедуры), которые обрабатывают информацию в выделенной категории задач. Предоставляют средства для короткой и четкой формулировки, а потом выдачи результатов в заданном виде. Процедурные языки Fortran и Algol решают задания математического характера, Simula  может моделировать код, Lisp работает со списками.
  • Проблемно-ориентированными системами. Они направлены на удовлетворение конкретных требований и потребностей пользователей. Внедряются в текстовых процессорах и издательских системах, графических редакторах, системах автоматизированного проектирования (САПР), электронных таблицах, системах распознавания, финансовых и статистических программах.
  • Диалоговых языков. Их еще называют интерактивными. С лаконичными конструкциями, пошаговыми трансляциями, мнемоничностью.  Типичный разговорный язык, ориентированный на вычисления — Basic.
  • Непроцедурных языков. Их задача — описание организации информации, ее обработка через фиксированные алгоритмы. А также обрабатывать таблицы, генерировать отчеты, и работать с ОС. Табличные языки создают описания сложных ситуаций для системного анализа.

Компилятор и интерпретатор: в чем разница и схожесть

Компиляторы и интерпретаторы — это два основных типа программного обеспечения, используемых для выполнения программ, написанных на языках программирования. Оба они преобразуют исходный код в форму, которая может быть выполнена компьютером, но делают это по-разному. Давайте рассмотрим их различия и схожие черты.

Компилятор

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

При обработке выполняются действия:

  • ищутся синтаксические ошибки;
  • проведение смыслового анализа;
  • автоматическая генерация машинного кода.

Дальше – обработка сгенерированного кода в сборщике компилятора. Преобразованный файл готов к запуску, и заносится в память. Дальше его запускает операционная система.

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

Интерпретатор

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

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

А важный его плюс в том, что программа может быть остановлена в любое время. После этого пользователю открыт режим диалога с компьютером. Можно контролировать память, выполнять сложное преобразование информации. В это время пользователь контролирует состояние программно-аппаратного комплекса, достигается высокая надежность.

Работа интерпретаторов эффективно используется во время обучения программированию. Можно спокойно разбираться в работе каждой команды во время останова, проводить анализ, а потом продолжать работу.

Поможем с написанием учебной работы от 24 часов

Напишем бесплатный план к вашей работе!