МИНИСТЕРСТВО НАУКИ И ОБРАЗОВАНИЯРОССИЙСКОЙ ФЕДЕРАЦИИ
КАЗАНСКИЙ ГОСУДАРСТВЕННЫЙ
ФИНАНСОВО-ЭКОНОМИЧЕСКИЙ ИНСТИТУТ
Кафедра математики и экономической информатики
РЕФЕРАТ
Понятие о программировании. Языки программирования
Выполнил: Молотов Л.А.
Группа110
Проверила: доц. Кодолова И.А.
Казань 2010
Содержание
Введение 3
1. Основные положения о программировании 4
1.1.Понятие программирования 4
1.2.Парадигмы программирования 5
1.3.Инструментарий технологии программирования 8
2. Языки программирования 11
2.1. Понятие языка программирования 11
2.2. Классификация языков программирования 14
2.3. Описание некоторых языков программирования 17
3. Язык программирования Java 22
3.1. Обзор языка Java 22
3.2.Процесс создания Java-программы 23
3.3. Достоинства языка Java 25
Заключение 28
Список использованных источников 29
Введение
Когда изучаешь какой-либо вопрос, считаешь, что знаешь его; когда можешь писать о нем, становишься уверенней в своих знаниях; уверенность возрастает, когда можешь научить этому кого-нибудь другого; и совершенно уверен, когда начинаешь программировать. Алан.Дж.Перлис
До середины 60-х компьютеры были слишком дорогими машинами, использовавшимися только для особых задач, и выполнявшими только одну задачу за раз.
Языки программирования этой эры, как и компьютеры на которых они использовались, были разработаны для специфичных задач, таких как научные вычисления. Поскольку машины были дорогими и медленными, то и машинное время было дорого – поэтому скорость выполнения программы стояла на первом месте.
Однако в течение 60-х цена на компьютеры стала падать так, что даже небольшие компании могли их себе позволить; скорость компьютеров всё увеличивалась, и наступило время, когда создатели языков программирования все больше стали задумываться об удобстве написания программ, а не только скорости их выполнения.
На заре компьютеризации, машинный язык был единственным языком, большего человек к тому времени не придумал. Для спасения программистов от сурового машинного языка программирования, были созданы языки высокого уровня (т.е. немашинные языки).«Мелкие» (атомарные) операции, выполняемые непосредственно устройствами машины, объединили в более «крупные», высокоуровневые операции и целые конструкции, с которыми человеку куда проще и удобнее работать. Так программирование сделало колоссальный прорыв: новые языки стали своеобразным связующим мостом между человеком и машинным языком компьютера.
Прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов (языков программирования) и развитие процесса программирования в целом.
1. Основные положения о программировании
1.1. Понятие программирования
Терминпрограммирование означаетпроцесс и искусство создания компьютерных программ с помощью специальных языков программирования.
В общем смысле слова, программирование есть формализация предопределенного состояния, по реакции на событие, реализуемого средствами математики или естественных наук.
В узком смысле слова, программирование рассматривается как кодирование алгоритмов на заданном языке программирования. В более широком смысле программирование - процесс создания программ, то есть разработка программного обеспечения.
Программирование включает в себя:
· Анализ
· Проектирование - разработка комплекса алгоритмов
· Кодирование и компиляцию - написание исходного текста программы и преобразование его в исполнимый код с помощью компилятора
· Тестирование и отладку - выявление и устранение ошибок в программах
· Испытания и сдачу программ
· Сопровождение
Различные языки программирования поддерживают различные стили программирования (так называемые«парадигмы программирования»). Отчасти, искусство программирования состоит в том, чтобы выбрать один из языков, наиболее полно подходящий для решения имеющейся задачи. Разные языки требуют от программиста различного уровня внимания к деталям при реализации алгоритма, результатом чего часто бывает компромисс между простотой и производительностью (или между временем программиста и временем пользователя).
Единственный язык, напрямую выполняемый процессором - это машинный язык (также называемый «машинным кодом»). Как уже было сказано, изначально, все программисты прорабатывали каждую мелочь в машинном коде, но сейчас эта трудная работа уже не делается. Вместо этого, программисты пишут исходный код, и компьютер (используя компилятор, интерпретатор или ассемблер, речь о которых пойдёт чуть позже) транслирует его, в один или несколько этапов, уточняя все детали, в машинный код, готовый к исполнению на целевом процессоре. Однако, в некоторых языках, вместо машинного кода генерируется интерпретируемый двоичный код «виртуальной машины», также называемый байт-кодом (byte-code). Такой подход применяется в Forth, Lisp, Java (данному языку посвящена 3 Глава реферата).
Теперь, когда мы знаем немного о понятии «программирование», можно переходить к материальной части процесса создания программ. Это, разумеется, технические (аппаратные) средства обеспечения программирования - совокупность электрических, электронных и механических компонентов автоматизированных систем составляет их техническое обеспечение (в отличие от программных средств, представляющих собой программное обеспечение автоматизированных систем). Например, электронная вычислительная машина (ЭВМ) или компьютер - комплекс технических и программных средств, основанных на использовании электроники и предназначенных для автоматической или автоматизированной обработки данных в процессе решения вычислительных и информационных задач.
1.2. Парадигмы программирования
В основе того или иного языка программирования лежит некоторая руководящая идея, оказывающая существенное влияние на стиль соответствующих программ.В зависимости от назначения и/или способа написания программ различаютпарадигмы(также известные как подходыили технологии) программирования:
Структурное программирование - методология программирования, базирующаяся на системном подходе к анализу, проектированию и реализации программного обеспечения. Эта методология родилась в начале 70-х годов и оказалась настолько жизнеспособной, что и до сих пор является основной в большом количестве проектов. Основу этой технологии составляют следующие положения:
· Сложная задача разбивается на более мелкие, функционально лучше управляемые задачи. Каждая задача имеет один вход и один выход. В этом случае управляющий поток программы состоит из совокупности элементарных подзадач с ясным функциональным назначением.
· Простота управляющих структур, используемых в задаче. Это положение означает, что логически задача должна состоять из минимальной, функционально полной совокупности достаточно простых управляющих структур. В качестве примера такой системы можно привести алгебру логики, в которой каждая функция может быть выражена через функционально полную систему: дизъюнкцию, конъюнкцию и отрицание.
· Разработка программы должна вестись поэтапно. На каждом этапе должно решаться ограниченное число четко поставленных задач с ясным пониманием их значения и роли в контексте всей задачи. Если такого понимания не достигается, это говорит о том, что данный этап слишком велик и его нужно разделить на более элементарные шаги.
Концепция модульного программирования.Так же как и для структурной технологии программирования, концепцию модульного программирования можно сформулировать в виде нескольких понятий и положений:
· Функциональная декомпозиция задачи - разбиение большой задачи на ряд более мелких, функционально самостоятельных подзадач - модулей. Модули связаны между собой только по входным и выходным данным.
· Модуль - основа концепции модульного программирования. Каждый модуль в функциональной декомпозиции представляет собой «черный ящик» с одним входом и одним выходам. Модульный подход позволяет безболезненно производить модернизацию программы в процессе ее эксплуатации и облегчает ее сопровождение. Дополнительно модульный подход позволяет разрабатывать части программ одного проекта на разных языках программирования, после чего с помощью компоновочных средств объединять их в единый загрузочный модуль.
· Реализуемые решения должны быть простыми и ясными. Если назначение модуля непонятно, то это говорит о том, что декомпозиция начальной или промежуточной задачи была проведена недостаточно качественно. В этом случае необходимо еще раз проанализировать задачу и, возможно, провести дополнительное разбиение на подзадачи. При наличии сложных мест в проекте их нужно подробнее документировать с помощью продуманной системы комментариев. Этот процесс нужно продолжать до тех пор, пока вы действительно не добьетесь ясного понимания назначения всех модулей задачи и их оптимального сочетания.
· Назначение всех переменных модуля должно быть описано с помощью комментариев по мере их определения.
Объектно-ориентированное программирование (ООП).Идея ООП заключается в стремлении связать данные с обрабатывающими эти данные процедурами в единое целое - объект. ООП основано на трех важнейших принципах, придающих объектам новые свойства. Этими принципами являются инкапсуляция, наследование и полиморфизм.
· Инкапсуляция - объединение в единое целое данных и алгоритмов обработки этих данных. В рамках ООП данные называются полями объекта, а алгоритмы - объектными методами.
· Наследование - свойство объектов порождать своих потомков. Объект - потомок автоматически наследует от родителей все поля и методы, может дополнять объекты новыми полями и заменять (перекрывать) методы родителя или дополнять их.