Основы
Основы
алгоритмизации
алгоритмизации
  • Моделирование и формализация
  • Алгоритм и его свойства
  • Способы записи алгоритмов
  • Линейные алгоритмы (следование)
  • Ветвления в алгоритмах
  • Циклическая форма организации действий
  • Замкнутые и разомкнутые системы управления
  • Языки программирования
  • Вопросы и упражнения
  • Языки программирования

  • Презентация "Язык Pascal. Алфавит. Величины"
  • Презентация "Объектно-ориентированное программирование"
  •      Человеку в течение всей своей жизни приходится решать много задач, и всё же часто ему хочется поручить выполнение своих работ кому-нибудь другому, например, машине. ЭВМ - это электронно-вычислительная машина, и её услугами человек пользуется уже не одно десятилетие. Единственное, что необходимо сделать человеку, чтобы заставить ЭВМ трудиться - это составить программу на понятном для этой машины языке. Такие языки называются языками программирования. Они служат для написания программ для ЭВМ.
        Работы над созданием языков программирования начались в 50-х годах. Интересы потребителей и характер использования вычислительных машин того времени привели к тому, что созданные языки программирования были тесно связаны с математическими и научными вычислениями, т.е. они были проблемно-ориентированными.
        В 1954 году в США был начат проект языка программирования Фортран, а чуть позже в Европе был начат Алгол. Название Фортран - это сокращение слов «ФОРмула - ТРАНслятор», т.е. преобразование в машинный код математических формул. Алгол, хоть и происходит от английских слов Algorithmic Language (алгоритмический язык), также является проблемно-ориентированным и в основном для выполнения вычислений. Велись нескончаемые споры о том, какой из этих двух языков лучше. Основной недостаток Фортрана - это то, что он относительно сложен для многих пользователей. Этот язык значительно усложняет решение простых задач. Поэтому на базе Фортрана был создан более простой язык программирования Бейсик, ставший сейчас очень популярным языком общения человека и ЭВМ.
        Язык Бейсик разработан в 1965 г. в Дартмунтском колледже в США Джоном Кетмени. Название Бейсик (BASIC) несёт тройную смысловую нагрузку. Во-первых, BASIC происходит от сокращения английской фразы «Beginner s All- Purpose Symbolic Instruction Code»,т.е. многоцелевой язык символических инструкций для начинающих. Во-вторых, так назывался разговорный язык, который был разработан в прошлом веке специально для туземного населения колоний Великобритании. Наконец, в-третьих, BASIC означает базовый.
        Язык Алгол также отличается удобством, элементарностью, а главное - обозримостью вычислительных программ и алгоритмов. Фундаментальные идеи Алгола стали основополагающими для многих языков программирования высокого уровня.
        И Фортран, и Алгол являются языками программирования, ориентированными в основном для вычислений. Но компьютеры используются для решения не только вычислительных задач. Для удовлетворения потребностей в решении экономических и коммерческих задач был создан язык Кобол. Он не «математичен», поскольку разрабатывался так, чтобы походить на обычный, хотя и сильно сокращённый английский язык. В СССР была разработана русская версия Кобола.
        В 60-х годах фирма IBM, мощная компания по производству ЭВМ, сделала попытку совместить всё лучшее, что имеется в основных языках программирования, в одном языке ПЛ/1. Главным лозунгом явилось: иметь в одном языке средства, необходимые всем категориям программистов, с тем, чтобы отдельному программисту достаточно было ознакомиться лишь с определённым подмножеством языка. Этот лозунг не нашёл широкого признания, особенно среди других производителей ЭВМ, так что продолжают использоваться отдельные языки, тем более что ПЛ/1 сложен для изучения и применения.

    в начало

        В период выхода на мировой рынок микропроцессоров появился Паскаль - язык программирования, являющийся прямым развитием линии Алгола. Он создан швейцарским математиком Никласом Виртом в 1969 году и назван в честь английского учёного Б.Паскаля. Это очень компактный язык, поэтому его часто используют для обучения приёмам программирования. Он, как и Бейсик, очень популярен среди пользователей персональных компьютеров.
        Программы для компьютера в принципе можно записывать сразу в машинных кодах, используя для этого непосредственно последовательность нулей и единиц, как для команд, так для адресов и данных. Однако такая работа очень трудоёмка и легко приводит к ошибкам, поэтому современная практика программирования основана на том, что сначала программа пишется на каком-то языке, более удобном для человека, а затем эта программа транслируется, т.е. переводится в машинный код.
        Таким образом, для программирования используется два средства:
        1.Язык программирования, используемый человеком или входной язык.
        2.Объектный язык, на котором получается программа в машинных кодах, непосредственно загружаемая в память ЭВМ.
        Программа на машинном языке оказывается более эффективной, особенно если она разработана высоко квалифицированным программистом и учитывает особенности архитектуры конкретного компьютера. Но общая тенденция развития программирования состоит в том, чтобы писать программу на символическом языке, который представляет собой сокращения машинных команд и условные адреса, а затем транслировать её в машинные коды. Такой язык программирования называется языком Ассемблера. На языке Ассемблера пишут программы в основном системные программисты
        В самом языке программирования не заложен способ его реализации. Имеется два основных подхода к реализации языков программирования: компиляция и интерпретация. Компилятор (или транслятор) переводит программу на языке программирования в машинный код (на объектный язык) конкретного компьютера, на котором будет выполняться программа. Ясно, что один и тот же компьютер может «понимать» и Basic, и Pascal, и какой-либо другой язык, всё зависит от того, транслятор какого языка программирования размещён в оперативной памяти ПК. Интерпретатор же является собственно той системой, которая исполняет программу на языке программирования (на входном языке), т.е. каждая инструкция исходной программы переводится и сразу выполняется. Между этими двумя подходами имеется множество промежуточных вариантов: существуют компиляторы, которые компилируют во время ввода программы (т.е. в интерактивном режиме). Существуют интерпретаторы, которые компилируют программу в промежуточный код.   
        Программы-трансляторы составляются системными программистами и входят в программное обеспечение компьютера. Цепочка событий от составления программы на языке программирования высокого уровня до получения результатов решения задачи представлена на следующей странице.

    в начало

        Компьютер является универсальным исполнителем по обработке информации. Следовательно, для него, как для любого исполнителя, свойственна определенная система команд исполнителя. Именно эта система команд называется языком машинных команд. Состав языка машинных команд был предложен Джоном фон Нейманом еще в 1946 г. и во многом сохранился в современных компьютерах.
        Программа управления компьютером - это последовательность команд. Каждая команда является директивой для процессора на выполнение определенного действия. Эти действия выполняет либо сам процессор (арифметические и логические операции), либо внешние устройства (команды ввода, вывода) под управлением процессора.

    Этапы решения задачи на ЭВМ:

        Согласно принципам Дж. фон Неймана, программа во время ее исполнения и обрабатываемые ею данные находятся в оперативной памяти ЭВМ. И то, и другое имеет вид двоичных кодов. Процессор исполняет программу, начиная с первой команды и заканчивая на последней (или на специальной команде "стоп"). Во время исполнения очередной команды процессор переписывает её в свои регистры, исполняет и переходит к следующей команде.
        Программисты, работавшие на ЭВМ первого поколения (ламповые машины 50-60-х гг.), писали программы на языке машинных команд. Это довольно сложная работа. Для облегчения программирования созданы языки программирования высокого уровня. Примерами таких языков являются Фортран, Паскаль, Бейсик, Си и др. Составление программ на таких языках много проще, чем на языке машинных команд. Программирование стало доступно большему числу людей.
        В 80-е годы активно прорабатывалась идея визуального программирования, основной смысл которой состоит в том, чтобы процесс «сборки» программы осуществлялся на экране дисплея из программных конструкций - картинок. В результате появились среды разработки 4-го поколения (4GL), в которых разрабатываемый программный продукт строится из готовых крупных блоков при помощи мыши. Примерами таких сред являются: Delphi, Visual Age, Visual Java.
        Для программиста, составляющего программы на универсальных языках программирования, в том числе перечисленных выше, компьютер является универсальным исполнителем. Иначе говоря, на таких языках можно составить программу решения любой задачи по обработке информации.

    в начало

        Программы решения задач составляются программистами по алгоритмам. Человек не должен объяснять исполнителю свои цели и смысл команд программы. Очевидно, что компьютер и не сможет понять смысла совершаемых им действий. Кроме того, компьютер не обладает способностью к анализу результатов, например, с точки зрения их соответствия постановке задачи. Компьютер не может обойтись без программы и исходных данных, подготовить которые под силу только человеку. С этой точки зрения решение задачи компьютером - это формальное исполнение алгоритма её решения, закодированного и хранимого вместе с данными в оперативной памяти.
        Для человека этот факт важен потому, что он должен понимать ограниченность возможностей компьютера как исполнителя, необходимость самому предусмотреть все тонкости команд, поручаемых компьютеру для исполнения, и что вся ответственность за использование компьютеров обществом лежит только на людях. Человек использует компьютер для решения самых разнообразных информационных задач: работа с текстами, создание графических изображений, получение справки из базы данных, табличные расчеты, решение математической задачи, расчет технической конструкции и многое другое. Для их решения в распоряжении пользователя ЭВМ имеется обширное программное обеспечение: системное программное обеспечение (ядром которого является операционная система), прикладное программное обеспечение (программы, предназначенные для пользователя) и системы программирования (средства для создания программ на языках программирования).
        Исходя из условия задачи, пользователь решает для себя вопрос о том, каким программным средством он воспользуется. Если в составе доступного прикладного программного обеспечения имеется программа, подходящая для решения данной задачи, то пользователь выбирает её в качестве инструмента (система управления базами данных, табличный процессор, математический пакет и др.). В случае же, если готовым прикладным программным обеспечением воспользоваться нельзя, приходится прибегать к программированию на универсальных языках, т. е. выступать в роли программиста.
        Принято делить программистов на две категории: системные программисты и прикладные программисты. Системные программисты занимаются разработкой системного программного обеспечения, систем программирования и инструментальных средств прикладного программного обеспечения. Прикладные программисты составляют программы для решения практических (прикладных) задач: технических, экономических, физических и др.
        Пользователь (не программист) работает с каким-либо средством прикладного программного обеспечения (текстовым редактором, табличным процессором, бухгалтерским пакетом программ и т. п.). В этом случае компьютер для него является специализированным исполнителем, ориентированным на определенный тип работы (редактирование текста, табличные расчеты, вычисление заработной платы и пр.). Такой пользователь может и не знать, какие услуги компьютера реализуются аппаратными, а какие - программными средствами. Для него компьютер является "виртуальной машиной", обслуживающей его информационные потребности.

    в начало

    2007 © Copyright by L.Gazizova (E-mail: leniza@hotbox.ru), WebMasters N.Woit, R.Akzamutdinov, А.Aleeva

    Hosted by uCoz