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

 

Первые попытки внедрить компьютер в обучение были сделаны еще в 50-х годах ХХ века, когда в качестве устройства ввода вывода использовался телеграфный аппарат. В течение последующих 40-лет ведутся непрерывные интенсивные исследования в этой области. За это время компьютерная техника изменилась, стала более совершенной, появились персональные компьютеры, микрокомпьютеры. Разработано программное обеспечение, обеспечивающее довольно широкое использовать технические возможности компьютера. Снижение стоимости компьютерной техники позволило внедрить ее в образовательных учреждениях. Теперь компьютеры пошли в школы, институты и в количественном выражении. Компьютеризация образования идет высокими темпами. И в нашей стране школьники старших классов уже изучают такой предмет как информатика, знакомятся с компьютерами и основами работы на них.

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

Программирование – это наиболее важный раздел курса «Информатика и ИКТ», изучение которого позволяет решать целый ряд дидактических и педагогических задач.

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

Рассмотрим понятие и структуру системы программирования в целом, и языки в частности.

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

В настоящее время разработка любого системного и прикладного программного обеспечения осуществляется с помощью систем программирования, в состав которых входят [10, c. 12]:

– трансляторы с языков высокого уровня;

– средства редактирования, компоновки и загрузки программ;

– макроассемблеры (машинно-ориентированные языки);

– отладчики машинных программ.

Системы программирования, как правило, включают в себя:

– текстовый редактор (Edit), осуществляющий функции записи и редактирования исходного текста программы;

– загрузчик программ (Load), позволяющий выбрать из директория нужный текстовый файл программы;

– запускатель программ (Run), осуществляющий процесс выполнения программы;

– компилятор (Compile), предназначенный для компиляции или интерпретации исходного текста программы в машинный код с диагностикой синтаксических и семантических (логических) ошибок;

– отладчик (Debug), выполняющий сервисные функции по отладке и тестированию программы;

– диспетчер файлов (File), предоставляющий возможность выполнять операции с файлами: сохранение, поиск, уничтожение.

Ядро системы программирования составляет язык. Существующие языки программирования можно разделить на две группы: процедурные и непроцедурные (рисунок 1).

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

Процедурные языки разделяют на языки низкого и высокого уровня [10, c. 154].

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


Рис. 1. Общая классификация языков программирования.


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

Фортран (FORmula TRANslating system – система трансляции формул); старейший и по сей день широко распространенный язык, особенно среди пользователей, которые занимаются численным моделированием. Это объясняется несколькими причинами [51, c. 125]:

– существованием огромных фондов прикладных программ на Фортране, накопленных за эти годы, а также наличием огромного количества программистов, эффективно использующих этот язык;

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

– изначальной направленностью Фортрана на физико-математические и технические приложения; в частности, это проявилось в том, что в течение долгого времени он оставался единственным языком со встроенным комплексным типом переменных и большим набором встроенных функций для работы с такими переменными.

За прошедший период сформировалась новая методология и философия программирования. С начала 70-х годов Фортран подвергался заслуженной критике. Выпущенный в 1990 году транслятор MS-Fortran 5.0 практически полностью соответствует стандарту Fortran-90.

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

Бейсик (Basic – Beginner’s All-Purpose Symbolic Instruction Code – «универсальный символический код инструкций для начинающих»). Прямой потомок Фортрана и до сих пор самый популярный язык программирования для персональных компьютеров. Появился Бейсик в 1963 году (назвать автора было бы трудно, но основная заслуга в его появлении, несомненно, принадлежит американцам Джону Кемени и Томасу Курцу). Как и любые преимущества, простота Бейсика оборачивалась, особенно в ранних версиях трудностями структурирования; кроме того, Бейсик не допускал рекурсию – интересный прием, позволяющий составлять эффективные и в то же время короткие программы.

Разработаны мощные компиляторы Бейсика, которые обеспечивают не только богатую лексику и высокое быстродействие, но и возможность структурного программирования. По мнению некоторых программистов, наиболее интересными версиями являются GWBASIC, Turbo-Basic и Quick Basic.

