- •I этап (1940-е – середина 50-х)
- •II этап (середина 50-х – середина 60-х)
- •III этап (середина 60-х – середина 70-х)
- •IV этап (середина 70-х – настоящее время)
- •V этап (?? – ??)
- •Модульное программирование
- •Концепция модульного программирования
- •Главные понятия и разновидности
- •Основные понятия
- •Концепции
- •Технологии создания сайтов
- •Субд и MySql
- •Условный оператор
- •Цикл с постусловием
- •Цикл с предусловием
V этап (?? – ??)
Возможно, новый этап развития машин будет связан с нано-технологиями: например, компания Intel недавно сообщила, что ее инженеры работают над процессорами размером 15, 10, 7 и 5 нанометра. Возможность применения подобных процессоров граничит с фантастикой – быть может, когда-нибудь нам доведется увидеть живую клетку с внедренным в нее процессором? А может быть даже запрограммировать ее?
А вспомним тот факт, что белкИ, как говорят ученые, составляют в геноме определенный код. Какие тут открываются возможности для будущих программистов…
Другой областью, которая может вызвать скачок в развитии машин, является искусственный интеллект. Одно из толкований целей этой науки состоит как раз в утверждении, что она должна создавать методы автоматического решения задач, считающихся в человеческом понимании интеллектуальными. В частности, это задача разработки средств автоматического выполнения функций алгоритмиста и программиста, то есть интеллектуальных функций по формализации задач и составлению программ для их решения [8]. Вполне может оказаться, что машины научатся думать за нас, и программисты будут больше не нужны. Человеческий фактор исчезнет. Многие фантасты уже не раз рисовали печальные последствия такого хода событий… Но человеку свойственно всегда с опаской относится к новому, чуждому, неизведанному. Быть может, именно следующий этап развития машин и программирования даст и всему человечеству возможность перейти на качественно новый уровень.
Заключение
Языки программирования имеют богатую историю, на основе которой можно проследить их эволюцию. Наверняка эта эволюция будет продолжаться и в будущем.
Началом программирования были робкие шаги человека в попытке заставить компьютер выполнить определенную задачу. Затем появились первые ЯВУ, которые были предназначены только для очень узкого круга задач. Но современные языки программирования различаются лишь способами (методологиями) программирования, а не классом решаемых задач. При помощи современных ЯВУ программист может решить практически любую задачу; важнее стал вопрос, какой способ программирования применить.
В будущем, с развитием технологий и появлением новых программных концепций само программирование, возможно, перейдет на качественно новый уровень, когда появится возможность создавать программы для процессоров нано-машин или биологических компьютеров.
№8
Структу́рное программи́рование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Предложена в 70-х годах XX века Э. Дейкстрой, разработана и дополнена Н. Виртом.
В соответствии с данной методологией
-
Любая программа представляет собой структуру, построенную из трёх типов базовых конструкций:
-
последовательное исполнение — однократное выполнение операций в том порядке, в котором они записаны в тексте программы;
-
ветвление — однократное выполнение одной из двух или более операций, в зависимости от выполнения некоторого заданного условия;
-
цикл — многократное исполнение одной и той же операции до тех пор, пока выполняется некоторое заданное условие (условие продолжения цикла).
В программе базовые конструкции могут быть вложены друг в друга произвольным образом, но никаких других средств управления последовательностью выполнения операций не предусматривается.
-
Повторяющиеся фрагменты программы (либо не повторяющиеся, но представляющие собой логически целостные вычислительные блоки) могут оформляться в виде т. н. подпрограмм (процедур или функций). В этом случае в тексте основной программы, вместо помещённого в подпрограмму фрагмента, вставляется инструкция вызова подпрограммы. При выполнении такой инструкции выполняется вызванная подпрограмма, после чего исполнение программы продолжается с инструкции, следующей за командой вызова подпрограммы.
-
Разработка программы ведётся пошагово, методом «сверху вниз».
Сначала пишется текст основной программы, в котором, вместо каждого связного логического фрагмента текста, вставляется вызов подпрограммы, которая будет выполнять этот фрагмент. Вместо настоящих, работающих подпрограмм, в программу вставляются «заглушки», которые ничего не делают. Полученная программа проверяется и отлаживается. После того, как программист убедится, что подпрограммы вызываются в правильной последовательности (то есть общая структура программы верна), подпрограммы-заглушки последовательно заменяются на реально работающие, причём разработка каждой подпрограммы ведётся тем же методом, что и основной программы. Разработка заканчивается тогда, когда не останется ни одной «затычки», которая не была бы удалена. Такая последовательность гарантирует, что на каждом этапе разработки программист одновременно имеет дело с обозримым и понятным ему множеством фрагментов, и может быть уверен, что общая структура всех более высоких уровней программы верна. При сопровождении и внесении изменений в программу выясняется, в какие именно процедуры нужно внести изменения, и они вносятся, не затрагивая части программы, непосредственно не связанные с ними. Это позволяет гарантировать, что при внесении изменений и исправлении ошибок не выйдет из строя какая-то часть программы, находящаяся в данный момент вне зоны внимания программиста. Теорема о структурном программировании:
Любую схему алгоритма можно представить в виде композиции вложенных блоков begin и end, условных операторов if, then, else, циклов с предусловием (while) и может быть дополнительных логических переменных (флагов). Эта теорема была сформулирована итальянскими математиками К.Бомом и Дж.Якопини в 1966 году и говорит нам о том, как можно избежать использование оператора перехода goto.
Перечислим некоторые достоинства структурного программирования:
-
Структурное программирование позволяет значительно сократить число вариантов построения программы по одной и той же спецификации, что значительно снижает сложность программы и, что ещё важнее, облегчает понимание её другими разработчиками.
-
В структурированных программах логически связанные операторы находятся визуально ближе, а слабо связанные — дальше, что позволяет обходиться без блок-схем и других графических форм изображения алгоритмов (по сути, сама программа является собственной блок-схемой).
-
Сильно упрощается процесс тестирования и отладки структурированных программ.
№9