Автор работы: Пользователь скрыл имя, 16 Сентября 2009 в 13:41, Не определен
Учебник по программированию
Управление машиной, обработка данных осуществляется по алгоритмам, которые вводится в машину в виде программ.
Программы и данные хранятся в памяти машины.
Основное устройство, которое "понимает" программы – центральный процессор.
Во многих источниках синонимом термина "вычислительная машина" является термин компьютер.
В то же время, программа - это формализованная запись алгоритма на конкретном языке программирования.
В конечном счете, программу должен понять исполнитель - процессор. Можно сразу написать программу на языке процессора, это будет программа в машинных командах.
На заре программирования так и делали, в настоящее время программу обычно пишут на языках высокого уровня, а затем переводят (транслируют) ее в машинные команды.
Программа на языке высокого уровня - это обычный текст, оформленный в соответствии с требованиями языка.
орлор
оро
пр
Формальный язык, обеспечивающий удобное описание конкретных проблем, которые формулируются человеком.
На языке программирования пишется программа, которая позволяет, при ее выполнении компьютером (вычислительной системой), получить конкретные результаты.
Язык программирования состоит из двух составляющих: синтаксиса и семантики.
Некоторые авторы включают в синтаксис и алфавит.
В языках программирования транслятор превращает синтаксические построения в команды, понятные операционной системе и процессору.
Смысловые ошибки транслятор не выявляет, их поиск осуществляет человек в процессе отладки, тестирования и даже эксплуатации.
От греч. semantikos - обозначающий.
Переход
от языковых конструкций к машинным
командам осуществляет транслятор языка.
Программа, производящая трансляцию программы с одного языка программирования в другой.
В языках программирования транслятор превращает синтаксические построения в команды, понятные операционной системе и процессору.
Смысловые ошибки транслятор не выявляет, их поиск осуществляет человек в процессе отладки, тестирования и даже эксплуатации.
Процесс преобразования программы, написанной на одном языке программирования, в программу на другом языке.
Как
правило, трансляция - это создание
программы в машинных кодах, которую можно
выполнять.
Различают два вида трансляции:
1) компиляцию, при которой результат получается в виде готовой программы, выполняемой независимо от исходного текста программы;
2) интерпретацию, при которой трансляция и выполнение программы происходит покомандно.
От лат. translatio - передача.
Теоретическая и практическая деятельность по созданию программного обеспечения.
Само программирование - итерационный процесс, который состоит из:
Продуктом такой
комплекс называется по аналогии с
любым производственным товаром, полностью
готовым для потребления.
Классификации
языков программирования
Языки программирования имеют разные классификации.
Приведем
только некоторые из них.
Классификация по уровням:
Языки программирования разделяются на языки высокого и низкого уровня в соответствии с тем, в каких терминах следует описывать задачу.
Если язык близок к естественному, он называется языком высокого уровня, если ближе к машинным командам, - языком низкого уровня.
Например,
языки: Си, Бейсик, Паскаль, Пролог относятся к языкам
высокого уровня, а язык
ассемблера
- язык низкого уровня.
Классификация по стилю программирования:
Стиль - совокупность правил, лежащих в основе синтаксиса и семантики языка программирования.
Различают следующие стили:
Рассмотрим
перечисленные стили подробнее.
Неструктурное программирование - допускает использование в явном виде команды безусловного перехода (в большинстве языков GOTO). Типичные представители неструктурных языков - ранние версии Бейсика и Фортрана.
Данный стиль вызван особенностями выполнения машиной программы в кодах и унаследован от программ на языке ассемблера, поскольку там команда перехода является обязательной.
Однако в языках высокого уровня наличие команды перехода влечет за собой массу серьезных недостатков: программа превращается в "спагетти" с бесконечными переходами вверх-вниз, ее очень трудно сопровождать и модифицировать.
Фактически неструктурный стиль программирования не позволяет разрабатывать большие проекты.
Ранее широко практиковавшееся первоначальное обучение программированию на базе неструктурного языка (обычно Бейсика) приводило к огромным трудностям при переходе на более современные стили.
Как
отмечал известный голландский
ученый Э. Дейкстра, "программисты, изначально
ориентированные на Бейсик, умственно
оболванены без надежды на исцеление".
Структурный
стиль (структурное программирование)
был разработан в середине 60-х - начале
70-х гг.
В его основе лежат две идеи:
2) проектирование программы идет по принципу сверху вниз: сначала определяются необходимые для решения программы модули, их входы и выходы, а затем уже эти модули разрабатываются.
Такой подход вместе с локальными именами переменных позволяет разрабатывать проект силами большого числа программистов.
Как доказал Э. Дейкстра, любой алгоритм можно реализовать, используя лишь три управляющие конструкции:
Данное обстоятельство
позволяет при наличии
Будем применять в основном структурный стиль.
Логическое программирование - представляет собой попытку возложить на программиста только постановку задачи, а поиски путей ее решения предоставить транслятору.
Логические языки (Пролог, Симула) имеют специальные конструкции для описания объектов и связей между ними.
Например, если дано:
БРАТЬЯ ИМЕЮТ ОДНОГО ОТЦА
ДЖОН - ОТЕЦ ДЖЕКА
МАЙК - БРАТ ДЖЕКА
то система логического
ДЖОН - ОТЕЦ МАЙКА.
Хотя
работы по логическому программированию
ведутся с 50-х гг., в настоящее
время данное направление несколько
потеряло свою актуальность в связи
с отсутствием реальных результатов,
поскольку большинство
Объектно-ориентированное (ОО) программирование, разработанное в середине 70-х гг. Керниганом и Риччи и реализованное в ОО-версиях языков Си и Паскаль, представляет собой отображение объектов реального мира, их свойств (атрибутов) и связей между ними при помощи специальных структур данных.
Структурное программирование подразумевает наличие ряда встроенных структур данных: целых, вещественных и строковых переменных, массивов, записей - при помощи которых и производится отображение свойств объектов реального мира. При объектно-ориентированном подходе для объекта создается своя структура данных (класс), содержащая как свойства объекта (поля), так и процедуры для управления объектом (методы).
Функциональный стиль
В основе функционального стиля лежит понятие функции как "черного ящика", имеющего вектор параметров (аргументов) на входе и результат r (скаляр) на выходе:
Допустим случай , т.е. вектор параметров отсутствует.
В функциональных языках программирования отсутствуют операторы: все действия, в том числе и управляющие конструкции, выполняются при помощи вызовов функций.
Поскольку каждая функция возвращает значение, то:
Каждую функцию можно подставить в качестве аргумента другой функции, что позволяет записывать сложные выражения в функциональной форме.