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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



 

Задачей предмета «Основы алгоритмизации и программирование» является развитие алгоритмического мышления, формирование знаний о свойствах алгоритмов и приобретение практических навыков разработки программ с использованием языка программирования Паскаль.

Под алгоритмизацией понимают процесс разработки алгоритма решения какой-либо задачи. (Например, разработка алгоритма нахождения наибольшего общего делителя).

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

Языки программирования

низкого уровня высокого уровня

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

Язык программирования низкого уровня - это язык программирования, структура команд которого определяется форматом команд и данных машинного языка, а также архитектурой ЭВМ (примером языка программирования низкого уровня является язык Ассемблер (Assembler), который был разработан в 50-е годы XX века).

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

Язык программирования высокого уровня - это язык программирования, средства которого допускают описание задачи в наглядном, легко воспринимаемом виде.

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

К языкам программирования высокого уровня, например, относятся:

ü Basic;

ü С;

ü FORTRAN;

ü Java;

ü Pascal.

Первые языки программирования были языками низкого уровня. Среди них Short Code, разработанный в 1949 году Джоном Мочли для компьютера BINAC.

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

«Наследником» Turbo Pascal стали Delphi – система быстрой разработки приложений для Microsoft Windows – и Kylix – система быстрой разработки приложений для X Windows System и операционной системы Unix.

Почти одновременно с языком Pascal появился язык C. Он используется как язык системного программирования и как язык программирования вычислений. На основе языка С был создан объектно-ориентированный язык C++, который в свою очередь дал жизнь популярному в настоящее время языку Java.

В настоящее время существует большое количество языков программирования. Это связано с тем, что каждый из языков программирования предназначен для решения определённого круга задач. Нет универсального языка, который бы одинаково подходил для решения всех возможных задач.

Никлаус Вирт создал Паскаль в 1969 году именно для целей обучения. Поначалу никто и не предполагал, что на нём будут писать реальные программы, но язык получился настолько удачным и ясным, что и теперь, спустя десятки лет, и он, и его потомки используются очень широко.

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

Определение:

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

·
Детерминированность - в каждый момент времени следующий шаг однозначно определяется состоянием системы. Т.е. алгоритм выдаёт один и тот же результат для одних и тех же исходных данных.
Понятность - алгоритм содержит команды, понятные исполнителю (которые входят в его систему команд).
Конечность – для корректных исходных данных алгоритм должен успешно завершать работу за конечное число шагов.
Массовость - алгоритм должен быть применим к разным наборам исходных данных.
Результативность – работа алгоритма должна завершаться определёнными результатами.
Алгоритмизация – процесс построения алгоритма.
Программирование - процесс создания программного обеспечения с помощью языков программирования.
Программирование сочетает в себе элементы искусства, фундаментальных наук (это прежде всего информатика и математика), инженерии, спорта и ремесла.
Программирование следует отличать от ремесла кодирования программы

 

Программирование включает в себя:

Анализ поставленной задачи.

Проектирование/разработку комплекса алгоритмов.

Кодирование – реализация алгоритмов - написание исходного текста программы на языке программирования (исходников).

Компиляцию - преобразование исходников в исполнимый код с помощью компилятора.
Тестирование и отладку - выявление и устранение ошибок в программах.
Испытания и сдачу программ.
Сопровождение программ.

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

интерпретируемые
низкоуровневые

высокоуровневые

· Компилятор это специальная программа, которая переводит исходный текст программы с языка программирования высокого уровня в двоичные коды инструкций процессора, которые записываются в отдельный исполнимый файл (например exe-файл). Этот файл может быть запущен как отдельная программа.
Интерпретатор выполняет исходный текст программы без предварительной компиляции. При этом программа остаётся на исходном языке и не может быть запущена без интерпретатора.
Компилируемые программы работают значительно быстрей интерпретируемых.
Интерпретируемые программы обладают большей гибкостью в процессе разработки и допускают запуск на разных компьютерных платформах и операционных системах.
Язык программирования низкого уровня – это язык, близкий к программированию в машинных кодах используемого процессора.
Общеизвестный пример языка низкого уровня - язык ассемблера.
Высокоуровневый язык программирования - язык программирования, разработанный для быстроты и удобства использования программистом.
Основная черта высокоуровневых языков - это абстракция, то есть введение конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на низкоуровневом языке программирования очень длинны и сложны для понимания и реализации.
Примеры языков высокого уровня:
C, C++, Visual Basic, Java, PHP, Delphi, Pascal, Fortran.


