Реферат по информатике "Эволюция программирования"
Современный научно-технический прогресс в значительной степени обусловлен широким применением ЭВМ в различных областях научной, производственной и хозяйственно-экономической деятельности. Сфера применения ЭВМ постоянно расширяется, обеспечивая тем самым современное развитие практически всех отраслей народного хозяйства. В настоящее время трудно найти те области человеческой деятельности, успехи и развитие которых не были бы связаны с ЭВМ.
Программное обеспечение современных ЭВМ предоставляет пользователям необходимые средства автоматизации программирования и существенно упрощает процесс подготовки задач к решению на ЭВМ.
Смену поколений ЭВМ нельзя связывать только с совершенствованием элементной базы. Существенным при этом также является развитие логической структуры ЭВМ, а главное методов и приемов программирования, упрощающих процесс подготовки задач к решению на ЭВМ и повышающих эффективность использования технических возможностей компьютера.
Если для ЭВМ первых поколений программирование велось на базе машинных языков, что было весьма трудоемко, то теперь для этой цели применяются различные алгоритмические языки, с помощью которых составление программ в большинстве случаев стало под силу самим пользователям.
1. История развития языков программирования
Одной из самых революционных идей, приведших к созданию цифровых вычислительных машин, была высказанная в 20х гг. XIX в. Чарльзом Бэббиджем мысль о предварительной записи порядка действий машины для последующей автоматической реализации вычислений – программе. Бэббидж предложил использовать запись программы на перфокартах, придуманных для управления ткацкими станками французским изобретателем Жозефом Мари Жаккаром. Технически это уже не имеет ничего общего с современными приемами хранения программ в ЭВМ, однако принцип здесь, по существу, один. С этого момента начинается история программирования.
Аду Лавлейс, одну из немногих современников Ч. Бэббиджа, кто сумел по достоинству оценить аналитическую машину, называют первым в мире программистом. Она теоретически разработала некоторые приемы управления последовательностью вычислений, которые используются в программировании и по сей день, описала одну из важнейших конструкций практически любого современного языка программирования – цикл.
Революционным моментом в истории языков программирования стало появление системы кодирования машинных команд с помощью специальных символов, предложенной Джоном Моучли, сотрудником Пенсильванского университета. Эта система под названием Short Code являлась примитивным языком программирования высокого уровня. В ней программист записывал решаемую задачу в виде математических формул, а затем, используя специальную таблицу, переводил символ за символом в литерные коды. В дальнейшем специальная программа компьютера превращала эти коды в двоичный машинный код. Система, разработанная Дж. Моучли, была, по существу, одним из первых примитивных интерпретаторов. Ею заинтересовалась одна из сотрудниц его компании – Грейс Мюррей Хоппер, которая посвятила всю свою жизнь компьютерам и программированию. Она вспоминает, что стала «третьим в мире программистом первого в мире большого цифрового компьютера». Г. Хоппер доказала, чего она стоит как программист. При работе на компьютере МаркI, созданном Горвардом Айкеном, Г. Хоппер и ее группе пришлось столкнуться со многими проблемами, и все, что было ими придумано, было впервые. В частности, они придумали подпрограммы. Сейчас любой программист не задумываясь использует аппарат подпрограмм в любом языке программирования.
Интересна история появления фундаментального термина «отладка», который также впервые ввели Г. Хоппер и ее группа. Однажды жарким летним днем 1945 г. неожиданно произошла остановка компьютера МаркI. обнаружилась неисправность одного реле, контакты которого были заблокированы мотыльком, залетевшим в помещение вычислительного центра. Вспоминает Г. Хоппер: «Когда к нам зашел офицер, чтобы узнать, чем мы занимаемся, мы ответили, что очищаем компьютер от насекомых (debugging)». С тех пор термин «debugging» (отладка) используется в технических процессах тестирования неисправностей в компьютере, а также в системах программирования.
Уже в 1951 г. Г. Хоппер создала первый в мире компилятор и ею же был введен сам этот термин. Компилятор Хоппер осуществлял функцию объединения команд и в ходе трансляции производил организацию подпрограмм, выделение памяти компьютера, преобразование команд высокого уровня (в то время псевдокодов) в машинные команды.
В 1954 г. группа под руководством Г. Хоппер разработала систему, включавшую в себя язык программирования и компилятор, которая в дальнейшем получила название MATHMATIC. После удачного завершения работ по созданию MATHMATIC Г. Хоппер и ее группа принялись за разработку нового языка и компилятора, который позволил бы пользователям программировать на языке, близком к обычному английскому.
Середина 1950х гг. характеризуется стремительным прогрессом в области программирования. Роль программирования в машинных командах стала уменьшаться. Начали появляться языки программирования нового типа, выступающие в роли посредника между машинами и программистами. Первым и одним из наиболее распространенных был Фортран (FORTRAN – от FORmula TRANslator – переводчик формул), разработанный группой программистов фирмы IBM в 1954 г. (первая версия).
В конце 1950х гг. плодом международного сотрудничества в области программирования явился Алгол (ALGOL – от ALGOrithmic Language алгоритмический язык). Алгол предназначен для записи алгоритмов, которые строятся в виде последовательности процедур, применяемых для решения поставленных задач. Специалистыпрактики восприняли этот язык далеко неоднозначно, но, тем не менее, его влияние на развитие других языков и теорию программирования оказалось весьма значительным.
В нашей стране в те годы под руководством Сергея Петровича Ершова был создан транслятор Альфа, который представлял довольно удачную русифицированную версию Алгола. Впоследствии академик С.П. Ершов сыграл важнейшую роль в становлении в СССР школьной информатики.
В 1958 г. появился компилятор FLOWMATIC. В отличие от Фортрана – языка для научных приложений – FLOWMATIC был первым языком для задач обработки коммерческих данных. Работы в этом направлении привели к созданию в 1960 г. языка Кобол (COBOL – Common Business Oriented Language) – общего языка, ориентированного на деловые задачи. Одним из основных консультантов при создании этого языка была Грейс Мюррей Хоппер.
В середине 1960х гг. сотрудники математического факультета Дартмутского колледжа Томас Курц и Джон Кемени создали специализированный язык программирования, который состоял из простых слов английского языка. новый язык назвали «универсальным символическим кодом для начинающих» (Beginner’s AllPurpose Symbolic Instruction Code, или сокращенно, BASIC). годом рождения нового языка можно считать 1964 г. сегодня универсальный язык Бейсик (имеющий множество версий) приобрел большую популярность и получил широкое распространение среди пользователей ЭВМ различных категорий во всем мире. В значительной мере этому способствовало то, что Бейсик начали использовать как встроенный язык персональных компьютеров, широкое распространение которых началось в конце 1970х гг.
В начале 1960х гг. все существующие языки программирования высокого уровня можно было пересчитать по пальцам, однако впоследствии их число достигло трех тысяч. Разумеется, подавляющая часть языков не получила скольконибудь широкого распространения; в практической деятельности используется не более двух десятков. Разработчики ориентировали языки на разные классы задач, в той или иной мере привязали их к конкретным архитектурам ЭВМ, реализовали личные вкусы и идеи. В 1960е гг. были предприняты попытки преодолеть эту «разноголосицу» путем создания универсального языка программирования. Первым детищем этого направления стал PL/1 (Program Language One), созданный в 1967 г. Затем на эту роль претендовал Алгол68 (1968 г.). предполагалось, что подобные языки будут развиваться и совершенствоваться и вытеснят все остальные. Однако ни одна из этих попыток на сегодняшний день не увенчалась успехом (хотя PL/1 в усеченных версиях использовали многие программисты). Всеохватность языка приводила к неоправданной, с точки зрения программиста, сложности конструкций, неэффективности компиляторов.
Языки программирования служат разным целям и их выбор определяется удобностью для пользователя, пригодностью для данного компьютера и данной задачи. А задачи для компьютера бывают самые разнообразные: вычислительные, экономические, графические, экспертные и т.д. Такая разнотипность решаемых компьютером задач и определяет иногообразие языков программирования. По всей видимости, в программировании наилучший результат достигается при индивидуальном подходе, исходящем из класса задачи, уровня и интересов программиста. Например: Бейсик широко употребляется при написании простых программ; Фортран является классическим языком программирования при решении на ЭВМ математических и инженерных задач; язык Кобол был задуман как основной язык для массовой обработки данных в сферах управления и бизнеса. Еще более специализированным является язык Лого (от греч. logos – слово), созданный для обучения программированию школьников профессором математики и педагогики Сеймуром Пейпертом из Массачусетского технологического института. Обучаясь программированию на Лого, дети задают простые команды, которые управляют игрушечной черепашкой, снабженной карандашиком. Следует отметить еще один достаточно специализированный язык – Пролог (PROLOG – PROgramming in LOGic), разработанный как язык программирования для создания систем искусственного интеллекта.
Развитие идеи Алгола о структуризации разработки алгоритмов нашло наивысшее отражение при создании в начале 1970х гг. языка Паскаль швейцарским ученым Никлаусом Виртом. Язык Паскаль первоначально разрабатывался как учебный, и, действительно, сейчас он является одним из основных языков обучения программированию в школах и вузах. Однако качества его в совокупности оказались столь высоки, что им пользуются и профессиональные программисты.
Не менее впечатляющей, в том числе и финансовой, удачи добился джазист Филипп Канн, француз, разработавший систему Турбо Паскаль. Суть его идеи состояла в объединении последовательных этапов обработки программы – компиляции, редактирования связей, отладки и диагностики ошибок – в едином интерфейсе. Версии Турбо Паскаля заполнили практически все образовательные учреждения, программистские центры и частные фирмы.
Период с конца 1960х и до начала 1980х гг. характеризуется бурным ростом числа различных языков программирования, сопровождавшим, как это ни парадоксально, кризис программного обеспечения. Этот кризис особо остро переживало военной ведомство США. В январе 1975 г. Пентагон решил навести порядок в хаосе трансляторов и учредил комитет, которому было предписано разработать один универсальный язык. На конкурсной основе комитет разработал сотни проектов и, когда стало ясно, что ни один из существующих языков не может их удовлетворить, принял два проекта для окончательного рассмотрения. В мае 1979 г. был объявлен победитель – группа ученых во главе с Жаном Ихбиа. Победивший язык окрестили Ада, в честь Огасты Ады Лавлейс. Язык Ада – прямой наследник языка Паскаль. Этот язык предназначен для создания и длительного (многолетнего) сопровождения больших программных систем, допускает возможность параллельной обработки, управления процессами в реальном времени и многое другое, чего трудно или невозможно достичь средствами более простых языков.
Большой отпечаток на современное программирование наложил язык Си (первая версия – 1972 г.), являющийся очень популярным в среде разработчиков систем программного обеспечения (включая операционные системы). Си сочетает в себе черты как языка высокого уровня, так и машинноориентированного языка, допуская программиста ко всем машинным ресурсам, чего не обеспечивают такие языки, как Бейсик и Паскаль.
Следует ометить, что многие языки, первоначально разработанные для больших и малых ЭВМ, в дальнейшем были приспособлены к персональным компьютерам. Хорошо вписались в «персоналки» не только Паскаль, Бейсик, Си, Лого, но и Лисп, Пролог – языки искусственного интеллекта.
В течение многих лет программное обеспечение строилось на основе операционных и процедурных языков, таких как Фортран, Бейсик, Паскаль, Ада, Си. И сегодня версии этих и им подобных языков (Модула, Форт и др.) доминируют при разработке прикладных программных средств. Однако по мере эволюции языков программирования получили широкое распространение и другие, принципиально иные, подходы к созданию программ.
Классическое операционное и (или) процедурное программирование требует от программиста детального описания того, как решать задачу, т.е. формулировки алгоритма и его специальной записи. При этом ожидаемые свойства результата обычно не указываются. Основные понятия языков этих групп – оператор и данные. При процедурном подходе операторы объединяются в группы – процедуры. Структурное программирование в целом не выходит за рамки этого направления, оно лишь дополнительно фиксирует некоторые полезные приемы технологии программирования.
Принципиально иное направление в программировании связано с методологиями (иногда говорят «парадигмами») непроцедурного программирования. К ним можно отнести объектноориентированное и декларативное программирование.
Объектноориентированный язык создает окружение в виде множества независимых объектов. Каждый объект ведет себя подобно отдельному компьютеру, их можно использовать для решения задач как «черные ящики», не вникая во внутренние механизмы их функционирования.
Из языков объектного программирования, популярных среди профессионалов, следует назвать прежде всего Си++, для более широкого круга программистов предпочтительны среды типа Delphi и Visual Basic.
При использовании декларативного языка программист указывает исходные информационные структуры, взаимосвязи между ними и то, какими свойствами должен обладать результат. При этом процедуру его получения («алгоритм») программист не строит (по крайней мере, в идеале). В этих языках отсутствует понятие «оператор» («команда»).
Декларативные языки можно подразделить на два семейства: логические (типичный представитель – Пролог) и функциональные (Лисп).
По всей видимости, непроцедурные языки имеют большое будущее.
Все сказанное можно отобразить схемой – крупноструктурной классификацией языков программирования, в которой указаны основные методологии программирования:
2. Уровни языков программирования
Разные типы процессоров имеют разные наборы команд. Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня. В данном случае «низкий уровень» не значит «плохой». Имеется в виду, что операторы языка близки к машинному коду и ориентированы на конкретные команды процессора.
Языком самого низкого уровня является язык ассемблера, который просто представляет каждую команду машинного кода, но не в виде чисел, а с помощью символьных условных обозначений, называемых мнемониками. Однозначное преобразование одной машинной инструкции в одну команду ассемблера называется транслитерацией. Так как наборы инструкций для каждой модели процессора отличаются, конкретной компьютерной архитектуре соответствует свой язык ассемблера, и написанная на нем программа может быть использована только в этой среде.
С помощью языков низкого уровня создаются очень эффективные и компактные программы, так как разработчик получает доступ ко всем возможностям процессора. С другой стороны, при этом требуется очень хорошо понимать устройство компьютера, затрудняется отладка больших приложений, а результирующая программа не может быть перенесена на компьютер с другим типом процессора. Подобные языки обычно применяют для написания небольших системных приложений, драйверов устройств, модулей стыковки с нестандартным оборудованием, когда важнейшими требованиями становятся компактность, быстродействие и возможность прямого доступа к аппаратным ресурсам. В некоторых областях, например в машинной графике, на языке ассемблера пишутся библиотеки, эффективно реализующие требующие интенсивных вычислений алгоритмы обработки изображений.
Языки программирования высокого уровня значительно ближе и понятнее человеку, нежели компьютеру. Особенности конкретных компьютерных архитектур в них не учитываются, поэтому создаваемые программы на уровне исходных текстов легко переносимы на другие платформы, для которых создан транслятор этого языка. Разрабатывать программы на языках высокого уровня с помощью понятных и мощных команд значительно проще, а ошибок при создании программ допускается гораздо меньше.
3. Языки программирования высокого уровня
3.1. Понятие о языках программирования высокого уровня
Языки программирования – это формальные языки, специально созданные для общения человека с компьютером. Каждый язык программирования, равно как и «естественный язык» (русский, английский и т.д.) имеет алфавит, словарный запас, свою грамматику и синтаксис, а также семантику.
Алфавит – фиксированный для данного языка набор основных символов, допускаемых для составления текста программы на этом языке.
Синтаксис – система правил, определяющих допустимые конструкции языка программирования из букв алфавита.
Семантика – система правил однозначного толкования отдельных языковых конструкций, позволяющих воспроизвести процесс обработки данных.
При описании языка и его применении используют понятие языка. Понятие подразумевает некоторую синтаксическую конструкцию и определяемые ею свойства программных объектов или процесса обработки данных.
Взаимодействие синтаксических и семантических правил определяют те или иные понятия языка, например, операторы, идентификаторы, переменные, функции и процедуры, модули и т.д. в отличие от естественных языков правила грамматики и семантики для языков программирования, как и для всех формальных языков, должны быть явно, однозначно и четко сформулированы.
Языки программирования, имитирующие естественные языки, обладающие укрупненными командами, ориентированными на решение прикладных содержательных задач, называют языками «высокого уровня». В настоящее время насчитывается несколько сотен таких языков, а если считать и их деалекты, то это число возрастет до нескольких тысяч. Языки программирования высокого уровня существенно отличаются от машинноориентированных (низкого уровня) языков. Вопервых, машинная программа в конечном счете записывается лишь с помощью двух символов: 0 и 1. Вовторых, каждая ЭВМ имеет ограниченный набор машинных операций, ориентированных на структуру процесса. Как правило, этот набор состоит из сравнительно небольшого числа простейших операций, например: переслать число в ячейку; считать число из ячейки; увеличить содержимое ячейки на +1 и т.п. Команда на машинном языке содержит очень ограниченный объем информации, поэтому она обычно определяет простейший обмен содержимого ячеек память, элементарные арифметические и логические операции. Команда содержит код и адреса ячеек, с содержимым которых выполняется закодированное действие.
Языки программирования высокого уровня имеют следующие достоинства:
• алфавит значительно шире машинного, что делает его гораздо более выразительным и существенно повышает наглядность и понятность текста;
• набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается из соображений удобства формулирования алгоритмов решения задач определенного класса;
• конструкции команд (операторов) отражают содержательные виды обработки данных и задаются в удобном для человека виде;
• используется аппарат переменных и действия с ними;
• поддерживается широкий набор типовых данных.
Таким образом, языки программирования высокого уровня являются машиннонезависимыми и требуют использования соответствующих программпереводчиков (трансляторов) для представления программы на языке машины, на которой она будет исполняться.
3.2. Метаязыки описания языков программирования
Интерпретация конструкций языка программирования должна быть абсолютно однозначной, ибо фраза на языке программирования превращается в машинный код автоматически, с помощью программытранслятора, и любой намек на неоднозначность либо делает эту фразу непереводимой, либо приводит к ошибке. В этом отношении языки программирования значительно отличаются от естественных языков, допускающих неоднозначно интерпретируемые фразы, рассчитанные на здравый смысл и жизненный опыт человека, а в способности компьютеров «додумывание» не входит.
Для строгого и точного описания синтаксиса языка программирования, как правило, используют специальные метаязыки (языки для описания других языков). Наиболее распространенными метаязыками являются металингвистические формулы Бэкуса – Наура (язык БНФ) и синтаксические диаграммы Вирта.
Язык БНФ (называемый также языком нормальных форм) представляет компактную форму в виде некоторых формул, похожих на математические. Для каждого понятия языка существует единственная метаформула (нормальная форма), которая состоит из правой и левой частей. В левой части указывается определяемое понятие, а в правой – задается множество допустимых конструкций языка, которые объединяются в это понятие. В формуле используют специальные метасимволы в виде угловых скобок, в которых заключено определяемое понятие (в левой части формулы) или ранее определенное понятие (в ее правой части), а разделение правой и левой частей указывается метасимволом «: : =», смысл которого эквивалентен словам «по определению есть».
Синтаксическая диаграмма является графическим представителем значения метапеременной метаязыка. Диаграмма состоит из основных символов или понятий языка.
Каждая диаграмма имеет входящую и выходящую стрелки, означающие начало и конец синтаксической конструкции и отражающие процесс ее чтения и анализа. Из каждого элемента выходит одна или несколько стрелок, указывающих на те элементы, которые могут следовать непосредственно за данным элементом.
Для сравнения с метаформулами можно привести пример. Синтаксическая диаграмма
4. Грамматика языков программирования
Описанию грамматики языка предшествует описание его алфавита. Алфавит любого языка состоит из фиксированного набора символов, однозначно трактуемых. Алфавит языков программирования, как правило, связан с литерами клавиатуры печатной машинки. Клавиатуры персональных компьютеров близки к ним по наличию литер.
Алфавиты большинства языков программирования близки друг к другу и основываются на буквах латинского алфавита, арабских цифрах и общепринятых специальных символах, таких как знаки препинания, математических операций, сравнений и обозначений.
Несмотря на значительные различия между языками программирования, ряд фундаментальных понятий из них схожи. Можно привести часть этих понятий.
Оператор – одно из ведущих понятий всех языков программирования. Каждый оператор представляет собой законченную фразу языка и определяет однозначно трактуемый этап обработки данных. В соответствии с теорией алгоритмов выделяют основные (базисные) операторы языка: присвоения, условный и безусловный переход, пустой оператор. К производным, неосновным, относят: составной оператор, оператор выбора, оператор цикла и оператор присоединения. Все операторы языка в тексте программы отделяются друг от друга явными (чаще всего точкой с запятой) или неявными разделителями.
Большая часть операторов ведет обработку величин. Величины могут постоянными (их значения не изменяются в ходе выполнения программы) и переменными. Величина характеризуется типом, именем и значением. Наиболее распространенные типы величин – числовые, символьные, логические. Тип величины определяется ее значением.
Кроме того, величины классифицируются на простые и структурированные. Простая величина в каждый момент может иметь не более одного значения. Ей соответствует одна ячейка памяти. Структурированная величина, имея одно имя, может иметь сразу несколько значений. Эти значения представляют собой элемент (компоненты) величины. Самый известный пример – массив, у которого элементы различаются по индексам (номерам).
Всем программным объектам в языках даются индивидуальные имена. Имя программного объекта называют идентификатором (от слова «идентифицировать»). Чаще всего идентификатором является любая конечная последовательность букв и цифр, начинающаяся с буквы. Как правило, в большинстве языков программирования в качестве идентификатора запрещается использовать служебные слова языка.
Описания или объявления программных объектов связаны с правилами обработки данных. Данные бывают разные и необходимо для каждого из них определить его свойства. Например, если в качестве данных выступает массив, то необходимо задать его размерность, границы индексов, тип элементов массива. Описательная часть языка программирования является необходимой как для системных программистов – разработчиков трансляторов, которые должны, в частности, проводить синтаксическую и семантическую диагностику программ, так и для «прикладного» программиста, которому объявления программных объектов часто облегчают процесс разработки и отладки программ.
Переменные играют важнейшую роль в системах программирования. Понятие «переменная» в языках программирования отличается от общепринятого в математике. Переменная – это программный объект, способный принимать некоторое значение с помощью оператора присваивания. В ходе выполнения программы значения переменной могут неоднократно изменяться. Каждая переменная после ее описания отождествляется с некоторой ячейкой памяти, содержимое которой является ее значением.
Функция – это программный объект, задающий вычислительную процедуру определения значения, зависимого от некоторых аргументов. Вводится в языки программирования для задания программистом необходимых ему функциональных зависимостей. В каждом языке высокого уровня имеется в наличии библиотека стандартных функций: арифметических, логических, символьных, файловых и т.п.
Выражения строятся из величин – постоянных и переменных, функций, скобок, знаков операций и т.д. Выражение имеет определенный тип, определяемый типом принимаемых в итоге его вычисления значений. Возможны выражения: арифметические, принимающие числовые значения, логические, символьные, строковые и т.д.
Процедура – это программный объект, представляющий некоторый самостоятельный этап обработки данных. По сути, процедуры явились преемниками подпрограмм, которые были введены для облегчения разработки программ еще на самых ранних стадиях формирования алгоритмических языков. Процедура имеет входные и выходные параметры, называемые формальными. При использовании процедуры формальные параметры заменяются на фактические.
Модуль – это специальная программная единица, предназначенная для создания библиотек и разделения больших программ на логически связанные блоки. По сути, модуль – это набор констант, типов данных, переменных, процедур и функций. В состав модуля входят разделы: заголовок, интерфейс, реализация, инициализация. Заголовок необходим для ссылок на модуль. Интерфейс содержит объявления, включая процедуры и функции. Раздел «реализация» содержит тела процедур и функций, перечисленных в интерфейсной части. Раздел «инициализация» содержит операторы, необходимые для инициализации модуля. Каждый модуль компилируется отдельно, и каждый элемент модуля можно использовать в программе без дополнительного объявления.
Заключение.
Компьютеры – это универсальные устройства для обработки информации. В отличие от телефона, магнитофона или телевизора, осуществляющих только заранее заложенные в них функции, персональные компьютеры могут выполнять любые действия по обработке информации. Для этого необходимо составить для компьютера на понятном ему языке точную и подробную последовательность инструкций по обработке информации – программу. Сам по себе компьютер не обладает знаниями ни в одной области своего применения, все эти знания сосредоточены в выполняемых на компьютере программах.
Меняя программы для компьютера, можно превратить его в рабочее место бухгалтера или конструктора, статистика или агронома, редактировать на нем документы или играть в какуюнибудь игру. При своем выполнении программы могут использовать различные устройства компьютера для ввода и вывода данных.
По мере преодоления технических проблем построения компьютеров накапливались проблемы, связанные с их использованием. Трудности сместились из области выполнения программ компьютера в область создания программ для компьютера. Начались поиски языков программирования, пригодных для человека. Начиная с языка, воспринимаемого компьютером (машинного языка), стали появляться более удобные языки создания программ.
Однако ряд современных тенденции, включая появление более быстрых машин, повышение значимости интерфейса пользователя, а также рост популярности Internet, чрезвычайно расширили сферу применения языков программирования и увеличили их виды.
Список литературы
Акулов О.А., Медведев Н.В. Информатика: базовый курс, М.: ОмегаЛ, 2005.
Мелехин А.В., Павловский Д.Г. Вычислительные машины, системы и сети, М.: Мир, 2006.
Могилев А.В., Пак Н.И., Хеннер Е.К. Информатика, М.: Академия, 2007.
Симонович С.В. Информатика: базовый курс, СПб.: Питер, 2004.
Рекомендуем посмотреть:
Что такое технология потоковых данных
Использование облачного хранилища данных в образовательном пространстве
Восьмеричный переход
Конспект урока информатики по теме «Разветвляющие алгоритмы», 10 класс
Похожие статьи:
Оценка достижений учащихся на уроках информатики
Конспект открытого урока по информатике в 9 классе
Конспект урока информатики в 8 классе
Конспект урока информатики в 3 классе
Конспект урока информатики во 2 классе