В свое время появление Quick Basic ознаменовало рождение второго поколения систем программирования на языке Бейсик. Он предоставлял возможность модульного и процедурного программирования, создания библиотек, компиляции готовых программ и прочее, что вывело его на уровень таких классических языков программирования, как Си, Паскаль, Фортран и др. Более того, в связи с отсутствием официального стандарта языка Бейсик, его реализация в виде Quick Basic стала фактическим стандартом. Безусловными лидерами среди различных версий Бейсика были Quick Basic 4.5 и PDS 7.1 фирмы Microsoft, появившиеся в конце 80-х годов [13, c. 6].

В 1960 году командой во главе с Петером Науром (Peter Naur) был создан язык программирования Algol. Этот язык дал начало целому семейству Алгол-подобных языков (важнейший представитель – Pascal). Алгол (ALGOrithmic Language – алгоритмический язык); сыграл большую роль в теории, но для практического программирования сейчас почти не используется.

ПЛ/1 (PL/I Programming Language – язык программирования первый) разработан в 1964-1965 годах фирмой IBM. ПЛ/1 относится к числу универсальных языков, т. е. позволяет решать задачи из разных областей: численные расчеты, текстовая обработка, экономические задачи и т. д. По своим возможностям он перекрывает такие языки, как Фортран, Алгол-60 (созданный для численных расчетов), Кобол (для экономических задач), хотя в силу ряда причин вытеснить эти языки ПЛ/1 не смог.

ПЛ/1 содержит все основные конструкции, характерные для так называемых языков высокого уровня, а также ряд специфичных средств, удобных для практического программирования. Язык напоминает конструктор с большим числом деталей – пользователю достаточно освоить только те части языка, которые ему практически необходимы.

Вместе с тем, ПЛ/1 имеет и ряд недостатков, затрудняющих изучение и использование языка. Основные из них таковы, во-первых, имеется много дублирующих друг друга средств их сложно запомнить, не ясно, что когда применять, кроме того, это снижает как скорость трансляции, так и скорость выполнения программ. Во-вторых, программы получаются не совсем машинно-независимыми [23, с. 168].

В 1972 году во время совместной работы с Кеном Томпсоном Сотрудник фирмы Bell Labs Денис Ритчи создал язык Си (С – «си»), как инструментальное средство для реализации операционной системы Unix, однако популярность этого языка быстро переросла рамки конкретной операционной системы и конкретных задач системного программирования.

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

Ритчи не выдумывал Си просто из головы – прообразом служил язык Би разработанный Томпсоном. Язык программирования Си был разработан как инструмент для программистов-практиков. В соответствии с этим главной целью его автора было создание удобного и полезного во всех отношениях языка.

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

Си – современный язык. Он включает в себя те управляющие конструкции, которые рекомендованы теорией и практикой программирования. Его структура побуждает программиста использовать в своей работе нисходящее проектирование, структурное программирование и пошаговую разработку модулей. В некотором смысле язык Си – самый универсальный, т.к. кроме набора средств, присущих современным языкам программирования высокого уровня (структурность, модульность, определенные типы данных). Большой набор операторов и средств требуют от программиста осторожности, аккуратности и хорошего знания языка со всеми иго преимуществами и недостатками [32, с. 140].

Язык C++ появился в начале 80-х годов, созданный Бьерном Страуструпом с первоначальной целью избавить себя и своих друзей от программирования на Си или различных других языках высокого уровня.

Очевидно, что больше всего C++ позаимствовал из языка Си, а также из непосредственного его предшественника языка BCPL. Эти заимствования обеспечили C++ мощными средствами низкого уровня, позволяющие решать сложные задачи системного программирования. Но что в первую очередь отличает C++ от Си – это разная степень внимания к типам и структурам данных. Это связанно с появлением понятий класса, производного класса и виртуальной функции, перенятых в свою очередь из языка Симула 67. Это дает в C++ более эффективные возможности для контроля типов и обеспечивает модульность программы.

По мнению автора языка, различие между идеологией Си и C++ заключается примерно в следующем: программа на Си отражает «способ мышления» процессора, а C++ – способ мышления программиста.

Главной целью создателя языка доктора Бьерна Страустрапа было оснащение языка С++ конструкциями, позволяющими увеличить производительность труда программистов и облегчить процесс овладения большими программными продуктами.

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