Основные модели (парадигмы) программирования:

· Императивное программирование

· Структурное программирование

· Функциональное программирование

· Логическое программирование

· Объектно-ориентированное программирование

Императивное (процедурное) программирование - это парадигма программирования, которая описывает процесс вычисления в виде последовательности инструкций, которые должен выполнить компьютер.
Примеры процедурных языков программирования: Fortran, Basic, Pascal, C.
Структурное программирование - методология разработки ПО, в основе которой лежит представление программы в виде иерархической структуры блоков.
Каждый блок должен представлять собой одну из трех структур: последовательное выполнение, ветвление и повторение.
^ Функциональное программирование - раздел дискретной математики, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном программировании).
Примеры функциональных языков программирования: LISP, Haskell, ML.
^ Логическое программирование – парадигма, основанная на автоматическом доказательстве теорем, а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода. Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов резолюций.
Самым известным языком логического программирования является Prolog.
^ Объектно-ориентированное программирование (ООП) - парадигма программирования, в которой основными концепциями являются понятия объектов и классов.
Класс - это описание устройства объектов (как бы теоретическая модель).
Объект - это экземпляр класса (как бы физическая реализация).
Класс можно сравнить с чертежом, согласно которому создаются объекты. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области.
ООП есть по сути императивное программирование, дополненное принципом инкапсуляции данных и методов в объект и наследованием.
Технология программирования - дисциплина, изучающая технологические процессы программирования и порядок их прохождения.
Основные технологии программирования:
восходящее программирование

· нисходящее программирование

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

 

Электронная почта

Электро́нная по́чта (англ. email, e-mail, от англ. electronic mail) — технология и предоставляемые ею услуги по пересылке и получению электронных сообщений (называемых «письма» или «электронные письма») по распределённой (в том числеглобальной

) компьютерной сети.

Достоинствами электронной почты являются: легко воспринимаемые и запоминаемые человеком адреса вида имя_пользователя @ имя_домена (например somebody@example.com); возможность передачи как простого текста, так и форматированного, а также произвольных файлов; независимость серверов (в общем случае они обращаются друг к другу непосредственно); достаточно высокая надёжность доставки сообщения; простота использования человеком и программами.

Недостатки электронной почты: наличие такого явления, как спам (массовые рекламные и вирусные рассылки); теоретическая невозможность гарантированной доставки конкретного письма; возможные задержки доставки сообщения (до нескольких суток); ограничения на размер одного сообщения и на общий размер сообщений в почтовом ящике (персональные для пользователей).

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

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

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

По мере ужесточения запрета на размещение рекламы, сообщения разделились на легитимные рассылки (на которые обычно подписывается пользователь и от которых он может отказаться в любой момент) и нелегитимные (собственно и называемые спамом). Для борьбы со спамом были разработаны различные механизмы (чёрные списки отправителей, серые списки, требующие повторного обращения почтового сервера для отправки, контекстные фильтры). Одним из последствий внедрения средств борьбы со спамом стала вероятность «ошибочно положительного» решения относительно спама, то есть часть писем, не являющихся спамом, стала помечаться как спам. В случае агрессивной антиспам-политики (уничтожение писем, кажущихся спамом, в автоматическом режиме без уведомления отправителя/получателя) это приводит к труднообнаруживаемым проблемам с прохождением почты.

 



Поделиться:


Последнее изменение этой страницы: 2016-12-17; просмотров: 671; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.219.112.111 (0.024 с.)