Автор работы: Пользователь скрыл имя, 06 Февраля 2012 в 10:25, курсовая работа
Другой возможный классификационный критерий языков программирования — это революционные идеи программирования, воплотившиеся в соответствующих решениях: структурное программирование, модульное программирование, объектно-ориентированное программирование. Однако и тут четкой классификации не получится. К примеру, Паскаль возник как "продукт" структурной революции, удачно впитал в себя идеи революции "модульной", и сегодня существует практически на всех компьютерных платформах в объектно-ориентированных воплощениях. Другой пример: приверженцы языка С++, как правило, самым важным его достоинством называют объектно-ориентированное программирование.
Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования
«Новосибирский государственный педагогический университет»
Факультет
технологии и предпринимательства
КУРСОВАЯ РАБОТА
по дисциплине
«Методика профессионального обучения»
на
тему: Методика изучения
темы программирования
в курсе информатика
Выполнил: студент 4 курса 43-И гр. Руководитель: Тиковенко Д.Н.
Лысов Г.А
Новосибирск 2010
Оглавление
Бурное развитие информационных технологий повлекло за собой создание множества искусственных языков, ориентированных на решение проблемы общения человека с компьютером. Любой обзор по языкам программирования первым делом неизбежно затрагивает вопросы классификации этих языков. Не стремясь к соблюдению слишком строгой и исчерпывающей классификации и опираясь на ряд традиционных подходов, попробуем проанализировать современное состояние языков программирования.
Один из подходов, помогающий провести обзор языков программирования, — подход исторический. Действительно, на первый взгляд все выглядит очень просто. Сначала было программирование в машинных кодах, когда программист являлся единственным посредником между остальными смертными и Машиной — гигантским "ламповым монстром", занимающим если не целое здание, то почти целый этаж. Затем появились мнемонические представления машинного кода, ассемблер и, наконец, макроассемблер. В конце 50-х возникли языки формульного программирования, из которых наиболее замечательным был Фортран, затем (в 60-х) центр тяжести стал понемногу смещаться к нечисленным методам — появился АЛГОЛ. Еще немного, и к 70-м годам произошла структурная революция — АЛГОЛ-W и, наконец, Паскаль. Далее настала очередь "модульного" программирования — Модула и Модула-2. Приблизительно в это же время рождается знаменитый язык Си, идет новая революция логического программирования — в моде ПРОЛОГ и экспертные системы. Пентагон проводит свой знаменитый конкурс, на котором побеждает Ада, а Япония заявляет о проекте машин пятого поколения, основанных на SmallTalk. В результате происходит объектно-ориентированная революция, появляются С++, Оберон, Eiffel и Модула-3.
Общие тенденции развития языков программирования при историческом подходе проследить вполне возможно, однако изложение получается сумбурным и путаным. Удивляться тут нечему — ладно если бы произошла, например, структурная революция: программистская общественность присягнула на верность программированию без "goto" и прощай Фортран! Но нет, и Фортран сейчас "в ходу", а если вспомнить об его преуспевших детях Basic и Visual Basic, то придется признать, что "некрологи" Фортрана более чем двадцатилетней давности выглядят в наше время как забавный исторический курьез. Язык Паскаль также, по сравнению со многими другими языками, сейчас уже не молод, но это не мешает ему оставаться одним из наиболее популярных языков и в наши дни. А Кобол? У него еще более преклонный возраст, а если посмотреть по конференциям на Internet — окажется, что очень много работ и сейчас проводится на Коболе.
Другой
возможный классификационный
Процессор компьютера — большая интегральная микросхема. Все команды и данные он получает в виде электрических сигналов. Фактически процессор можно рассматривать как огромную совокупность достаточно простых электрических элементов — транзисторов. Транзистор имеет три вывода. На два крайних подается напряжение, необходимое для создания в транзисторе электрического тока, а на средний вывод — напряжение, с помощью которого можно управлять внутренним сопротивлением транзистора, а значит, управлять и током, и напряжением на его выводах.
В электронике транзисторы имеют 3 применения: для создания усилителей, в электронных схемах, обладающих автокабельными свойствами, и в электронных переключателях. Последний способ и применяется в цифровой вычислительной технике. В процессоре компьютера транзисторы сгруппированы в микроэлементы, называемые триллерами и вентилями. Триллеры имеют два устойчивых состояния ( открыт – закрыт) и переключается из одного состояния в другое электрическими сигналами. Этим устойчивым состояниям соответствуют математические понятия 0 и 1. Вентили немного сложнее – они могут иметь несколько входов ( напряжение на выходах зависит от комбинаций напряжений на входах) и служат для простейших арифметических и логических операций).
Команды, поступающие в процессор по его шинам, на самом деле являются электрическими сигналами, но их тоже можно представить как совокупность нулей и единиц. Разным командам соответствуют разные числа. Поэтому реально программа, с которой работает процессор, представляет собой последовательность чисел, называемую машинным кодом.
Управлять компьютером нужно по определенному алгоритму. Алгоритм – точно определенное описание способа решения задачи в виде конечной (по времени) последовательности действий. Такое описание еще называют формальным. Для представления алгоритма в виде, понятным компьютеру, служат языки программирования. Сначала всегда разрабатывают алгоритм действий, а потом он записывается на одном из таких языков. В итоге получается текст программы – полное, законченное и детальное описание алгоритма на языке программирования. Затем этот текст программы специальными служебными приложениями, которые называются трансляторами, либо переводится в машинный код, либо исполняется.
Самому написать программу в машинном коде сложно, причем эта сложность резко возрастает с увеличением размера программы и трудоемкости решения нужной задачи. Условно можно считать, что машинный код приемлем, если размер программы не превышает несколько десятков байтов.
Поэтому сегодня почти все программы создаются с помощью языков программирования. Теоретически программу можно написать и средствами обычного естественного языка – это называется программированием на метаязыке(этот подход обычно используется на этапе составления алгоритма), но автоматически перевести такую программу на машинный код пока невозможно из-за высокой неоднозначности естественных языков.
Языки программирования – искусственные языки. От естественных они отличаются ограниченным числом «слов», значение которых понятны транслятору, и очень строгими правилами записи команд (операторов). Совокупность подобных требований образуют синтаксис языка программирования, а смысл каждой команды и других конструкций языка – его семантику. Нарушение формы записи программы приводит к тому, что транслятор не может понять назначение оператора и выдает сообщение о синтаксической ошибке, а правильно написанное, но не отвечающее алгоритму использование команд языка приводят к семантическим (логическим) ошибкам.
Процесс поиска ошибки в программе называется тестированием, процесс устранения ошибки – отладкой.
Разные типы процессоров имеют разные наборы команд. Если язык программирования ориентированный на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня. Операторы языка низкого уровня близки к машинному коду и ориентированы на конкретные команды процессора.
Языком с низким уровнем является язык ассемблера, кот просто представляет каждую команду машинного кода, но в виде чисел, с помощью символьных условных обозначений, называемых мнемониками. Однозначное преобразование одной машинной инструкции в одну команду ассемблера называется транслитерацией. Так как наборы инструкций для каждой модели процессора отличаются, конкретной архитектуре соответствует свой язык ассемблера, и написанная на нем программа может быть использована только в этой среде.
С помощью языков низкого уровня создаются очень эффективные и компактные программы, так как разработчики получают доступ ко всем возможностям процессора. С другой стороны, при этом требуется очень хорошо понимать устройство компьютера, затрудняется отладка больших приложений, а результирующая программа не может быть перенесена на компьютер с другим типом процессора. Подобные языки обычно применяют для написания небольших системных приложений, драйверов устройств, модулей стыковки и нестандартным оборудованиям, когда важнейшими требованиями становятся компактность, быстродействие и возможность прямого доступа к аппаратным ресурсам. В некоторых областях, например, в машинной графике, на языке ассемблера пишутся библиотеки, эффективно реализующие требующие интенсивных вычислений алгоритмы обработки изображений.
Языки программирования, имитирующие естественные языки, обладающие укрупненными командами, ориентированными на решение прикладных содержательных задач, называются языками высокого уровня.
Языки программирования высокого уровня имеют следующие особенности:
Алфавит значительно шире машинного, что делает его гораздо более выразительным и существенно повышает наглядность и понятность текста;
Набор операций, допустимых для использования, не зависит от набора машинных операций, а выбираются из соображений удобства формулирования алгоритмов решения задач определенного класса;
Конструкция команд (операторов) отражает содержательные виды обработки данных и задаются в удобном для человека виде;
Используется аппарат переменных и действия над ними;
Поддерживается широкий набор типов данных
Таким образом, языки программирования являются машинно-независимыми и требуют использования соответствующих программ – трансляторов для представления программы на языке машины, на которой она будет исполняться.
Особенности конкретных компьютерных архитектур в них не учитываются, поэтому создаваемые программы на уровне исходных текстов легко переносимы на другие платформы, для которых создан транслятор этого языка.
Языки программирования делятся на два класса — компилируемые и интерпретируемые.
Информация о работе Методика изучения темы программирования в курсе информатика