Язык программирования Паскаль был разработан профессором кафедры вычислительной техники Швейцарского Федерального института технологии Николасом Виртом в 1968 году как альтернатива существующим и все усложняющимся языкам программирования, таким, как PL/1, Algol, Fortran. Интенсивное развитие Паскаля привело к появлению уже в 1973 году его стандарта в виде пересмотренного сообщения, а число трансляторов с этого языка в 1979 году перевалило за 80 [51, c. 212].

В начале 80-х годов Паскаль еще более упрочил свои позиции с появлением трансляторов MS-Pascal и Turbo Pascal для ПЭВМ. С этого времени Паскаль становится одним из наиболее важных и широко используемых языков программирования. Существенно то, что язык давно вышел за рамки академического и узкопрофессионального интереса и используется в большинстве университетов высокоразвитых стран не только как рабочий инструмент пользователя. Важнейшей особенностью Паскаля является воплощенная идея структурного программирования. Другой существенной особенностью является концепция структуры данных как одного из фундаментальных понятий.

Основные причины популярности Паскаля заключаются в следующем:

– простота языка позволяет быстро его освоить и создавать алгоритмически сложные программы;

– развитые средства представления структур данных обеспечивают удобство работы, как с числовой, так и с символьной и битовой информацией;

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

– оптимизирующие свойства трансляторов с Паскаля позволяют создавать эффективные программы. Это послужило одной из причин использования Паскаля в качестве языка системного программирования;

– в языке Паскаль реализуются идеи структурного программирования, что делает программу наглядной и дает хорошие возможности для разработки и отладки [32, с. 178].

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

Кобол (COmmon Business Oriented Language – язык, ориентированный на общий бизнес) – это сравнительно старый язык, разработанный, прежде всего для исследований в экономической сфере. Язык позволяет эффективно работать с большим количеством данных, он насыщен разнообразными возможностями поиска, сортировки и распределения. О программах на Коболе, основанных на широком использовании английского языка, говорят, что они понятны даже тем, кто не владеет Коболом, поскольку тексты на этом языке программирования не нуждаются в каких-либо специальных комментариях. Подобные программы принято называть самодокументирующимися.

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

Перечисляя минусы нельзя не вспомнить о том, что на Коболе можно запрограммировать лишь простейшие алгебраические вычисления. Для инженерных расчетов этот язык не годится [36, с. 48].

Дельфи (Delphi) – язык объектно-ориентированного «визуального» программирования; в данный момент чрезвычайно популярен. История Delphi начинается с 60-х годов.

Когда появилась первая версия Windows – Windows 3.10, программисты Borland создали Delphi 1. Это уже была объектно-ориентированная среда для визуальной разработки программ, основанная на языке Object Pascal.

С появлением Windows 95 появилась Delphi 2, затем Delphi 3, 4, 5. Язык программирования Object Pascal, который являлся стержнем Delphi, претерпел такие существенные изменения, что с появлением Delphi 6 компания Borland, которая уже превратилась в корпорацию, официально объявила о переименовании Object Pascal в Delphi. Поэтому правы те, кто говорит, что Delphi – это визуальная среда разработки программ. Но также правы и те, кто утверждает, что Delphi – это один из лучших языков программирования.

Delphi 7 наиболее стабильная версия языка программирования для Win32 то есть 32-разрядных версий Windows. Появились и новые версии Delphi, но они ориентированны на технологию .NET, за которую начинающим программистам браться рановато. Основу Delphi составляет не только сам язык, но и RAD (Rapid Application Development) – среда быстрой разработки программ. Благодаря визуальному программированию, а также достаточно большой библиотеке визуальных компонентов, Delphi позволяет создавать программы наиболее быстро и эффективно, принимая на себя основную работу, и оставляя программисту творческий процесс [29, c. 269].

Язык Джава (Java) зародился как часть проекта создания передового программного обеспечения (ПО) для различных бытовых приборов. Реализация проекта была начата на языке С++, но вскоре возник ряд проблем, наилучшим средством борьбы с которыми было изменение самого инструмента – языка программирования.

Язык Java потребовался для создания интерактивных продуктов для сети Internet. Фактически, большинство архитектурных решений, принятых при создании Java, было продиктовано желанием предоставить синтаксис, сходный с Си и Cи++. В Java используются практически идентичные соглашения для объявления переменных, передачи параметров, операторов и для управления потоком выполнением кода. В Java добавлены все хорошие черты C++.

Среди непроцедурных языков наиболее известны: язык Лисп, Пролог, Оккам. Язык Лисп (Lisp) был предложен Дж. Маккарти в работе в 1960 году и ориентирован на разработку программ для решения задач не численного характера. Английское название этого языка – LISP является аббревиатурой выражения LISt Processing (обработка списков) и хорошо подчеркивает основную область его применения. Понятие «список» оказалось очень емким. В виде списков удобно представлять алгебраические выражения, графы, элементы конечных групп, множества, правила вывода и многие другие сложные объекты. Списки являются наиболее гибкой формой представления информации в памяти компьютеров. Неудивительно поэтому, что удобный язык, специально предназначенный для обработки списков, быстро завоевал популярность.

После появления Лиспа различными авторами был предложен целый ряд других алгоритмических языков ориентированных на решение задач в области искусственного интеллекта, среди которых можно отметить Плэнер, Снобол, Рефал, Пролог. Однако это не помешало Лиспу остаться наиболее популярным языком для решения таких задач. На протяжении почти сорокалетней истории его существования появился ряд диалектов этого языка: Common LISP, Mac LISP, Inter LISP, Standard LISP [51, с. 139].

Большим достоинством Лиспа является его функциональная направленность, т. е. программирование ведется с помощью функций. Причем функция понимается, как правило, сопоставляющее элементам некоторого класса соответствующие элементы другого класса. Сам процесс сопоставления не оказывает никакого влияния на работу программы, важен только его результат – значение функции. Это позволяет относительно легко писать и отлаживать большие программные комплексы.

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

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

Оккам (назван в честь философа У. Оккама) – язык был создан в 1982 году и предназначен для программирования транспьютеров – многопроцессорных систем распределенной обработки данных. Он описывает взаимодействие параллельных процессов в виде каналов – способов передачи информации от одного процесса к другому [51, с. 150]. Отметим особенность синтаксиса языка Оccam – в нем последовательный и параллельный порядки выполнение операторов равноправны, и их необходимо явно указывать ключевыми словами PAR и SEQ.

Таким образом, настоящее время существует несколько сотен используемых языков программирования. Для каждого есть своя область применения.


Информация о работе «Графические возможности программирования в курсе информатики»
Раздел: Информатика, программирование
Количество знаков с пробелами: 110612
Количество таблиц: 10
Количество изображений: 19

Похожие работы

Скачать
54304
2
1

... параллельно различные формы представления алгоритма, что позволит более формально подойти к конкретному алгоритму. 2. Методические особенности изучения раздела «Алгоритм и исполнители»   2.1 Содержание раздела в стандарте   Прежде всего необходимо сказать, что общеобразовательный стандарт по информатике является нормативным документом, определяющим требования: ·  к месту базового курса ...

Скачать
63347
5
5

... портфолио. Полезные ссылки содержат информацию по созданию, применению портфолио. Изготовленное мной портфолио ориентировано на тему "Алгоритмизация в базовом курсе информатики". Поэтому в портфолио в раздел научно-методическая работа вошли конспекты проведенных уроков, презентации и тесты, ориентированные на изучение алгоритмизации. Темы проведенных занятий: 1. Понятие алгоритма, свойства ...

Скачать
120115
3
4

... одним из синонимов научно-технического прогресса. Слово это появилось в начале 60-х годов во французском языке для обозначения автоматизированной обработки информации в обществе. Информатика (от французского information - информация и automatioque -автоматика) - область научно-технической деятельности, занимающаяся исследованием процессов получения, передачи, обработки, хранения, представления ...

Скачать
49877
5
0

... в среде Delphi). Задачи использовались как с данного сайта, так и из других источников – книг и семинарских занятиях по информатике в МГОУ. Курс завершается разработкой игры. Программное обеспечение: свободно распространяемая версия объектно-ориентированной среды программирования Delphi. Методы обучения: метод проектов, лекции, проблемный метод, частично-поисковый метод. Контроль знаний и умений ...

0 комментариев


Наверх