|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Реферат: История языков программирования. Программирование рефератДоклад - Система программирования - Информатика, программированиеПонятие, назначение и составные элементы систем программирования. Неотъемлемая часть современных ЭВМ – системы программного обеспечения, являющиеся логическим продолжением логических средств ЭВМ, расширяющим возможности аппаратуры и сферу их использования. Система программного обеспечения, являясь посредником между человеком и техническими устройствами машины, автоматизирует выполнение тех или иных функций в зависимости от профиля специалистов и режимов их взаимодействия с ЭВМ. Основное назначение программного обеспечения – повышение эффективности труда пользователя, а также увеличение пропускной способности ЭВМ посредством сокращения времени и затрат на подготовку и выполнение программ. Программное обеспечение ЭВМ можно подразделить на общее и специальное программное обеспечение. Общее программное обеспечение реализует функции, связанные с работой ЭВМ, и включает в себя системы программирования, операционные системы, комплекс программ технического обслуживания. Специальное программное обеспечение включает в себя пакеты прикладных программ, которые проблемно ориентированы на решение вполне определенного класса задач. Системой программирования называется комплекс программ, предназначенный для автоматизации программирования задач на ЭВМ. Система программирования освобождает проблемного пользователя или прикладного программиста от необходимости написания программ решения своих задач на неудобном для него языке машинных команд и предоставляют им возможность использовать специальные языки более высокого уровня. Для каждого из таких языков, называемых входными или исходными, система программирования имеет программу, осуществляющую автоматический перевод (трансляцию) текстов программы с входного языка на язык машины. Обычно система программирования содержит описания применяемых языков программирования, программы-трансляторы с этих языков, а также развитую библиотеку стандартных подпрограмм. Важно различать язык программирования и реализацию языка. Язык – это набор правил, определяющих систему записей, составляющих программу, синтаксис и семантику используемых грамматических конструкций. Реализация языка – это системная программа, которая переводит (преобразует) записи на языке высокого уровня в последовательность машинных команд. Имеется два основных вида средств реализации языка: компиляторы и интерпретаторы. Компилятор транслирует весь текст программы, написанной на языке высокого уровня, в ходе непрерывного процесса. При этом создается полная программа в машинных кодах, которую затем ЭВМ выполняет без участия компилятора. Интерпретатор последовательно анализирует по одному оператору программы, превращая при этом каждую синтаксическую конструкцию, записанную на языке высокого уровня, в машинные коды и выполняя их одна за другой. Интерпретатор должен постоянно присутствовать в зоне основной памяти вместе с интерпретируемой программой, что требует значительных объемов памяти. Следует заметить, что любой язык программирования может быть как интерпретируемым, так и компилируемым, но в большинстве случаев у каждого языка есть свой предпочтительный способ реализации. Языки Фортран, Паскаль в основном компилируют; язык Ассемблер почти всегда интерпретирует; языки Бейсик и Лисп широко используют оба способа. Основным преимуществом компиляции является скорость выполнения готовой программы. Интерпретируемая программа неизбежно выполняется медленнее, чем компилируемая, поскольку интерпретатор должен строить соответствующую последовательность команд в момент, когда инструкция предписывает выполнение. В то же время интерпретируемый язык часто более удобен для программиста, особенно начинающего. Он позволяет проконтролировать результат каждой операции. Особенно хорошо такой язык подходит для диалогового стиля разработки программ, когда отдельные части программы можно написать, проверить и выполнить в ходе создания программы, не отключая интерпретатора. По набору входных языков различают системы программирования одно- и многоязыковые. Отличительная черта многоязыковых систем состоит в том, что отдельные части программы можно составлять на разных языках и помощью специальных обрабатывающих программ объединять их в готовую для исполнения на ЭВМ программу. Для построения языков программирования используется совокупность общепринятых символов и правил, позволяющих описывать алгоритмы решаемых задач и однозначно истолковывать смысл созданного написания. Основной тенденцией в развитии языков программирования является повышение их семантического уровня с целью облегчения процесса разработки программ и увеличения производительности труда их составителей. По структуре, уровню формализации входного языка и целевому назначению различают системы программирования машинно-ориентированные и машинно-независимые. Машинно-ориентированные системы программирования имеют входной язык, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.). Машинно-ориентированные системы позволяют использовать все возможности и особенности машинно-зависимых языков: · высокое качество создаваемых программ; · возможность использования конкретных аппаратных ресурсов; · предсказуемость объектного кода и заказов памяти; · для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ; · трудоемкость процесса составления программ (особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок; · низкая скорость программирования; · невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов. Машинно-ориентированные системы по степени автоматического программирования подразделяются на классы: 1. Машинный язык. В таких системах программирования отдельный компьютер имеет свой определенный Машинный Язык (далее МЯ), ему предписывают выполнение указываемых операций над определяемыми ими операндами, поэтому МЯ является командным. Однако, некоторые семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и др.) имеют единый МЯ для ЭВМ разной мощности. В команде любого из них сообщается информация о местонахождении операндов и типе выполняемой операции. В новых моделях ЭВМ намечается тенденция к повышению внутренних языков машинно-аппаратным путем реализовывать более сложные команды, приближающиеся по своим функциональным действиям к операторам алгоритмических языков программирования. 2. Система Символического Кодирования. В данных системах используются Языки Символического Кодирования (далее ЯСК), которые так же, как и МЯ, являются командными. Однако коды операций и адреса в машинных командах, представляющие собой последовательность двоичных (во внутреннем коде) или восьмеричных (часто используемых при написании программ) цифр, в ЯСК заменены символами (идентификаторами), форма написания которых помогает программисту легче запоминать смысловое содержание операции. Это обеспечивает существенное уменьшение числа ошибок при составлении программ. Использование символических адресов – первый шаг к созданию ЯСК. Команды ЭВМ вместо истинных (физических) адресов содержат символические адреса. По результатам составленной программы определяется требуемое количество ячеек для хранения исходных промежуточных и результирующих значений. Назначение адресов, выполняемое отдельно от составления программы в символических адресах, может проводиться менее квалифицированным программистом или специальной программой, что в значительной степени облегчает труд программиста. 3. Автокоды. Существуют системы программирования, использующие языки, которые включают в себя все возможности ЯСК, посредством расширенного введения макрокоманд – они называются Автокоды. В различных программах встречаются некоторые достаточно часто использующиеся командные последовательности, которые соответствуют определенным процедурам преобразования информации. Эффективная реализация таких процедур обеспечивается оформлением их в виде специальных макрокоманд и включением последних в язык программирования, доступный программисту. Макрокоманды переводятся в машинные команды двумя путями – расстановкой и генерированием. В постановочной системе содержатся «остовы» – серии команд, реализующие требуемую функцию, обозначенную макрокомандой. Макрокоманды обеспечивают передачу фактических параметров, которые в процессе трансляции вставляются в «остов» программы, превращая её в реальную машинную программу. В системе с генерацией имеются специальные программы, анализирующие макрокоманду, которые определяют, какую функцию необходимо выполнить и формируют необходимую последовательность команд, реализующих данную функцию. Обе указанных системы используют трансляторы с ЯСК и набор макрокоманд, которые также являются операторами автокода. Развитые автокоды получили название Ассемблеры. Сервисные программы и пр., как правило, составлены на языках типа Ассемблер. 4. Макрос. В таких системах язык, являющийся средством для замены последовательности символов описывающих выполнение требуемых действий ЭВМ на более сжатую форму – называется Макрос (средство замены). В основном, Макрос предназначен для того, чтобы сократить запись исходной программы. Компонент программного обеспечения, обеспечивающий функционирование макросов, называется макропроцессором. На макропроцессор поступает макросопределяющий и исходный текст. Реакция макропроцессора на вызов – выдача выходного текста. Макрос одинаково может работать, как с программами, так и с данными. Машинно-независимые системы программирования – это средство описания алгоритмов решения задач и информации, подлежащей обработке. Они удобны в использовании для широкого круга пользователей и не требуют от них знания особенностей организации функционирования ЭВМ. В таких системах программы, составляемые языках, имеющих название высокоуровневых языков программирования, представляют собой последовательности операторов, структурированные согласно правилам рассматривания языка (задачи, сегменты, блоки и т.д.). Операторы языка описывают действия, которые должна выполнять система после трансляции программы на МЯ. Таким образом, командные последовательности (процедуры, подпрограммы), часто используемые в машинных программах, представлены в высокоуровневых языках отдельными операторами. Программист получил возможность не расписывать в деталях вычислительный процесс на уровне машинных команд, а сосредоточиться на основных особенностях алгоритма. Среди машинно-независимых систем программирования следует выделить: 1. Процедурно-ориентированные системы. Входные языки программирования в таких системах служат для записи алгоритмов (процедур) обработки информации, характерных для решения задач определенного класса. Эти языки, должны обеспечить программиста средствами, позволяющими коротко и четко формулировать задачу и получать результаты в требуемой форме. Процедурных языков очень много, например: Фортран, Алгол – языки, созданные для решения математических задач; Simula, Слэнг — для моделирования; Лисп, Снобол – для работы со списочными структурами. 2. Проблемно-ориентированные системыв качестве входного языка используют язык программирования с проблемной ориентацией. С расширением областей применения вычислительной техники возникла необходимость формализовать представление постановки и решение новых классов задач. Необходимо было создать такие языки программирования, которые, используя в данной области обозначения и терминологию, позволили бы описывать требуемые алгоритмы решения для поставленных задач. Эти языки, ориентированные на решение определенных проблем, должны обеспечить программиста средствами, позволяющими коротко и четко формулировать задачу и получать результаты в требуемой форме. Программы, составленные на основе этих языков программирования, записаны в терминах решаемой задачи и реализуются выполнением соответствующих процедур. 3. Диалоговые языки. Появление новых технических возможностей поставило задачу перед системными программистами – создать программные средства, обеспечивающие оперативное взаимодействие человека с ЭВМ их назвали диалоговыми языками. Создавались специальные управляющие языки для обеспечения оперативного воздействия на прохождение задач, которые составлялись на любых раннее неразработанных (не диалоговых) языках. Разрабатывались также языки, которые кроме целей управления обеспечивали бы описание алгоритмов решения задач. Необходимость обеспечения оперативного взаимодействия с пользователем потребовала сохранения в памяти ЭВМ копии исходной программы даже после получения объектной программы в машинных кодах. При внесении изменений в программу система программирования с помощью специальных таблиц устанавливает взаимосвязь структур исходной и объектной программ. Это позволяет осуществить требуемые редакционные изменения в объектной программе. 4. Непроцедурные языки. Непроцедурные языки составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов), и языков связи с операционными системами. Позволяя четко описывать как задачу, так и необходимые для её решения действия, таблицы решений дают возможность в наглядной форме определить, какие условия должны выполнятся, прежде чем переходить к какому-либо действию. Одна таблица решений, описывающая некоторую ситуацию, содержит все возможные блок-схемы реализаций алгоритмов решения. Табличные методы легко осваиваются специалистами любых профессий. Программы, составленные на табличном языке, удобно описывают сложные ситуации, возникающие при системном анализе. В самом общем случае для создания программы на выбранном языке программирования нужно иметь следующие компоненты. 1. Текстовый редактор. Специализированные текстовые редакторы, ориентированные на конкретный язык программирования, необходимы для получения файла с исходным текстом программы, который содержит набор стандартных символов для записи алгоритма. 2. Исходный текст с помощью программы-компилятора переводится в машинный код. Исходный текст программы состоит, как правило, из нескольких модулей (файлов с исходными текстами). Каждый модуль компилируется в отдельный файл с объектным кодом, которые затем требуется объединить в одно целое. Кроме того, системы программирования, как правило, включают в себя библиотеки стандартных подпрограмм. Стандартные подпрограммы имеют единую форму обращения, что создает возможности автоматического включения таких подпрограмм в вызывающую программу и настройки их параметров. 3. Объектный код модулей и подключенные к нему стандартные функции обрабатывает специальная программа – редактор связей. Данная программа объединяет объектные коды с учетом требований операционной системы и формирует на выходе работоспособное приложение – исполнимый код для конкретной платформы. Исполнимый код это законченная программа, которую можно запустить на любом компьютер, где установлена операционная система, для которой эта программа создавалась. 4. В современных системах программирования имеется еще один компонент – отладчик, который позволяет анализировать работу программы во время ее исполнения. С его помощью можно последовательно выполнять отдельные операторы исходного текста последовательно, наблюдая при этом, как меняются значения различных переменных. 5. В последние несколько лет в программировании (особенно для операционной среды Windows) наметился так называемый визуальный подход. Этот процесс автоматизирован в средах быстрого проектирования. При этом используются готовые визуальные компоненты, свойства и поведение которых настраиваются с помощью специальных редакторов. Таким образом, происходит переход от языков программирования системного уровня к языкам сценариев. Эти языки создавались для различных целей, что обусловило ряд фундаментальных различий между ним. Системные разрабатывались для построения структур данных и алгоритмов “с нуля”, начиная от таких примитивных элементов, как слово памяти компьютера. В отличие от этого, языки описания сценариев создавались для связывания готовых программ. Их применение подразумевает наличие достаточного ассортимента мощных компонентов, которые требуется только объединить друг с другом. Языки системного уровня используют строгий контроль типов данных, что помогает разработчикам приложении справляться со сложными задачами. Языки описания сценариев не используют понятие типа, что упрощает установление связей между компонентами, а также ускоряет разработку прикладных систем. Языки описания сценариев основаны на несколько другом наборе компромиссов, чем языки системного уровня. В них скорость исполнения и строгость контроля типов ставятся в шкале приоритетов на более низкое место, но зато выше цениться производительность труда программиста и повторное использование. Это соотношение ценностей оказывается все более обоснованным по мере того, как компьютеры становятся быстродействующими и менее дорогими, чего нельзя сказать о программистах. Языки системного программирования хорошо подходят для создания компонентов, где основная сложность заключена в реализации алгоритмов и структур данных, тогда как языки описания сценариев лучше приспособлены для построения приложении из готовых компонентов, где сложность состоит в налаживании межкомпонентных связей. Задачи последнего рода получают все большее распространение, так что роль языков описания сценариев будет возрастать. Список литературы 1. В.Ю. Демьяненко. Программные средства создания и ведения баз данных. –М.: Финансы и статистика, 1984. 2. В.А. Мясников, С.А. Майоров, Г.И. Новиков. ЭВМ для всех. –М.: Знание, 1985. 3. А.Г. Гейн. Основы информатики и вычислительной техники. –М.: Просвещение, 1997. 4. В.Ф. Ляхович. Основы информатики. –Ростов-на-Дону: Феникс, 1996. 5. Вычислительная техника и программирование / Под ред. А.В. Петрова –М.: Высш. шк., 1990. 6. Информатика: Базовый курс / С.В. Симонович и др. – СПб.: Питер, 1999. www.ronl.ru Реферат - Системы программирования - Информатика, программированиеМОРДОВСКИЙГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМЕНИ Н.П. ОГАРЕВА
ФАКУЛЬТЕТЭКОНОМИЧЕСКИЙ КАФЕДРА ИНФОРМАЦИОННЫХСИСТЕМ В ЭКОНОМИКЕ И УПРАВЛЕНИИ КУРСОВАЯРАБОТА
Тема:Системы программирования Оценка_______________
САРАНСК 2009 Содержание Введение 1. Система программирования как неотъемлемаячасть современных ЭВМ 1.1 Определение системыпрограммирования 1.2 Классификация системпрограммирования 1.3 Средства создания программ 2. Современные системыпрограммирования 2.1 Microsoft Visual Basic 2.2 Turbo Pascal 2.3 C++ Builder 2.4 Symantec Café 3. Практическая часть Заключение Список использованных источников Введение В пятидесятые годыдвадцатого века с появлением компьютеров на электронных лампах началось бурноеразвитие систем программирования. К сегодняшнему дню насчитывают несколькопоколений систем программирования. Каждое из последующих поколений по своейфункциональной мощности качественно отличается от предыдущего. С появлениемперсональных компьютеров системы стали составными частями интегрированных средразработки. Появились системы, применяемые в различных офисных программах. Внастоящее время системы программирования применяются в самых различных областяхчеловеческой деятельности, таких как научные вычисления, системноепрограммирование, обработка информации, искусственный интеллект, издательскаядеятельность, удаленная обработка информации, описание документов. С течением времени однисистемы развивались, приобретали новые черты и остались востребованы, другиеутратили свою актуальность и сегодня представляют в лучшем случае чистотеоретический интерес. Цель работы — описатьсовременные системы программирования. 1. Системыпрограммирования как неотъемлемая часть ЭВМ
1.1 Определениесистемы программирования Неотъемлемая частьсовременных ЭВМ – системы программного обеспечения, являющиеся логическимпродолжением логических средств ЭВМ, расширяющим возможности аппаратуры и сферуих использования. Система программного обеспечения, являясь посредником междучеловеком и техническими устройствами машины, автоматизирует выполнение тех илииных функций в зависимости от профиля специалистов и режимов их взаимодействияс ЭВМ. Основное назначение программного обеспечения – повышение эффективноститруда пользователя, а также увеличение пропускной способности ЭВМ посредствомсокращения времени и затрат на подготовку и выполнение программ. Программноеобеспечение ЭВМ можно подразделить на общее и специальное программноеобеспечение. Общее программноеобеспечение реализует функции, связанные с работой ЭВМ, и включает в себясистемы программирования, операционные системы, комплекс программ техническогообслуживания. Специальное программное обеспечение включает в себя пакетыприкладных программ, которые проблемно ориентированы на решение вполнеопределенного класса задач. Системой программирования называется комплекс программ,предназначенный для автоматизации программирования задач на ЭВМ (2, 569).Система программирования освобождает проблемного пользователя или прикладногопрограммиста от необходимости написания программ решения своих задач нанеудобном для него языке машинных команд, и предоставляют им возможностьиспользовать специальные языки более высокого уровня. Для каждого из такихязыков, называемых входными или исходными, система программирования имеетпрограмму, осуществляющую автоматический перевод (трансляцию) текстов программыс входного языка на язык машины. Обычно система программирования содержитописания применяемых языков программирования, программы-трансляторы с этихязыков, а также развитую библиотеку стандартных подпрограмм. Важно различатьязык программирования и реализацию языка. Язык программирования – это набор правил, определяющихсистему записей, составляющих программу, синтаксис и семантику используемыхграмматических конструкций. Реализация языка – это системная программа,которая переводит (преобразует) записи на языке высокого уровня впоследовательность машинных команд. 1.2 Классификациясистем программирования По набору входных языковразличают системы программирования одно- и многоязыковые. Отличительная чертамногоязыковых систем состоит в том, что отдельные части программы можносоставлять на разных языках и с помощью специальных обрабатывающих программобъединять их в готовую для исполнения на ЭВМ программу. По структуре, уровнюформализации входного языка и целевому назначению различают системыпрограммирования машинно-ориентированные и машинно-независимые. Машинно-ориентированные системы программирования имеютвходной язык, наборы операторов и изобразительные средства которых существеннозависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.).Машинно-ориентированные системы позволяют использовать все возможности иособенности машинно-зависимых языков: · высокое качествосоздаваемых программ; · возможностьиспользования конкретных аппаратных ресурсов; · предсказуемостьобъектного кода и заказов памяти; · для составленияэффективных программ необходимо знать систему команд и особенностифункционирования данной ЭВМ; · трудоемкостьпроцесса составления программ (особенно на машинных языках и ЯСК), плохозащищенного от появления ошибок; · низкая скоростьпрограммирования; · невозможностьнепосредственного использования программ, составленных на этих языках, на ЭВМдругих типов. Машинно-независимые системы программирования – этосредство описания алгоритмов решения задач и информации, подлежащей обработке.Они удобны в использовании для широкого круга пользователей и не требуют от нихзнания особенностей организации функционирования ЭВМ. В таких системахпрограммы, составляемые языках, имеющих название высокоуровневых языковпрограммирования, представляют собой последовательности операторов,структурированные согласно правилам рассматривания языка (задачи, сегменты,блоки и т.д.). Операторы языка описывают действия, которые должна выполнять системапосле трансляции программы на машинном языке. Таким образом, командныепоследовательности (процедуры, подпрограммы), часто используемые в машинныхпрограммах, представлены в высокоуровневых языках отдельными операторами.Программист получил возможность не расписывать в деталях вычислительный процессна уровне машинных команд, а сосредоточиться на основных особенностяхалгоритма. 1.3 Средства созданияпрограмм В самом общем случае длясоздания программы на выбранном языке программирования нужно иметь следующиекомпоненты. 1. Текстовый редактор.Так как текст программы записывается с помощью ключевых слов, обычнопроисходящих от слов английского языка, и набора стандартных символов длязаписи всевозможных операций, то формировать этот текст можно в любомредакторе, получая в итоге текстовый файл с исходным текстом программы. Лучшеиспользовать специализированные редакторы, которые ориентированы на конкретныйязык программирования и позволяют в процессе ввода текста выделять ключевыеслова и идентификаторы разными цветами и шрифтами. Подобные редакторы созданыдля всех популярных языков и дополнительно могут автоматически проверятьправильность синтаксиса программы непосредственно во время ее ввода. 2. Исходный текст спомощью программы-компилятора переводится в машинный код. Исходный текстпрограммы состоит, как правило, из нескольких модулей (файлов с исходнымитекстами). Каждый модуль компилируется в отдельный файл с объектным кодом,которые затем требуется объединить в одно целое. Кроме того, системы программирования,как правило, включают в себя библиотеки стандартных подпрограмм (имеютрасширение .LIB). Стандартные подпрограммы имеютединую форму обращения, что создает возможности автоматического включения такихподпрограмм в вызывающую программу и настройки их параметров. 3. Объектный код модулейи подключенные к нему стандартные функции обрабатывает специальная программа – редакторсвязей. Данная программа объединяет объектные коды с учетом требованийоперационной системы и формирует на выходе работоспособное приложение – исполнимыйкод для конкретной платформы. Исполнимый код это законченная программа,которую можно запустить на любом компьютер, где установлена операционнаясистема, для которой эта программа создавалась. Как правило, итоговый файл имеетрасширение .exe или .com. 4. В современных системахпрограммирования имеется еще один компонент – отладчик, которыйпозволяет анализировать работу программы во время ее исполнения. С его помощьюможно последовательно выполнять отдельные операторы исходного текстапоследовательно, наблюдая при этом, как меняются значения различных переменных. 5. В последние нескольколет в программировании (особенно для операционной среды Windows) наметился так называемый визуальныйподход. Этот процесс автоматизирован в средах быстрого проектирования.При этом используются готовые визуальные компоненты, свойства и поведениекоторых настраиваются с помощью специальных редакторов. Таким образом,происходит переход от языков программирования системного уровня к языкам сценариев. 2. Современные системы программирования 2.1 Microsoft VisualBasic
Microsoft Visual Basic — средство разработки программногообеспечения, разрабатываемое корпорацией Microsoft и включающее языкпрограммирования и среду разработки. Язык Visual Basic унаследовал дух, стиль иотчасти синтаксис своего предка — языка Бейсик, у которого есть немалодиалектов. В то же время Visual Basic сочетает в себе процедуры и элементыобъектно-ориентированных и компонентно-ориентированных языков программирования.Среда разработки VB включает инструменты для визуального конструированияпользовательского интерфейса. Visual Basic считаетсяхорошим средством быстрой разработки прототипов программы, для разработкиприложений баз данных и вообще для компонентного способа создания программ,работающих под управлением операционных систем семейства Microsoft Windows. Первое признаниесерьёзными разработчиками Visual Basic получил после выхода версии 3 — VB3.Окончательное признание как полноценного средства программирования для Windows —при выходе версии 5 — VB5. Версию VB6, входящую в состав Microsoft VisualStudio 6.0, стала по-настоящему зрелым и функционально богатым продуктом. Послеэтого разработчики из Microsoft существенно изменили направление развитияданной технологии. Visual Basic .NET непозволяет программировать по-старому, ибо, по сути, является совершенно другимязыком, таким же, как и любой другой язык программирования для платформы .NET.Индивидуальность языка, так же как и его преимущества (простота, скромностьсоздания программ, лёгкость использования готовых компонент) при использованиив среде .NET не имеют такого значения, как раньше — всё сосредоточено навозможностях самой системы .NET, на её библиотеке классов. Поэтому сегоднянужно говорить о классическом Visual Basic, его диалектах Visual Basic forApplications (VBA) и Visual Basic Scripting Edition (VBScript) и о языке дляплатформы (4, 467) .NET — Visual Basic .NET. Основныеразновидности Visual Basic: 1)Классический Visual Basic (версии 5-6).Этот язык очень сильно привязан ксвоей среде разработки и к операционной системе Windows, являясь исключительноинструментом написания Windows-приложений. Привязка к среде заключается в том,что существует большое количество средств, предназначенных для помощи иудобства программирования: встроенный отладчик, просмотр переменных и структурданных на лету, окно отладки, всплывающая подсказка при наборе текста программы(Intellisense). Все эти преимущества делают бесполезным и даже невозможнымиспользование Visual Basic вне среды разработки, например в обычном текстовомредакторе. 2)Visual Basic for Applications (VBA) Это средство программирования,практически ничем не отличающееся от классического Visual Basic, котороепредназначено для написания макросов и других прикладных программ дляконкретных приложений. Наибольшую популярность получил благодаря своемуиспользованию в пакете Microsoft Office. Широкое распространение Visual Basicfor Applications в сочетании с изначально недостаточным вниманием к вопросам безопасностипривело к широкому распространению макровирусов. 3)Visual Basic Scripting Edition (VBScript).Скриптовый язык, являющийся несколькоусечённой версией обычного Visual Basic. Используется в основном дляавтоматизации администрирования систем Windows, а также для создания страницASP и сценариев для Internet Explorer. ДостоинстваVB: · Высокая скоростьсоздания приложений с графическим интерфейсом для MS Windows. · Простойсинтаксис, позволяющий очень быстро освоить язык. · Возможность каккомпиляции в машинный код, так и интерпретации во время отладки. Недостатки: · Поддержкаоперационных систем только семейства Windows и Mac OS X (Исключение — VB1 forDOS). · Отсутствиемеханизма наследования объектов. Существующие в языке наследование, позволяетнаследовать только интерфейсы объектов, а не их самих. Таким образом, вунаследованном классе должны быть явно переписаны все функции базового класса.Также в унаследованном классе невозможно добавление каких-либо методов,присущих только данному классу, то есть если абстрактный базовый класс содержиттолько два метода, то и производный класс содержит только два метода, не болееи не менее того. · Требуетустановленных DLL для работы программы. 2.2 Turbo PascalTurbo Pascal — Интегрированная среда разработкипрограммного обеспечения для платформ DOS и Windows 3.x и язык программированияв этой среде, диалект языка Паскаль от фирмы Borland. Товарный знак BorlandPascal был зарезервирован для дорогих вариантов поставки (с бо́льшимколичеством библиотек и исходным кодом стандартной библиотеки), оригинальнаядешёвая и широко известная версия продавалась как Turbo Pascal. НазваниеBorland Pascal также используется в более широком смысле — как неофициальноеназвание версии языка Паскаль от фирмы Borland.(1, 4) Turbo Pascal — это средаразработки для языка программирования Паскаль. Используемый в Turbo Pascalдиалект базировался на более раннем UCSD Pascal, получившем распространение, впервую очередь, на компьютерах серии Apple II. Компилирующая компонента TurboPascal была основана на компиляторе Blue Label Pascal, первоначально созданномв 1981 году Андерсом Хейлсбергом для операционной системы NasSysмикрокомпьютера Nascom. Позднее он был переписан как Compass Pascal дляоперационной системы CP/M, затем как Turbo Pascal для DOS и CP/M. Одна изверсий Turbo Pascal была доступна под Apple Macintosh примерно с 1986 года, ноеё разработка прекратилась примерно в 1992 году (5, 134). В 1982 году Филипп Канприобрёл компилятор у Андерса Хейлсберга и перебрался из Парижа в Калифорнию,где основал компанию Borland. Когда в 1983 годупоявилась первая версия Turbo Pascal, такой тип среды разработки былотносительно новым. Во время дебюта на американском рынке, Turbo Pascalпродавался по цене в 49,99 долл. Помимо привлекательной цены, встроенныйкомпилятор Паскаля также был очень высокого качества. Приставка «Turbo»намекала как на скорость компиляции, так и на скорость производимого имисполняемого кода. Turbo Pascal создавал машинный код за один проход, без шагакомпоновки. После рекламной кампанииза первый месяц поступило заказов на 150 тыс. долларов — так много, что местныебанки отказывались оплачивать чеки и кредитные карточки, подозреваямошенничество. За первые два года былопродано не менее 300 тысяч копий компилятора, что превзошло объём продаж всехпрочих языков для микрокомпьютеров. Для того времени это былапотрясающая среда разработки. Она была проста и интуитивно понятна, с хорошоорганизованным меню. Ранние версии использовали раскладку горячих клавиш WordStar.В более поздних версиях появилась возможность быстро получить определениеключевого слова языка, просто поставив курсор на ключевое слово и нажав клавишусправки. Справочные статьи часто включали примеры кода, использующего данноеключевое слово. Это позволяло неопытным программистам изучать Паскаль даже безпомощи книг, используя лишь среду разработки. В поставку входило большоеколичество исходных текстов демонстрационных и прикладных программ. В их числебыли даже шахматы. Среда позволяла легко встраиватьв код на Паскале вставки на языке ассемблера. Пользователь имел возможностьпроходить программу шаг за шагом; при переходе на ассемблерный блок это такжеработало. В любой момент пользователь мог добавить переменную или регистр вудобно расположенное окно для наблюдения за ними. При построчной отладкепрограмм, использующих графические режимы IBM PC, происходило корректноепереключение между графическим режимом программы и текстовым режимом средыразработки. Помимо всего этого,имелось средство профилирования. Книги, включённые в поставку Borland Pascal,давали детальное описание языка ассемблера Intel вплоть до указания количестватактовых циклов, необходимых для выполнения каждой инструкции. В общем и целом,система давала превосходные возможности для оптимизации кода; пользователю нетребовалось пользоваться чем-либо кроме среды разработки. Всё было сделано такидеально, что даже школьник мог этим пользоваться. Эти качества позволиливерсии Паскаля от Borland стать стандартом языка Паскаль де-факто. С начала 1990-х TP/BPиспользуется в университетах для изучения фундаментальных концепцийпрограммирования. Вероятно, разработкаMicrosoft Pascal была прекращена из-за конкуренции с высоким качеством инебольшой ценой Turbo Pascal. Другая версия гласит, что Borland заключилсоглашение с Microsoft на прекращение разработки Turbo BASIC (среды разработкидля BASIC, ответвившейся от Turbo Pascal), если Microsoft прекратит разработкуMicrosoft Pascal. Некоторое время Microsoft выпускал QuickPascal, который былпочти 100%-совместим с Turbo Pascal. В течение нескольких летBorland улучшал не только среду разработки, но и язык. В версии 5.5 в него быливведены передовые возможности объектно-ориентированного программирования.Последней выпущенной версией была версия 7. Borland Pascal 7 включал в себясреду разработки и компиляторы для создания программ под DOS, под DOS срасширителем DOS и Windows 3.x, в то время как Turbo Pascal 7 мог создаватьтолько обычные DOS-программы. С 1995 года в Borlandпрекратили разработку Turbo Pascal и предложили в качестве замены средуразработки Delphi. Новая версия языка подверглась изменению (в особенностиООП), и языку вернулось изначальное название, закреплённое разработчиками AppleObject Pascal. Старая объектная модель Turbo Pascal и соответствующий синтаксисподдерживался как устаревший, использование обеих объектных моделейодновременно в одной и той же программе не поддерживается. ДостоинстваTurbo Pascal: Удобная среда разработки,включающая функциональный отладчик, доступный в любой момент. · Контекстнаясправочная система, по которой можно изучать язык без обращения к стороннимисточникам. · Высокая скоростькомпиляции, высокая скорость выполнения откомпилированных программ. · Встроеннаявозможность использовать вставки на языке ассемблера. Недостатки: · Компиляторрассчитан на реальный режим DOS, применение которого сходит на нет. Однако впоследних версиях компилятора и среды введена поддержка защищённого режимавместе с соответствующим отладчиком (TD). · В модуле CRT имеетсяошибка (некорректный подсчёт количества циклов для функции delay, нерассчитанный на быстрые процессоры, процессоры с переменной частотой имногозадачные среды), из-за которой при запуске программы на компьютерах стактовой частотой более 200 MHz сразу происходило аварийное завершение ссообщением «Runtime error 200 at…». Существуют разные варианты исправлениямодуля CRT. В варианте Клауса Хартнегга ошибка 200 не возникает, нодлительность Delay на быстрых компьютерах меньше желаемой, и эта проблема по незнаниюиногда тоже считается недостатком Turbo Pascal. 2.3 C++ Builder C++ Builder — программный продукт, инструментбыстрой разработки приложений (RAD), интегрированная среда программирования(IDE), система, используемая программистами для разработки программногообеспечения на языке C++. C++ Builder объединяет всебе комплекс объектных библиотек (STL, VCL, CLX, MFC и др.), компилятор,отладчик, редактор кода и многие другие компоненты. Цикл разработки аналогиченDelphi. Большинство компонентов, разработанных в Delphi, можно использовать и вC++ Builder без модификации, но, к сожалению, обратное утверждение не верно. C++ Builder содержитинструменты, которые при помощи drag-and-drop действительно делают разработкувизуальной, упрощает программирование благодаря встроенному WYSIWYG — редакторуинтерфейса и пр. C++ Builder первоначальносоздавалась только для платформы Microsoft Windows. Поздние версии, содержащиеКроссплатформенную компонентную библиотеку Borland, основанную на Qt,поддерживают и Windows и Linux. (8, 991) В 2003 Borland выпустила C++BuilderX (CBX), написанный при помощи той же инфраструктуры, что иJBuilder, который при этом был мало похож на C++ Builder или Delphi. Этотпродукт предназначался для разработки больших программ для крупных предприятий,но коммерческого успеха не достиг. В конце 2004 года Borland объявила, чтопродолжит развитие классического C++ Builder и объединит его со средойразработки Delphi, прекратив, таким образом, разработку C++ BuilderX. Спустя примерно год послеэтого объявления, Borland выпустила Borland Developer Studio 2006,который включал в себя Borland C++ Builder 2006, предлагавший улучшенноеуправление конфигурацией и отладкой. Borland Developer Studio 2006 —единственный полноценный комплект, содержащий Delphi, C++Builder и C#Builder. В 2007 CodeGear выпустилаC++ Builder 2007, в котором реализовала полную поддержку API MicrosoftWindows Vista, увеличила полноту соответствия стандарту ANSI C++, увеличиласкорость компиляции и сборки до 500 %, включила поддержку MSBuild, архитектурбаз данных DBX4 и «VCL для Web», поддеживающий AJAX. Поддержка API MicrosoftWindows Vista включила в себя приложения, изначально оформленные в стиле Vista,и естественную поддержку VCL для Aero и Vista Desktop. CodeGear RAD Studio2007 содержит C++ Builder 2007 и Delphi. Также в 2007CodeGear «воскресила» марку «Turbo» и выпустила две «Turbo» версии C++ Builder:Turbo C++ Professional и Turbo C++ Explorer (бесплатный), основанных на BorlandC++ Builder 2006. В конце 2008 года компанияCodeGear выпустила новую версию RAD Studio, в которую вошли Delphi 2009 и С++Builder 2009. Следующая версия,CodeGear C++Builder (кодовое имя «Commodore»), будет обладать поддержкой x86-64и возможностью создавать нативный x86-64 код. Таблица 2.3 – Краткиесведения о версиях продукта Год Версия 1997 1 1998 3 1999 4 2000 5 2002 6 2003 X 2005 2006 2007 2007 Сентябрь 2008 2009 25 августа 2009 2010/>2.4 Symantec Café Язык Java являетсяпринципиально новым языком программирования, созданным компанией SunMicrosystems для создания многоплатформных приложений (applications и applets)для страниц «всемирной паутины» сети Internet. Язык Java может бытьназван упрощенным вариантом C++, без усложненных конструкций и дополнительныхвозможностей. Java предлагает широкие возможности объектно-ориентированногопрограммирования и повторного использования кода. Symantec Cafe являетсяпервой интегрированной средой визуальной разработки для создания приложений(applications и applets) для страниц «всемирной паутины» сетиInternet (3, 265). Symantec Cafe интегрируеткомплект разработчика Java Development Kit компании Sun Microsystems впопулярную многооконную среду визуальной разработки, созданную компаниейSymantec для создания приложений для Windows 95 и Windows NT. Symantec Cafeпредлагает полнофункциональную систему управления проектами, а также мощныеинструменты редактирования и просмотра кода, что обеспечивает резкое увеличениеэффективности разработки приложений на языке Java для сети Internet. Приложения,созданные с помощью Symantec Cafe могут затем встраиваться в документы HTML ивыполняться на различных платформах при использовании Java-соместимых программпросмотра, таких как Netscape Navigator. Symantec Cafe позволяетразрабатывать приложения на языке Java, которые могут затем встраиваться встраницы всемирной паутины для обеспечения более высокой функциональности, чемсуществующие HTML-страницы. Java-компилятор генерирует байткод, который можетзатем встраиваться в HTML-определения страниц всемирной паутины. Наиболеепопулярные программы просмотра в сети Internet, такие Netscape Navigator,включают встроенный интерпретатор Java-байткода, позволяющий выполнятьJava-приложения на компьютере пользователя во время просмотра страницыInternet, содержащей это Java-приложение. Это дает возможностьвключать в Internet страницу программное обеспечение, что предлагатьпользователю гораздо более богатые возможности, по сравнению с просто текстомили статической графикой. Например, существует возможность включить новый типданных и назначить соответствующий ей Java-байткод, предназначенный специальнодля обработки этого типа информации на клиентской машине. Кроме того, в этомслучае Java-приложение запускается на клиентской машине, что позволяет снижатьзагрузку web-сервера. В результате достигается более высокая функциональность ипроизводительность при просмотре сетей Internet. Cafe позволяет разрабатыватьлюбые виды многоплатформенных приложений (applets and applications). Сокращенноеприложение (applets) представляет собой ограниченная версияполнофункционального Java-приложения (applications), предназначенного дляработы с web-документами. Например, сокращенное приложение не имеет доступа кфайлам на клиентском компьютере. Такой подход предназначен, с одной стороны,для обеспечения целостности созданных Java-приложений при загрузке их изInternet, а с другой — для того, чтобы избежать случайной потери информации наклиентской машине вследствие работы загруженного из Internet приложения.Полнофункциональные Java-приложения более похожи на стандартные программы, заисключением того, что они многоплатформенны и могут запускаться под Windows,Macintosh и Unix. Основные возможности Symantec Café: 1. Cafe выполняет «на лету»грамматический разбор Java-код и создает репозиторий информации оJava-приложениях и Java-библиотеках классов. Это позволяет пользователюнаглядно иерархию классов Java-приложения, лучше понять стандартные классы Javaи классы Java-приложений. 2. Class Editor позволяет просматриватьисходный текст на языке Java, а также просматривать/редактирования методы,данные и классы. Class Editor позволяет разработчику работать собъектно-ориентированными частями Java-программы в противоположность работы сисходными текстами. 3. ProjectExpress,«Wizard»-подобный инструмент, позволяющий быстро создавать проектывокруг набора Java-программ и использовать преимущества Cafe с минимальнымизатратами. 4. AppExpress,«Wizard»-подобный инструмент, помогающий начать работу разработчикам,не знакомым с языком Java. AppExpress автоматически создает полнофункциональныеJava- приложения, которые могут быть доработаны позже с помощью дополнительныхвозможностей Cafe. 5. В Cafe входит профессиональныйредактор для разработчиков на языке Java, который поддерживает цветовоевыделение синтаксических конструкций и ключевых символов, а также включаетинтегрированный макро-язык для расширения функциональных возможностейредактирования. Кроме того, редактор способен быстро переходить в любую частьописания в Java-приложении или Java-библиотек классов, резко повышаяпроизводительность труда разработчиков. 6. Cafe включает полностьюинтегрированный комплект разработчика Java Development Kit (JDK) компании Sun,с графической поддержкой опций и параметров Java-компилятора, интерпретатора иотладчика. Кроме того, Cafe поддерживает управление вложенными проектами, атакже возможность построения Java-приложений, как сокращенных, так иполнофункциональных, непосредственно из среды разработчика. Cafe включает мощныйAppExpress, простой и удобный в использовании генератор приложений,автоматически создающий полнофункциональные Java-приложения, которые можномодифицировать и развивать. Для создания Javaприложения необходимо запустить AppExpress из меню «Tools», указатьтип приложения в поле «Java Applet», определить каталог для созданияприложения и нажать кнопку «Finish». Это все, что необходимо сделать.Проект приложения на языке Java автоматически загрузится средой Cafe. Чтобы построить изапустить Java-приложение, нужно выбрать команду «Run» из меню«Project». Cafe попросит подтвердить необходимость построенияпроекта. Выберите «Yes» и Java приложение будет построено. Созданноеприложение доступно для расширения и модификации. Cafe имеет удобный«Wizard»-подобный инструмент ProjectExpress, позволяющий легкосоздавать новые проекты. Cafe позволяет просто и быстро импортировать ужесуществующий Java-код или проект в Cafe с минимальными затратами. ИспользуяProjectExpress, можно определить тип проекта Java или С/C++, затем добавитьуказание на файлы с исходным текстом и проект автоматически будет создан изагружен в Cafe. Cafe поддерживаетвложенную организацию проектов, что значительно сокращает затраты времени наорганизацию и управление созданием приложений для Internet. Cafe ProjectManager может управлять проектами с различными опциями и вершинами безнеобходимости загрузки или выгрузки того или иного проекта. Когда открывается илисоздается Java проект в Cafe, включается уникальный модуль грамматическогоразбора текста в фоновом режиме, автоматически анализирующий исходный код наязыке Java и создающий репозиторий информации о Java приложениях и любыхбиблиотеках классов Java, используемых в приложениях. Этот репозиторийиспользуется для просмотра и управления всеми классами Java в приложении. Входящая в Cafe программапросмотра классов Class Editor позволяет быстро проектировать и перемещаться поисходному коду Java-приложения за счет мощных встроенных инструментовнавигации. Class Editor позволяет отказаться от работы с индивидуальнымииндивидуальными классами Java и работать напрямую с определениями и членамиклассов Java. Class Editor позволяетбыстро перемещаться к любому участку кода Java приложения. Достаточно ввестиили указать нужное имя класса и/или члена, и в соответствующем окне появитсяего исходный код. Этот же метод действует при определении принадлежности тогоили иного класса или метода. Class Editor позволяет также быстро создаватьновые классы и добавлять Новые члены классов. Cafe предлагаетразработчикам профессиональный редактор, поддерживающий выделение цветомсинтаксических конструкций и ключевых слов. Кроме того, редактор включаетмакроязык для расширения возможностей редактирования и может перемещаться клюбому участку описания Java-кода в Java-приложении или Java-классах. 3. Практическая часть 1. Постановка задачи Разработать программу сдиалоговым окном для вычисления предельной ошибки выборки в случаемеханического отбора: />/>, N – численность генеральнойсовокупности; n – численность выборки; w – выборочная доля; t – коэффициент доверия, для которогозадать значения t =3 при p = 0,997, t = 2 при p =0,954, t = 1 при p = 0,683. В программе использоватьпроверку корректности исходных данных. 2. Разработка проекта 1) на Листе 1 в диапазон ячеек А1: Е1вводим заголовки таблицы исходных данных и полученного результата. 2) Входим в Режим конструктора (панельинструментов Элементы управления). Создаем элемент управления Кнопка: Ввод. 3) Двойным нажатием на кнопку Ввод,входим в редактор VB. Создаемпроцедуру обработки нажатия на кнопку Ввод: Private SubCommandButton1_Click() UserForm1.Show End Sub 4) Выберем команду Insert| UserForm. В проекте появится новаяформа. Добавляем на форму триобъекта Label (Метка), три объекта TextBox (Текстовое поле) и группу из трехобъектов OptionButton (Переключатель) для ввода исходныхданных. Добавляем на форму объектCommandButton (Кнопка) для подсчета предельнойошибки выборки в случае механического отбора. 5) Обрабатываем нажатие кнопки CommandButton1: Private SubCommandButton1_Click() IfIsNumeric(TextBox1) And IsNumeric(TextBox2) And IsNumeric(TextBox3) Then IfVal(TextBox2) <= Val(TextBox1) Then If(Val(TextBox3) >= 0) And (Val(TextBox3) <= 1) Then j = 1 While Cells(j,4) <> "" j = j + 1 Wend Cells(j,1).Value = TextBox1 Cells(j, 2).Value= TextBox2 Cells(j,3).Value = TextBox3 IfOptionButton1.Value Then t = 1 IfOptionButton2.Value Then t = 2 IfOptionButton3.Value Then t = 3 Cells(j,4).Value = Str(t) ПОВ = t * Sqr(TextBox3 * (1 — TextBox3) / TextBox2) MsgBox «Предельная ошибкавыборки:» + Str(ПОВ), vbInformation + vbOKOnly, «Результат» Cells(j,5).Value = Str(ПОВ) TextBox1 ="" TextBox2 ="" TextBox3 ="" OptionButton1.Value= True UserForm1.Hide Else MsgBox «Выборочная доля вышла за допустимый диапазон», vbCritical + vbOKOnly, «Внимание» End If Else MsgBox «Численностьвыборки не должна превышать численность генеральной совокупности»,vbCritical + vbOKOnly, «Внимание» End If Else MsgBox «Ошибка ввода»,vbCritical + vbOKOnly, UserForm1.Caption End If End Sub Введенные данные и полученныйрезультат помещаются в Excel-таблицу. Заключение Сегодня имеется немалосистем программирования, выпускаемых различными фирмами и ориентированных наразличные модели ПК и операционные системы. Наиболее популярны следующиевизуальные среды быстрого проектирования: 1) Microsoft Visual Basic; 2) TurboPascal 3) C++ Builder 4) SymantecCafé. Из универсальных языковпрограммирования сегодня наиболее популярны следующие: Бейсик (Basic) – для освоения требует начальнойподготовки (общеобразовательные школы) Паскаль (Pascal) – требует специальной подготовки(школы с углубленным изучением предмета и общетехнические вузы) Си++ (C++), Ява (Java) – требуют профессиональной подготовки(специализированные средние и высшие учебные заведения) Именно эти системы и языкипрограммирования в дальнейшем будут определять развитие информатики. Список использованныхисточников 1. Зуев Е.А. прграммирование на языкеTurbo Pascal 6.0, 7.0. – М.: Веста, Радио и связь, 1993, – 376 с. 2. Информатика: Базовый курс/ СимоновичС.В. и др. – СПб.: Питер, 2001. – 640 с. 3. Моначов В. Язык программирования Java и среда NetBeans. – 2-е изд. – СПб.: БХВ-Петербург,2009. – 720 с. 4. Моргун А.Н. Справочник по TurboPascal для студентов. – М.: Диалектика, 2006. – 608 с. 5. Сайлер Б., Споттс Д. Использование Visual Basic 6. Классическое издание. – М.: Вильямс, 2007. – 832с. 6. Сафронов И. Visual Basic в задачах ипримерах. – СПб.: «БХВ-Петербург», 2008. – 400 с. 7. Стефенс Д. Р. C++. Сборник рецептов. —КУДИЦ-ПРЕСС, 2007. — 624 с. 8. Страуструп Б. Язык программирования С++= The C++ Programming Language / Пер. с англ. — 3-е изд. — СПб.; М.: Невскийдиалект — Бином, 1999. — 991 с. 9. Угринович Н. Информатика иинформационные технологии. Учебник для 10 – 11 классов. 4-е изд. – М.: Бином.Лаборатория знаний, 2007. – 511с. 10. Фаронов В.В. Turbo Pascal. Наиболее полное руководство. – СПб.:Питер, 2007. – 763 с. 11. Хорстманн К.С.,Корнелл Г. Java 2.Библиотека профессионала, том 1. Основы. – М.: Вильямс, 2008. – 816 с. 12. Шилдт Г. Полныйсправочник по С++. – М.: «Вильямс», 2006. – 800 с. www.ronl.ru Реферат - Языки программирования - Информатика, программированиеОглавление 1. Введение 2. Современные языкипрограммирования 2.1 Паскаль 2.2 Ассемблер 2.3 Си 2.4 Бейсик 2.5 Лого 2.6 Форт 2.7 Пролог 2.8 Рефал 2.9 Лекс 3 Понятие, назначение исоставные элементы систем программирования 3.1Машинно-ориентированные системы программирования 3.1.1 Машинный язык 3.1.2 Системысимволического кодирования 3.1.3 Автокоды 3.1.4 Макрос 3.2 Машинно-независимыесистемы программирования 3.2.1Процедурно-ориентированные системы 3.2.2Проблемно-ориентированные системы 3.2.3 Диалоговые языки 3.2.4 Непроцедурныеязыки 4 Выводы 5 Практическая часть 6 Список литературы 1. Введение Связьмежду языком, на котором мы думаем, программируем, и задачами и решениями,которые мы можем представлять в своем воображении, очень близка. Языкпредоставляет программисту набор концептуальных инструментов, если они неотвечают задаче, то их просто игнорируют. Хорошее проектирование и отсутствиеошибок не может гарантироваться чисто за счет языковых средств. Сегодняпрактически все программы создаются с помощью языков программирования. Неотъемлемаячасть современных ЭВМ – системы программного обеспечения, являющиеся логическимпродолжением логических средств ЭВМ, расширяющим возможности аппаратуры и сферуих использования. Основное назначение программного обеспечения – повышениеэффективности труда пользователя, а также увеличение пропускной способности ЭВМпосредством сокращения времени и затрат на подготовку и выполнение программ. Всвоей работе мне хотелось бы разобрать несколько основных современных языков,таких как Паскаль, Ассемблер, С++, Бейсик, Лого, Форт, Пролог, Рефал и Лекс, атакже системы программирования и их составляющие (машинный язык, системысимволического кодирования, автокоды, макросы, процедурно-ориентированныесистемы, проблемно-ориентированные системы, диалоговые языки, непроцедурныеязыки). Еслипроследить историю используемых сегодня языков программирования, таких как Си иПаскаль (а равно и менее популярных Бэйсик, Фортран или Ада), то окажется, чтовсе они были созданы на рубеже 60-х и 70-х годов. Иными словами, возрастсовременных языков программирования (за исключением Явы, о которой разговорособый), перевалил за третий десяток, что для компьютерной индустрии являетсясроком экстремальным. Современные языки программирования старше Интернета,Windows и персонального компьютера минимум на десятилетие. При этом новые языкине переставали регулярно появляться, однако ни один из них не задержался впрактике программирования, хотя приносимые ими новые идеи дополняли ужеизвестные языки (как это произошло с объектно-ориентированнымпрограммированием). Другойважной особенностью языкотворчества последних десятилетий можно считатьпрекращение попыток создания «универсального» языка программирования,призванного объединить в себе все последние достижения в области разработкиязыков (из попыток 60-х _ 70-х годов можно вспомнить Алгол, PL/1 или Аду).Крупные «языковые» проекты безвозвратно ушли в прошлое вместе спорожденными ими языками. Наконец,появление персонального компьютера и ОС с графическим интерфейсом (прежде всегоMacOS и Windows) переместило внимание разработчиков программного обеспечения изсферы языков программирования в другие области средств разработки ПО, такие,как визуальное или объектно-ориентированное программирование, сетевые протоколыили модели баз данных. Программист сегодня использует в качестве инструмента нестолько язык, сколько конкретную систему программирования (например, Delphi), акакой язык является для нее базовым, не так уж важно. Итак,интерес к языкам программирования снизился, а круг используемых языковстабилизировался. В некотором смысле можно считать, что в области языковпрограммирования «все сказано», и развитие средств разработки ПОпойдет дальше другими путями. Наступил удачный момент для анализа современныхязыков программирования и выяснения достигнутых практических результатов. 2. Современные языкипрограммирования Первыенесколько поколений ЭВМ строились на классических принципах, сформулированныхамериканским математиком Джоном фон Нейманом в 1946 г., когда начались разработки цифровых ЭВМ с программным управлением. Одним из основныхпринципов Д. фон Неймана является принцип хранимой программы. Под программойвычислительной машины понимается описание алгоритма решения задачи, заданное наязыке вычислительной машины. Таким образом, языки программирования – этоформальные языки общения человека с ЭВМ, предназначенные для описаниясовокупности инструкций, выполнение которых обеспечивает правильное решениетребуемой задачи, т.е. для описания подлежащих обработке данных (информации) иалгоритмов (программ). Основная роль языков программирования заключается впланировании действий по обработке информации. Любой язык программированияоснован на системе понятий, на основе которой человек может выражать свои соображения. Теоретическуюоснову языков программирования составляют алгоритмические языки. В настоящеевремя для ЭВМ разработано значительное количество языков программирования. Ониотличаются друг от друга различными свойствами, а значит, и областью применения.Примерная классификация языков программирования приведена на рисунке 1. /> Рис.1. Классификация языковпрограммирования 2.1Паскаль[1] В1968 году Никлас Вирт (Niklaus Wirth) написал первый компилятор языка Pascal(Паскаль). Этот язык получил название в честь выдающегося французскогоматематика Блеза Паскаля (Blaise Pascal). Язык Pascal — удачный языкобщего применения, подходящий для программирования как научных задач, так изадач, связанных с коммерческой деятельностью. Средства ввода/вывода этогоязыка несколько слабее, чем у таких коммерческих языков, как COBOL, поэтому онникогда не претендовал на его замещение. Тем не менее после первогоопубликования Pascal был довольно основательным языком, который успешносправлялся со своей работой. Популярностьязыка Pascal резко подскочила в 1970-х. Самое большое преимущество этогоязыка — поддержка концепции структурного программирования, позволяющейделать программы более удобными для изменения. Идеология структурногопрограммирования интегрирована в язык, поэтому программы на языкеPascal проще в обслуживании, чем программы, написанные на других языкахтого времени. Втечение 1970-х годов Pascal был «единственным языком программирования, которыйвсех устраивал». Компания IBM с помощью языка PL/I делала попытку создатьчто-то подобное. Так же как и PL/I, Pascal не достиг наивысшей цели.Популярность языка Pascal упала так же быстро, как и выросла. В 1970-хнаблюдался огромный рост применения языка Pascal, а в 1980-х — резкий спадинтереса к нему. Несмотряна потерю занимаемого положения, Pascal открыл для других языков дорогу кподдержке структурных концепций, обслуживаемости программ и бесплатномуиспользованию программ. 2.2Ассемблер[2] ЯзыкАссемблера — это символическое представление машинного языка. Он облегчаетпроцесс программирования по сравнению с программированием в машинных кодах.Некоторые задачи, например, обмен с нестандартными устройствами обработкиданных сложных структур невозможно решить с помощью языков программирования высокогоуровня. Это под силу ассемблеру. В принципе, язык Ассемблер является машиннымязыком. И программист, реализующий какую-либо задачу на язык высокого уровня, спомощью Ассемблера может определить осмысленно ли решение данной задачи, с точкизрения использования ЭВМ. Ассемблер имеет одну особенность, которая отпугиваетмногих начинающих языков программистов,- ассемблер является машинно-зависимымязыком. Это означает, что пишущий на ассемблере работает непосредственно сресурсами компьютера, что требует хорошего знания его архитектуры, логикиработы операционной системы, а также большой аккуратности при написаниипрограммы. Несмотряна то, что ассемблер является машинно-ориентированным языком, то есть языкомнизкого уровня, программист может применять его для работы, как на высоком, таки на среднем уровне. Низкий уровень программирования на ассемблереподразумевает прямое обращение к каналам ввода-вывода устройств, называемыхпортами ввода-вывода, и прямой доступ в оперативную память. Turbo Assembler, помимополной поддержки транслятора фирмы Microsoft имеет дополнительные возможности, объединённые в режиме,названном разработчиками Ideal.Использование этого режима даёт возможность начинающему программисту применятьболее наглядный и простой стиль разработки программ. Более опытныепрограммисты, пишущие на ассемблере, могут использовать такие возможностирежима Ideal, как вложенные структуры, объединения. Важнойособенностью режима Ideal являетсяприменение проверки типов данных, подобно языкам высокого уровня, что позволяетвыявить многие ошибки ещё на этапе трансляции. Ассемблерпредоставляет программисту полую свободу действий при разработке программы, чтоявляется и его достоинством, и недостатком, так как требует от разработчиказнания системы команд данного компьютера и его операционной системы. Крометого, несмотря на минимальный размер выполняемого файла при максимальнойскорости работы, время, необходимое для создания программы, резко возрастает сувеличением объёма разрабатываемого проекта. Поэтому ассемблер был и остаётсяязыком программирования для профессионалов. 2.3Си++[3] Наследник Cязык C++ быстро завоевал поддержку, являясь обновленной версией языка C. C++был разработан шведским программистом по имени Бьярн Страуструп (Bjarne Stroustrup)в начале 1980-х. C++ имеет на вооружении несколько дополнительных команд и операторов,но основное отличие заключается в подходе к программированию. Главнаяпричина, по которой и сейчас C++ остается популярным, — он поддерживает объектно-ориентированноепрограммирование (ООП). ООП — это иной способ написания программ, помогающий программиступисать программы быстрее и с наименьшим числом ошибок. ООП также позволяет повыситьскорость обслуживания. Таккак Си++ восходит, главным образом, к Си. Поэтому сделанного в Си акцента на средствахнизкого уровня достаточно, чтобы справляться с самыми насущными задачами системногопрограммирования. Си, в свою очередь, многим обязан своему предшественнику BCPL. Си++- это машинно-ориентированный язык программирования, задуманный так, чтобы сделатьпрограммирование более приятным для серьёзного программиста. За исключением второстепенныхдеталей Си++ является надмножеством языка программирования Си. Позднеебыла проведена проверка определения Си++, чтобы удостовериться в том, что любаяконструкция, допустимая и в Си, и в Си++, действительно означает в обоих языкаходно и то же. В Си++ нет типов данных высокого уровня и нет первичных операций высокогоуровня. В нём нет, например, матричного типа с операций обращения. Еслипользователю понадобится подобный тип, его можно определить в самом языке. По сутидела, основным, чем занимается программирование на Си++ — это определение универсальныхи специально-прикладных типов. Популярностьобъектно-ориентированного языка C++ дала начало множеству новых языков для современногоИнтернета. Причиной успешного развития языка Java (Джава) (и его производных, такихкак JavaScript) является широкомасштабное использование в нем языка C++, и хотяC++ не поддерживает достаточной безопасности программирования web-сайтов, его объектно-ориентированнаяприрода делает Java хорошим кандидатом для программирования объектов Интернета.Компания Sun Microsystems изменила язык C++, добавив в него элементы обеспечениядостаточной безопасности и убрав ряд сомнительных возможностей C++. (Примером являетсямножественность наследования, которая позволяет генерацию одного объекта программирования,такого как окно, из набора нескольких родительских окон с различными характеристиками.Подобная концепция сбивает с толку даже при формулировании ее на высоком уровне.) 2.4Бейсик BASICбыл разработан в колледже города Дартмут (Dartmouth) и предназначался для обученияначинающих. Язык FORTRAN был сложным для студентов нематематических отделений. ДжонКимини (John Kemeny) и Томас Курц (Thomas Kurtz), учившиеся в Дартмуте, при разработкеязыка BASIC в качестве основы использовали FORTRAN. BASIC — сокращение от Beginner’sAll-purpose Symbolic Instruction Code (универсальный код символических инструкцийдля начинающих) — имя, которое говорит само за себя. BASIC, как правило, используетсяс интерпретатором, хотя современные версии BASIC являются компилирующими. Это позволяетновичкам сосредоточиться на языке программирования и не вникать в особенности компиляции.Как и все интерпретируемые языки, BASIC-программы выполняются медленнее, чем откомпилированныепрограммы, поэтому программы на языке BASIC не используются в коммерческих приложениях. Этотязык стал одним из самых распространённых. Бейсик был первоначально задуман какочень простой язык, который можно было бы очень быстро освоить. В язык были включеныпримитивные средства редактирования, с тем, чтобы избавить пользователя от необходимостиразбираться во всех сложностях базовой операционной системы. Вначале Бейсик использовалсятолько для обработки числовых величин, но позднее был расширен средствами обработкистроковых переменных и снабжен набором процедур простого манипулирования символьнымицепочками, который фактически стал стандартом. Простота Бейсика сделала его наиболееподходящим языком программирования для первых микроЭВМ. В настоящее время он являетсяосновным языком программирования персональных ЭВМ. К сожалению, почти каждая машинаимеет свой собственный диалект Бейсика, поэтому мобильность программ на Бейсикеобеспечить довольно трудно. В настоящее время во многие диалекты Бейсика включаютсясовременные управляющие структуры типа: REPEAT…UNTIL, что вселяет определённый оптимизм. 2.5Лого ЯзыкЛого был создан с целью обучения школьников основам алгоритмического мышления ипрограммирования. Лого — диалоговый процедурный язык, реализованный на основе интерпретаторас возможностью работы со списками и на их основе с текстами, оснащенный развитымиграфическими средствами, которые доступны для детского восприятия. Этот язык реализовандля большинства ПЭВМ, применяемых в школах. Хотя язык был разработан задолго дотого, как началось массовое распространение персональных компьютеров, именно с ихпоявлением этот язык привлёк внимание и приобрёл популярность. 2.6Форт ЯзыкФорт относится к числу своеобразных языков. Он весьма популярен среди пользователеймикроЭВМ. Основной чертой языка Форт является его открытость, которая позволяетстроить новые определения функций на базе ранее определённых. Программист можетлегко добавить новые операции, типы данных или определения основного языка. Фортпозволяет поддерживать многозадачный режим работы, широко используя принцип реентерабельности(одновременного доступа) программ. Структура языка позволяет создавать очень компактныетрансляторы (переводчики). Программирование на этом языке требует специальных навыков,поэтому Форт находит применение при решении сложных задач имитационного моделирования,в графических системах, в системах искусственного интеллекта как средство построениябаз знаний, в промышленных разработках. 2.7Пролог Прологявляется языком логического программирования. Главное назначение языка — разработкаинтеллектуальных программ и систем. Пролог-это язык программирования, созданныйспециально для работы с базами знаний, основанными на фактах и правилах (одногоиз элементов систем искусственного интеллекта). В языке реализован механизм возвратадля выполнения обратной цепочки рассуждений, при котором предполагается, что некоторыевыводы или заключения истинны, а затем эти предположения проверяются в базе знаний,содержащей факты и правила логического вывода. Если предположение не подтверждается,выполняется возврат и выдвигается новое предположение. Пролог принят в качествеосновного языка в японских ЭВМ пятого поколения. 2.8Рефал Несомненнонадо рассказать и о некоторых языках программирования созданных у нас на родине.Один из таких языков является Рефал, разработанный у нас в России (СССР), в 1966г.ИПМ АН СССР. Этот язык прост и удобен для описания манипуляций над произвольнымитекстовыми объектами. Рефалшироко применяется при разработке трансляторов с алгоритмических языков как универсальныхи проблемно – ориентированных, так и автокодов. Кроме использования в задачах трансляции,Рефал имеет такие важные сферы применения, как машинное выполнение громоздких аналитическихвыкладок в теоретической физике и прикладной математике; проектирование «умных»информационных систем, осуществляющих нетривиальную логическую обработку информации;машинное доказательство теорем; моделирование целенаправленного поведения; разработкадиалоговых обучающих систем; исследования в области искусственного интеллекта ит.п. Программированиена Рефале имеет специфику, связанную, прежде всего, с тем, что Рефал является языкомфункционального типа в отличие от обычных операторных языков типа Алгол, Фортрани т.д… Если программа на операторных языках – ни что иное, как совокупность приказов-операторов,то программа на Рефале представляет собой по существу описание связей и отношениймежду определенными понятиями. Вследствиетого, что в Рефале программист сам определяет структуру обрабатываемой информации,эффективность программы существенно зависит от удачного или неудачного выбора этойструктуры. Для задания структур в Рефале используются скобки, а специфика всех реализацийязыка такова, что использование скобок резко повышает эффективность выполнения программы.Это достигается с помощью адресного соединения скобок. Определеннойспецификой обладают и переменные типа «выражения» имеется в виду их способностьудлиняться при отождествлении. Правильное использование переменных этого типа такжепозволяет значительно повысить эффективность Рефал – программы. 2.9Лекс Лекс– генератор программ лексического анализа. Лексический анализ это распознаваниелексем во входном потоке символов. Предположим, что задано некоторое конечное множествослов (лексем) в некотором языке и некоторое входное слово. Необходимо установить,какой элемент множества (если он существует) совпадает с данным входным словом.Обычно лексический анализ выполняется так называемым лексическим анализатором. Лексическийанализатор – это программа. Лексический анализ применяется во многих случаях, например,для построения пакетного редактора или в качестве распознавателя директив в диалоговойпрограмме и т.д. Однако, наиболее важное применение лексического анализатора – этоиспользование его в компиляторе. Здесь лексический анализатор выполняет функциюпрограммы ввода данных. Лексическийанализатор выполняет первую стадию компиляции – читает строки компилируемой программы,выделяет лексемы и передает их на дальнейшие стадии компиляции (грамматический разбор,кодогенерацию и т.д.). Лексическийанализатор распознает тип каждой лексемы и соответствующим образом помечает ее.Например, при компиляции Си-программы могут быть выделены следующие типы лексем:число, идентификатор, оператор, ограничитель и т.д. Лексическийанализатор должен не только выделить лексему, но и выполнить некоторые преобразования.Например, если лексема – число, то его необходимо перевести во внутреннюю (двоичную)форму записи как число с плавающей или фиксированной запятой. А если лексема – идентификатор,то его необходимо разместить в таблице, чтобы в дальнейшем обращаться к нему непо имени, а по адресу в таблице. Хотялексический анализ по своей идее прост, тем не менее, эта фаза работы компиляторачасто занимает больше времени, чем любая другая. Частично это происходит из-за необходимостипросматривать и анализировать исходный текст символ за символом. Иногда даже бываетнеобходимо вернуть прочитанный символ во входной поток с тем, чтобы повторить просмотри анализ. 3 Понятие,назначение и составные элементы систем программирования Системойпрограммирования называется комплекс программ, предназначенный для автоматизациипрограммирования задач на ЭВМ. Система программирования освобождает пользователяили программиста от необходимости написания программ решения своих задач на неудобномдля него языке машинных команд, и предоставляют им возможность использовать специальныеязыки более высокого уровня. Для каждого из таких языков, называемых входными илиисходными, система программирования имеет программу, осуществляющую автоматическийперевод (трансляцию) текстов программы с входного языка на язык машины. Обычно системапрограммирования содержит описания применяемых языков программирования, программы– трансляторы с этих языков, а также развитую библиотеку стандартных подпрограмм.Важно различать язык программирования и реализацию языка. Язык– это набор правил, определяющих систему записей, составляющих программу, синтаксиси семантику используемых грамматических конструкций. Реализацияязыка – это системная программа, которая переводит (преобразует) записи на языкевысокого уровня в последовательность машинных команд. Понабору входных языков различают системы программирования одно- и многоязыковые.Отличительная черта многоязыковых систем состоит в том, что отдельные части программыможно составлять на разных языках и с помощью специальных обрабатывающих программобъединять их в готовую для исполнения на ЭВМ программу. Поструктуре, уровню формализации входного языка и целевому назначению различают системыпрограммирования машинно-ориентированные и машинно-независимые. 3.1Машинно-ориентированные системы программирования[4] Машинно-ориентированныесистемы программирования имеют входной язык, наборы операторов и изобразительныесредства, которые существенно зависят от особенностей ЭВМ (внутреннего языка, структурыпамяти и т.д.). Машинно-ориентированные системы позволяют использовать все возможностии особенности машинно-зависимых языков: · высокое качество создаваемыхпрограмм; · возможность использованияконкретных аппаратных ресурсов; · предсказуемость объектногокода и заказов памяти; · низкая скорость программирования; · невозможность непосредственногоиспользования программ, составленных на этих языках, на ЭВМ других типов. 3.1.1Машинный язык[5] В такихсистемах программирования отдельный компьютер имеет свой определённый машинный язык.Некоторые семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и др.) имеют единый машинный язык для ЭВМ разноймощности. В новых моделях ЭВМ намечается тенденция к повышению внутренних языковмашинно-аппаратным путём. Машинный язык является внутренним языком ЭВМ и представляетсобой систему инструкций и данных, которые не требуют трансляции и могут непосредственноинтерпретироваться и исполняться аппаратными средствами ЭВМ. 3.1.2Системы символического кодирования[6] В данныхсистемах используются языки символического кодирования, которые так же, как и машинныеязыки, являются командными. Однако, коды операций и адреса в машинных командах,представляющие собой последовательность двоичных (во внутреннем коде) или восьмеричных(часто используемых при написании программ) цифр, в языках символического кодированиязаменены символами (идентификаторами), форма написания которых помогает программистулегче запоминать смысловое содержание операции. Это обеспечивает существенное уменьшениечисла ошибок при составлении программ. Использование символических адресов – первыйшаг к созданию языков символического кодирования. Назначение адресов, выполняемоеотдельно от составления программы в символических адресах, может проводиться менееквалифицированным программистом или специальной программой, что в значительной степениоблегчает труд программиста. 3.1.3Автокоды Существуютсистемы программирования, использующие языки, которые включают в себя все возможностиязыков символического кодирования, посредством расширенного введения макрокоманд– они называются Автокоды. В различных программах встречаются некоторые достаточночасто использующиеся командные последовательности, которые соответствуют определённымпроцедурам преобразования информации. Эффективная реализация таких процедур обеспечиваетсяоформлением их в виде специальных макрокоманд и включением последних в язык программирования,доступный программисту. Макрокоманды переводятся в машинные команды двумя пу-тями– расстановкой и генерированием. Развитые автокоды получили название Ассемблеры. 3.1.4Макрос В такихсистемах язык, являющийся средством для замены последовательности символов описывающихвыполнение требуемых действий ЭВМ на более сжатую форму – называется Макрос (средствозамены). В основном, Макрос предназначен для того, чтобы сократить запись исходнойпрограммы. Компонент программного обеспечения, обеспечивающий функционирование макросов,называется макропроцессором. На макропроцессор поступает макросопределяющий и исходныйтекст. Реакция макропроцессора на вызов – выдача выходного текста. Макрос одинаковоможет работать, как с программами, так и с данными. 3.2Машинно-независимые системы программирования[7] Машинно-независимыесистемы программирования – это средство описания алгоритмов решения задач и информации,подлежащей обработке. Они удобны в использовании для широкого круга пользователейи не требуют от них знания особенностей организации функционирования ЭВМ. Операторыязыка описывают действия, которые должна выполнять система после трансляции программына машинном языке. Таким образом, командные последовательности (процедуры, подпрограммы),часто используемые в машинных программах, представлены в высокоуровневых языкахотдельными операторами. Программист получил возможность не расписывать в деталяхвычислительный процесс на уровне машинных команд, а сосредоточиться на основныхособенностях алгоритма. 3.2.1Процедурно-ориентированные системы [8] Входныеязыки программирования в таких системах служат для записи алгоритмов (процедур)обработки информации, характерных для решения задач определённого класса. Эти языки,должны обеспечить программиста средствами, позволяющими коротко и чётко формулироватьзадачу получать результаты в требуемой форме. Процедурных языков очень много, например;Фортран, Алгол – языки созданные для решения математических задач; Simula,Слэнг – для моделирования; Лисп, СНОБОЛ – для работы со списочными структурами. 3.2.2Проблемно-ориентированные системы[9] Проблемно-ориентированныесистемы в качестве входного языка используют язык программирования с проблемнойориентацией. С расширением областей применения вычислительной техники возникла необходимостьформализовать представления постановки и решения новых классов задач. Необходимобыло создать такие языки программирования, которые, используя в данной области обозначенияи терминологию, позволили бы описывать требуемые алгоритмы решения для поставленныхзадач. Программы, составленные на основе этих языков программирования, записаныв терминах решаемой задачи и реализуются выполнением соответствующих процедур. 3.2.3Диалоговые языки[10] Появлениеновых технических возможностей поставило задачу перед системными программистами– создать программные средства, обеспечивающие оперативное взаимодействие человекас ЭВМ их назвали диалоговыми языками. Разрабатывались языки, которые кроме целейуправления обеспечивали бы описание алгоритмов решения задач. Необходимость обеспеченияоперативного взаимодействия с пользователем потребовала сохранения в памяти ЭВМкопии исходной программы даже после получения объектной программы в машинных кодах.При внесении изменений в программу система программирования с помощью специальныхтаблиц устанавливает взаимосвязь структур исходной и объектной программ. Это позволяетосуществить требуемые редакционные изменения в объектной программе. 3.2.4Непроцедурные языки[11] Непроцедурныеязыки составляют группу языков, описывающих организацию данных, обрабатываемых пофиксированным алгоритмам (табличные языки и генераторы отчётов), и языков связис операционными системами. Позволяя чётко описывать как задачу, так и необходимыедля её решения действия, таблицы решений дают возможность в наглядной форме определить,какие условия должны выполняться, прежде чем переходить к какому-либо действию.Табличные методы легко осваиваются специалистами любых профессий. Программы, составленныена табличном языке, удобно описывают сложные ситуации, возникающие при системноманализе. 4 Выводы Новыеязыки легче в использовании. Большинство современных языков имеет интегрированнуюсреду разработки и поддерживает структурное программирование. Для графических операционныхсистем, например Windows, требуются более сложные средства программирования, нос помощью простых в обращении языков, таких как Visual Basic, процесс облегчаетсянастолько, что даже начинающие программисты могут работать с графической средой. · Современныеязыки программирования обеспечивают огромные преимущества по сравнению с предшествующимиязыками. Они более структурированы и предоставляют интегрированную среду разработки. · В1970-х самым популярным языком общего применения был Pascal, но в 1980-х его применениерезко сократилось. · ЯзыкC, разработанный компанией Bell Laboratories, является очень эффективным, но низкоуровневымязыком программирования. Язык C — это основа современных языков. · Самымбольшим преимуществом языка C++ над его предшественником является поддержка объектно-ориентированногопрограммирования. · VisualBasic, наследник языка BASIC, обеспечивает наилучшую базу программирования для начинающих. · Выбориспользуемого языка определяется многими факторами. Большинствоязыков имеют специализацию и подходят для написания определенного типа программ.Выбор языка определяется исходя из направленности разрабатываемой программы. Крометого, программист должен отдавать себе отчет в том, насколько этот язык распространен,на тот случай, если кому-то в будущем придется заниматься обслуживанием его программы. 5 Практическаячасть 1.Используя ППП на ПК, необходимо построить таблицы по приведённым ниже формам (рис.2, 3). Определитьсредний бал экзаменационной сессии по курсам и по факультету. Результатыокруглить до одного десятичного знака после запятой, используя функцию ОКРУГЛ. Определитьрейтинг (место по уровню успеваемости) каждого курса. Ввеститекущее значение даты между таблицей и её названием. Поданным таблицы на рис.3 (графы 1 и 2) построить круговую диаграмму с заголовком,подписями данных и легендой. 1 курс 2 курс 3 курс 4 курс 5 курс Балл Кол-во оценок Балл Кол-во оценок Балл Кол-во оценок Балл Кол-во оценок Балл Кол-во оценок 1 2 3 4 5 6 7 8 9 10 5 23 5 27 5 32 5 28 5 34 4 57 4 60 4 58 4 63 4 62 3 18 3 14 3 10 3 9 3 6 2 7 2 9 2 4 2 1 2Рис.2.Сведения о результатах экзаменационной сессии Курс Средний балл Рейтинг 1 2 3 1 2 3 4 5 По факультетуРис.3Средний балл по курсам и факультету 2.Используя Microsoft Excel, строим таблицы, приведённые на рис.2,3. Дляопределения среднего бала экзаменационной сессии по курсам используем формулу дляпоиска среднего арифметического значения. Полученные значения заносятся в соответствующиеячейки таблицы 2. Для определения среднего бала экзаменационной сессии по факультетамдействуем аналогично. Чтобыокруглить результат до одного десятичного знака после запятой, используем функциюОКРУГЛ. Формат команды: ОКРУГЛ(А; В), где А – десятичное число; В – до какого знаканеобходимо округлить. Используяокруглённые значения среднего бала, определяем рейтинг каждого курса. Вводимтекущее значение даты между таблицей и её названием. С помощьюфункции “мастер диаграмм” строим круговую диаграмму по данным таблицы (рис.3) называемеё “ Средний балл по курсам”. Далееприведено неформализованное решение задачи и инфологическая модель решения задачи. /> Рис.4.Неформализованное решение задачи />Рис.5 Инфологическая модель решения задачи /> 3.Для выполнения практической работы выбираем программу Microsoft Excel, так как она полностью удовлетворяет всем потребностям.В Microsoft Excel организована работа с диаграммами, а также имеются необходимыевстроенные функции. Таблица1. Таблицас исходными данными 1 курс 2 курс 3 курс 4 курс 5 курс балл Кол-во оценок балл Кол-во оценок балл Кол-во оценок балл Кол-во оценок балл Кол-во оценок 1 2 3 4 5 6 7 8 9 10 5 23 5 27 5 32 5 28 5 34 4 57 4 60 4 58 4 63 4 62 3 18 3 14 3 10 3 9 3 6 2 7 2 9 2 4 2 1 2 курс средний балл рейтинг Средний балл Округл. 1 2 3 3,85981 3,9 1 3,9 5 3,92105 3,9 2 3,9 4 4,18182 4,2 3 4,2 3 4,37615 4,4 4 4,4 2 4,69643 4,7 5 4,7 1 Рис.3.Вспомогательная таблица. по факультету 4,2 рис.2. Средний балл по курсам и факультету.Среднийбал по курсам /> 1—Среднийбалл по 1-му курсу. 2—Среднийбалл по 2-му курсу. 3--Средний балл по 3-му курсу. 4--Средний балл по 4-му курсу. 5--Средний балл по 5-му курсу. www.ronl.ru Реферат - Что такое язык программированияСодержание:
1) Введение стр. 1 2) Что такое языкпрограммирования стр. 2 3) Для чего нужны языкипрограммирования стр. 3 4) Какие существуют языкипрограммирования стр. 4 – 7 5) Что такое компилятор иинтерпретатор стр. 8 6) Список использованнойлитературы стр. 9 ВведениеДо середины 60-х компьютеры были слишком дорогими машинами, использовавшимисятолько для особых задач, и выполнявшими только одну задачу за раз (т. н. пакетнаяобработка).
Языки программирования этой эры, как и компьютеры на которых онииспользовались, были разработаны для специфичных задач, таких как научныевычисления. Поскольку машины были дорогими и лишь одна задача выполнялась зараз, то и машинное время было дорого – поэтому скорость выполнения программыстояла на первом месте. Однако в течение 60-х цена на компьютеры стала падать так, что даже небольшиекомпании могли их себе позволить; скорость компьютеров всё увеличивалась инаступило время, когда они стали часто простаивать без задач. Чтобы этого непроисходило, стали вводить системы с разделением времени (time-sharing). В таких системах процессорное время «нарезалось», и все пользователи поочерёднополучали короткие отрезки этого времени. Машины были достаточно быстрыми длятого, чтобы в результате каждый пользователь за терминалом чувствовал себя так,будто работает с системой в одиночку. Машина же, в свою очередь, простаиваламеньше, поскольку выполняла не одну, а сразу много задач. Разделение временирадикально снижало стоимость машинного времени, поскольку одна машина могласовместно использоваться сотнями пользователей. В этих условиях — когда мощность стала дешева и доступна — создатели языковпрограммирования все больше стали задумываться об удобстве написанияпрограмм, а не только скорости их выполнения. «Мелкие» (атомарные) операции, выполняемые непосредственноустройствами машины, объединили в более «крупные», высокоуровневые операции ицелые конструкции, с которыми человеку куда проще и удобнее работать. Что такое язык программированияЯзык программирования — формальнаязнаковая система, предназначенная для описания алгоритмов в форме, котораяудобна для исполнителя (например, компьютера). Язык программирования определяетнабор лексических, синтаксических и семантических правил, используемых присоставлении компьютерной программы. Он позволяет программисту точно определитьто, на какие события будет реагировать компьютер, как будут храниться ипередаваться данные, а также какие именно действия следует выполнять над этимипри различных обстоятельствах. Со времени создания первых программируемых машин человечество придумало ужеболее двух с половиной тысяч языков программирования. Каждый год их числопополняется новыми. Некоторыми языками умеет пользоваться только небольшоечисло их собственных разработчиков, другие становятся известны миллионам людей.Профессиональные программисты иногда применяют в своей работе более десяткаразнообразных языков программирования. Создатели языков по-разному толкуют понятие язык программирования. Средиобщин мест, признаваемых большинством разработчиков, находятся следующие: Функция: язык программирования предназначен для написания компьютерных программ, которые применяются для передачи компьютеру инструкций по выполнению того или иного вычислительного процесса и организации управления отдельными устройствами. Задача: язык программирования отличается от естественных языков тем, что предназначен для передачи команд и данных от человека компьютеру, в то время как естественные языки используются лишь для общения людей между собой. В принципе, можно обобщить определение «языков программирования» — это способ передачи команд, приказов, чёткого руководства к действию; тогда как человеческие языки служат также для обмена информацией. Исполнение: язык программирования может использовать специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений.Для чего нужны языки программирования Процесс работы компьютеразаключается в выполнении программы, то есть набора вполне определённых командво вполне определённом порядке. Машинный вид команды, состоящий из нулей иединиц, указывает, какое именно действие должен выполнить центральныйпроцессор. Значит, чтобы задать компьютеру последовательность действий, которыеон должен выполнить, нужно задать последовательность двоичных кодовсоответствующих команд. Программы в машинных кодах состоят из тысячи команд.Писать такие программы – занятие сложное и утомительное. Программист долженпомнить комбинацию нулей и единиц двоичного кода каждой программы, а такжедвоичные коды адресов данных, используемых при её выполнении. Гораздо прощенаписать программу на каком-нибудь языке, более близком к естественному человеческомуязыку, а работу по переводу этой программы в машинные коды поручить компьютеру.Так возникли языки, предназначенные специально для написания программ, — языкипрограммирования. Имеется много различных языков программирования. Вообще-то для решениябольшинства задач можно использовать любой из них. Опытные программисты знают,какой язык лучше использовать для решения каждой конкретной задачи, так каккаждый из языков имеет свои возможности, ориентацию на определённые типы задач,свой способ описания понятий и объектов, используемых при решении задач. Всё множество языков программирования можно разделить на две группы: языкинизкого уровня и языки высокого уровня. К языкам низкого уровня относятся языки ассемблера (от англ. to assemble – собирать, компоновать). В языке ассемблераиспользуются символьные обозначения команд, которые легко понятны и быстрозапоминаются. Вместо последовательности двоичных кодов команд записываются ихсимвольные обозначения, а вместо двоичных адресов данных, используемых привыполнении команды, — символьные имена этих данных, выбранные программистом.Иногда язык ассемблера называют мнемокодом или автокодом. Большинство программистов пользуются для составления программ языками высокогоуровня. Как и обычный человеческий язык, такой язык имеет свой алфавит –множество символов, используемых в языке. Из этих символов составляются такназываемые ключевые слова языка. Каждое из ключевых слов выполняет своюфункцию, так же как в привычном нам языке нам языке слова, составленные из буквалфавита данного языка, могут выполнять функции разных частей речи. Ключевыеслова связываются друг с другом в предложения по определённым синтаксическимправилам языка. Каждое предложение определяет некоторую последовательностьдействий, которые должен выполнить компьютер. Язык высокого уровня выполняет роль посредника между человеком и компьютером,позволяя человеку общаться с компьютером более привычным для человека способом.Часто такой язык помогает выбрать правильный метод решения задачи. Перед тем как писать программу на языке высокого уровня, программист долженсоставить алгоритм решения задачи, то есть пошаговый план действий,который нужно выполнить для решения этой задачи. Поэтому языки, требующиепредварительного составления алгоритма, часто называют алгоритмическимиязыками. Какие существуют языки программирования ФортранЯзыки программирования стали появляться уже с середины 50-х годов. Одним из первыхязыков такого типа стал язык Фортран (англ. FORTRAN от FORmula TRANslator – переводчик формул), разработанный в 1957 году.Фортран применяется для описания алгоритма решения научно-технических задач спомощью ЦВМ. Так же, как и первые вычислительные машины, этот языкпредназначался, в основном, для проведения естественно-научных и математическихрасчётов. В усовершенствованном виде этот язык сохранился до нашего времени.Среди современных языков высокого уровня он является одним из наиболее используемыхпри проведении научных исследований. Наиболее распространены варианты Фортран-II,Фортран-IV, EASIC Fortran и их обобщения.
Алгол После Фортрана в 1958-1960 годах появился язык Алгол (Алгол-58, Алгол-60)(англ. ALGOL от ALGOrithmic Language – алгоритмический язык).Алгол был усовершенствован в 1964-1968 годах –Алгол-68. Алгол был разработан комитетом,в который входили европейские и американские учёные. Он относится к языкам высокого уровня (high-levellanguage) и позволяет легко переводить алгебраические формулы в программныекоманды. Алгол был популярен в Европе, в том числе СССР, в то время каксравнимый с ним Фортран был распространен в США и Канаде. Алгол оказал заметноевлияние на все разработанные позднее языки программирования, и, в частности, наязык Pascal. Этот язык так же, как и Фортран, предназначался длярешения научно-технических задач. Кроме того, этот язык применялся как средствообучения основам программирования – искусства составления программ. Обычно под понятием Алгол подразумевается язык Алгол-60, в то время как Алгол-68рассматривается как самостоятельный язык. Даже когда язык Алгол почти пересталиспользоваться для программирования, он ещё оставался официальным языком дляпубликации алгоритмов. КоболВ 1959 – 1960 годах был разработан язык Кобол (англ. COBOL от COmmom BusinessOriented Language – общий язык, ориентированный на бизнес). Это языкпрограммирования третьего поколения, предназначенный, в первую очередь, дляразработки бизнес приложений. Также Коболпредназначался для решения экономических задач, обработки данных для банков,страховых компаний и других учреждений подобного рода. Разработчиком первогоединого стандарта Кобола являлась Грейс Хоппер (бабушка Кобола). Кобол обычно критикуется за многословность и громоздкость, поскольку одной изцелей создателей языка было максимально приблизить конструкции к английскомуязыку. (До сих пор Кобол считается языком программирования, на котором былонаписано больше всего строк кода). В то же время, Кобол имел прекрасные длясвоего времени средства для работы со структурами данных и файлами, чтообеспечило ему долгую жизнь в бизнес приложениях, по крайней мере, в США. ЛиспПочти одновременно с Коболом (1959 – 1960 гг.) в Массачусетском технологическоминституте был создан язык Лисп (англ. LISP от LISt Processing – обработка списков). Лисп основан на представлении программы системойлинейных списков символов, которые притом являются основной структурой данныхязыка. Лисп считается вторым после Фортрана старейшим высокоуровневым языкомпрограммирования. Этот язык широкоиспользуется для обработки символьной информации и применяется для созданияпрограммного обеспечения, имитирующего деятельность человеческого мозга. Любая программа на Лиспе состоит из последовательности выражений (форм).Результат работы программы состоит в вычислении этих выражений. Все выражениязаписываются в виде списков — одной из основных структур Лиспа, поэтомуони могут легко быть созданы посредством самого языка. Это позволяет создаватьпрограммы, изменяющие другие программы или макросы, позволяющие существеннорасширить возможности языка. Основнойсмысл Лисп-программы «жизнь» в символьном пространстве: перемещение,творчество, запоминание, создание новых миров и т.д. Лисп как метафора мозга,символ, метафора сигнала: «Как происходит биологический анализ сигналовмозгом, как внешний фактор — физическое и химическое воздействие, являющеесядля организма раздражителем превращается в биологически значимый сигнал, зачастуюжизненно важный, определяющий все поведение человека или животного; и какпроисходит разделение разных сигналов на положительные, отрицательные ибезразличные, индифферентные. Сигнал это уже интегративное понятие. Онпредставляет собой опознавательный знак группы, комплексных раздражителей,связанных между собой общей историей и причинно следственными отношениями. Вэтом комплексе, системе раздражителей, сигнальный стимул сам является такжесоставляющим элементом и при иных обстоятельствах его роль может принадлежатьдругому стимулу из комплекса. В сигнале концентрируется весь прошлый опытживотного или человека.»[1] БейсикВ середине 60-х годов (1963 г.) в Дартмутском колледже (США) был создан языкБейсик (англ. BASIC от Beginner’s Allpurpose Instruction Code – всецелевойсимволический код инструкций для начинающих). Со временем, когда сталипоявляться другие диалекты, этот «изначальный» диалект стали называть Dartmouth BASIC. Язык был основан частично на Фортран II и частично на Алгол-60,с добавлениями, делающими его удобным для работы в режиме разделения времени и,позднее, обработки текста и матричной арифметики. Первоначально Бейсик былреализован на мейнфрейме GE-265 с поддержкой множества терминалов. Вопрекираспространённому убеждению, в момент своего появления это был компилируемыйязык. Бейсик был спроектирован так, чтобы студенты могли писать программы, используятерминалы с разделением времени. Он создавался как решение для проблем,связанных со сложностью более старых языков. Он предназначался для более«простых» пользователей, не столько заинтересованных в скорости программ,сколько просто в возможности использовать компьютер для решения своих задач. Всилу простоты языка Бейсик многие начинающие программисты начинают с него свойпуть в программировании. Форт В конце 60-х – начале 70-х годов появился язык Форт (англ. FOURTH– четвёртый). Этот язык стал применяться в задачах управления различнымисистемами после того, как его автор Чарльз Мур написал на нём программу,предназначенную для управления радиотелескопом Аризонской обсерватории. Ряд свойств, а именно интерактивность, гибкость и простота разработки делаютФорт весьма привлекательным и эффективным языком в прикладных исследованиях ипри создании инструментальных средств. Очевидными областями применения этогоязыка являются встраиваемые системы управления. Также находит применение припрограммировании компьютеров под управлением различных операционных систем. ПаскальПоявившийся в 1972 году язык Паскаль был назван так в честь великогофранцузского математика XVII века, изобретателя первой в мире арифметическоймашины Блеза Паскаля. Этот язык был создан швейцарским учёным, специалистом вобласти информатики Никлаусом Виртом как язык для обучения методампрограммирования. Паскаль – это язык программирования общего назначения. Особенностями языка являются строгая типизация и наличие средств структурного(процедурного) программирования. Паскаль был одним из первых таких языков. Помнению Н. Вирта, язык должен способствовать дисциплинированиюпрограммирования, поэтому, наряду со строгой типизацией, в Паскале сведены кминимуму возможные синтаксические неоднозначности, а сам синтаксис интуитивнопонятен даже при первом знакомстве с языком. Язык Паскаль учит не только тому, как правильно написать программу, но и тому,как правильно разработать метод решения задачи, подобрать способы представленияи организации данных, используемых в задаче. С 1983 года язык Паскаль введён вучебные курсы информатики средних школ США. АдаНа основе языка Паскаль в конце 70-х годов был созданязык Ада, названный в честь одарённого математика Ады Лавлейс (Огасты АдыБайрон – дочери поэта Байрона). Именно она в 1843 году смогла объяснить мирувозможности Аналитической машины Чарльза Бэббиджа. Язык Ада был разработан позаказу Министерства обороны США и первоначально предназначался для решениязадач управления космическими полётами. Этот язык применяется в задачахуправления бортовыми системами космических кораблей, системами обеспеченияжизнедеятельности космонавтов в полёте, сложными техническими процессами. Ада — это структурный, модульный,объектно-ориентированный язык программирования, содержащий высокоуровневыесредства программирования параллельных процессов. Синтаксис Ады унаследован отязыков типа Algol или Паскаль, но расширен, а также сделан более строгим илогичным. Ада — язык со строгой типизацией, в нём исключена работа с объектами,не имеющими типов, а автоматические преобразования типов сведены к абсолютномуминимуму. Поутверждению Стефена Цейглера[2], разработка программного обеспеченияна Аде в целом обходится на 60 % дешевле, а разработанная программа имеет в 9раз меньше дефектов, чем при использовании языка Си. СиВ настоящее время популярным среди программистов является язык Си (С – буква английского алфавита). Язык Си берёт своё начало от двух языков — BCPL и B. В 1967 году Мартин Ричардс разработал BCPL как язык для написания системного программного обеспечения и компиляторов. В 1970 году Кен Томпсон использовал В для создания ранних версий операционной системы UNIX на компьютере DEC PDP-7. Как в BCPL, так и в В переменные не разделялись на типы - каждое значение данных занимало одно слово в памяти и ответственность на различение, например, целых и действительных чисел целиком ложилась на плечи программиста. Язык Си был разработан (на основе В) Деннисом Ритчи из Bell Laboratories и впервые был реализован в 1972 году на компьютере DEC PDP-11. Известность Си получил в качестве языка ОС UNIX. Сегодня практически все основные операционные системы были написаны на Си или С++. По прошествии двух десятилетий Си имеется в наличии на большинстве компьютеров. Он не зависит от аппаратной части. В конце 70-х годов Си превратился в то, что мы называем «традиционный Си». В 1983 году Американским комитетом национальных стандартов в области компьютеров и обработки информации был учрежден единый стандарт этого языка. Этот язык имеет богатые средства, позволяет писать гибкие программы, использующие все возможности современных персональных компьютеров.
Пролог Ещё один язык, который считается языком будущего, был создан в начале 70-х годов группой специалистов Марсельского университета. Это язык Пролог. Своё название он получил от слов «ПРОграммирование на языке ЛОГики». В основе этого языка лежат законы математической логики. Как и язык Лисп, Пролог применяется, в основном, при проведении исследований в области программной имитации деятельности мозга человека. В отличие от описанных выше языков, этот язык не является алгоритмическим. Он относится к так называемым дескриптивным(от англ. descriptive – описательный) – описательным языкам. Дескриптивный язык не требует от программиста разработки всех этапов выполнения задачи. Вместо этого, в соответствии с правилами такого языка, программист должен описать базу данных, соответствующую решаемой задаче, и набор вопросов, на которые нужно получить ответы, используя данные из этой базы. В последние десятилетия в программировании возник и получил существенноеразвитие объектно-ориентированный подход. Это метод программирования,имитирующий реальную картину мира: информация, используемая для решения задачи,представляется в виде множества взаимодействующих объектов. Каждый из объектовимеет свои свойства и способы поведения. Взаимодействие объектов осуществляетсяпри помощи передачи сообщений: каждый объект может получать сообщения от другихобъектов, запоминать информацию и обрабатывать её определённым способом и, всвою очередь, посылать сообщения. Так же, как и в реальном мире, объекты хранятсвои свойства и поведение вместе, наследуя часть из них от родительскихобъектов. Объектно-ориентированная идеология используется во всех современных программныхпродуктах, включая операционные системы. Первый объектно-ориентированный язык Simula-67 был создан как средство моделирования работыразличных приборов и механизмов. Большинство современных языковпрограммирования – объектно-ориентированные. Среди них последние версии языка Turbo-Pascal, C++, Ada и другие. В настоящее время широко используются системы визуального программированияVisualBasic, VisualC++, Delphiи другие. Они позволяют создавать сложные прикладныепакеты, обладающие простым и удобным пользовательским интерфейсом. Что такое компилятор и интерпретаторСоздать язык, удобный для написания программ,недостаточно. Для каждого языка нужен свой переводчик. Такими переводчикамиявляются специальные программы-трансляторы. Транслятор – это программа, предназначенная дляперевода программы, написанной на одном языке программирования, в программу надругом языке программирования. Процесс перевода называется трансляцией. Тексты исходной и результирующей программ находятся впамяти компьютера. Примером транслятора является компилятор. Компилятор – это программа, предназначенная дляперевода программы, написанной на каком-либо языке, в программу в машинныхкодах. Процесс такого перевода называется компиляцией. Компилятор создаёт законченный результат – программу вмашинных кодах. Затем эта программа выполняется. Откомпилированный вариантисходной программы можно сохранить на диске. Для повторного выполнения исходнойпрограммы компилятор уже не нужен. Достаточно загрузить с диска в памятькомпьютера откомпилированный в предыдущий раз вариант и выполнить его. Существует другой способ сочетания процессовтрансляции и выполнения программы. Он называется интерпретацией. Сутьпроцесса интерпретации состоит в следующем. Вначале переводится в машинные коды,а затем выполняется первая строка программы. Когда выполнение первой строкиокончено, начинается перевод второй строки, которая затем выполняется и такдалее. Управляет этим процессом программа-интерпретатор. Интерпретатор – это программа, предназначеннаядля построчных трансляции и выполнения исходной программы. Такой процессназывается интерпретацией. В процесс трансляции входит проверка исходнойпрограммы на соответствие правилам используемого в ней языка. Если в программеобнаружены ошибки, транслятор вводит сообщение о них на устройство вывода(обычно, на экран дисплея). Интерпретатор сообщает о найденных им ошибках послетрансляции каждой строки программы. Это значительно облегчает процесс поиска иисправления ошибок в программе, однако существенно увеличивает времятрансляции. Компилятор транслирует программу намного быстрее, чеминтерпретатор, но сообщает о найденных им ошибках после завершения компиляциивсей программы. Найти и исправить ошибки в этом случае труднее. Поэтомуинтерпретаторы рассчитаны, в основном, на языки, предназначенные для обученияпрограммированию, и используются начинающими программистами. Большинствосовременных языков предназначены для разработки сложных пакетов программ ирассчитаны на компиляцию. Иногда один и тот же язык может использовать икомпилятор, и интерпретатор. К числу таких языков относится, например, Бейсик. Как правило, программы-компиляторы и интерпретаторыназываются так же, как и языки, для перевода с которых они предназначены. СловаПаскаль, Ада, Си могут относиться как к названиям языков, так и к названиямсоответствующих программ. [1] — Ю.Г.Кратин. Анализ сигналов мозгом. 1975. [2] — Stephen Zeigler. Comparing Development Costs of C and Ada. Список использованной литературы: 1. И.Т.Зарецкая, Б.Г. Колодяжный, А.Н. Гуржий, А.Ю. Соколов. Информатика 10-11 класс.- К.: «Форум», 2001 г. 2. БерезинБ.И, Березин С.Б. Начальный курс программирования. – М., 1996 г. 3. Х.М.Дейтел. Как программировать на С. – М.: «Бином», 2000 г. 4. Интернет-страница:ru.wikipedia.org/wiki/LISP 5. ВаграменкоЯ.А. и др. Основы информатики и вычислительной техники с применением клингвистике: Учеб. пособие. – М.: МОПИ, 1989г. www.ronl.ru Реферат - Современные языки программированияРеферат - Современные языки программирования(197.5 kb.)Доступные файлы (1):
1.docРеклама MarketGid:Министерство образования и науки Российской ФедерацииГосударственное образовательное учреждение высшего профессионального образования «Алтайский государственный технический университет имени И.И. Ползунова» Бийский технологический институт (филиал) Кафедра МСиА Реферат СОВРЕМЕННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ
Бийск–2011 СОДЕРЖАНИЕСОДЕРЖАНИЕ 2ВВЕДЕНИЕ 3 1. Современные языки программирования 5 2. Парадигмы программирования 8 2.1 Императивная модель 9 2.2 Декларативная модель 9 2.3 Структурная модель 10 2.4 Метапрограммирование 11 3. Трансляторы 14 3.1 Компилятор 14 3.2 Интерпретатор 15 4. Типизация данных 18 4.1 Динамическая типизация. 20 4.2 Статическая типизация. 22 ЗАКЛЮЧЕНИЕ 25 Список использованных источников 26 ВВЕДЕНИЕПроцесс работы компьютера заключается в выполнении программы, то есть набора вполне определённых команд во вполне определённом порядке. Машинный вид команды, состоящий из нулей и единиц, указывает, какое именно действие должен выполнить центральный процессор. Чтобы задать компьютеру последовательность действий, которые он должен выполнить, нужно задать последовательность двоичных кодов соответствующих команд. Программы в машинных кодах состоят из тысячи команд. Написание таких программ – занятие сложное и утомительное. Программист должен помнить комбинацию нулей и единиц двоичного кода каждой команды, а также двоичные коды адресов данных, используемых при её выполнении. Гораздо проще написать программу на каком-нибудь языке, более близком к естественному человеческому языку, а работу по переводу этой программы в машинные коды поручить компьютеру. Так возникли языки, предназначенные специально для написания программ. Язык программирования – формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под ее управлением. Создатели языков по–разному толкуют понятие язык программирования. К наиболее распространенным утверждениям, признаваемым большинством разработчиков, относятся следующие: – Функция: язык программирования предназначен для написания компьютерных программ, которые применяются для передачи компьютеру инструкций по выполнению того или иного вычислительного процесса и организации управления отдельными процессами. – Задача: язык программирования отличается от естественных языков тем, что предназначен для передачи команд и данных от человека компьютеру, в то время как естественные языки используются для общения людей между собой. В принципе, можно обобщить определение «языков программирования» – это способ передачи команд, приказов, четкого руководства к действию, тогда как человеческие языки служат только для обмена информацией. – Исполнение: язык программирования может использовать специальные конструкции для определения и манипуляции структурами данных и управления процессом вычислений.[1] Язык программирования чаще всего представлен в виде набора спецификаций, определяющих его синтаксис и семантику. Для многих языков программирования созданы международные стандарты. Специальные организации проводят регулярное обновление спецификаций и формальных определений соответствующего языка, а также продолжают разработку и модернизацию языков программирования. Со времени создания первых программируемых машин человечество придумало уже более двух с половиной тысяч языков программирования и каждый год их число пополняется новыми. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты иногда применяют в своей работе более десятка разнообразных языков программирования.^ Наверное, нет такого программиста, который не хотел бы создать свой собственный язык программирования: самый быстрый и надежный, самый удобный и простой. Именно поэтому за всю свою «компьютерную» историю человек придумал множество самых разных языков программирования. Одни из них послужив своим создателям, канули в «лету», другие, получив признание программистов всего мира, существуют до сих пор. Но тщеславие программистов не единственная причина возникновения новых языков программирования. Время не стоит на месте, развивается и наука и технологии, то, что ещё вчера казалось пределом научно–технического прогресса, сегодня уже вчерашний день. В настоящее время перед программистами ставятся задачи по созданию систем обработки и хранения информации, которые ещё двадцать лет назад казались невозможными. Появляются устройства и технологии, требующие принципиально новых подходов к программированию. Развитие Интернета предоставляет новые, ещё до конца не освоенные возможности по созданию распределённых сетевых технологий. Всё это служит благодатной почвой для создания новых языков программирования, отвечающих всем современным задачам, использующих новые принципы программирования и позволяющих решать актуальные проблемы. Не смотря на огромное множество языков программирования, лишь немногие из них получили широкую известность и признание программистов. Для того, что бы определить самые популярные языки программирования воспользуемся данными голландской компании «TIOBE Software BV» в первую очередь известной своим регулярно рассчитываемым рейтингом популярности языков программирования. Несмотря на многолетние споры, относительно качества и достоверности рейтинга, других источников позволяющих хоть как-то оценить тенденции в развитии языков программирования на сегодняшний день нет. По данным компании «TIOBE Software BV» десять самых популярных языков программирования на декабрь 2010 года представлены в таблице 1. Таблица 1 – Рейтинг языков программирования [2]
Все эти языки программирования, безусловно, очень разные. Каждый из них имеет своё собственное назначение, подчас уникальную среду разработки, и конечно свой синтаксис и семантику. Сравнение языков программирования между собой, по их возможностям, по способам реализации и даже сложности освоения, задача очень сложная. Оценить удобство тех или иных семантических конструкций возможно только на реальных примерах и для каждого языка программирования можно найти задачу, для которой он подходит лучше, чем все остальные. Зачастую подобные сравнения выливаются в настоящие «войну» между сообществами программистов. Каждая из сторон защищает «свой» язык программировании и никак не принимает доводы другой стороны. Как правило, такие «войны» заканчиваются «ничьей» или не заканчиваются вовсе. Однако, рассмотрение языков программирования по общим для них всех концепциям, позволяет судить о развитии программирования в целом. О том, какие задачи наиболее актуальны, какими методами они решаются, и какие подходы для этого используются. Рассмотрим эти языки программирования с нескольких основных позиций:
Парадигма (от греч. παράδειγμα, «пример, модель, образец») – набор теорий, стандартов и методов, которые совместно представляют собой способ организации научного знания. Парадигма программирования – это совокупность идей и понятий, определяющая стиль написания программ. Парадигма программирования – модель или подход к решению проблемы. Парадигма, в первую очередь, определяется базовой программной единицей и самим принципом достижения модульности программы. В качестве этой единицы выступают определение, действие, правило, диаграмма переходов и др. сущности. Парадигма программирования определяет то, в каких терминах программист описывает логику программы. Например, как последовательность действий, в виде выражения и множества определений функций, рассматривать программу как набор взаимодействующих объектов. Важно отметить, что парадигма программирования не определяется однозначно языком программирования – многие современные языки программирования являются мультипарадигменными, то есть допускают использование различных парадигм. На сегодняшний день самые известные модели программирования: – Императивная Процедурное программирование – Декларативная Функциональное программирование Логическое программирование – Структурная Модульное программирование Объектно-ориентированное программирование – Метапрограммирование Генерация кода Самомодифицирующийся код Рассмотрим эти модели подробнее. ^ Императивная модель – это парадигма программирования, характеризующаяся принципом последовательного изменения состояния вычислителя пошаговым образом. При этом управление изменениями полностью определено и полностью контролируемо. Один из подходов реализующих императивную модель программирования – ^ . При этом программа состоит из последовательности операторов (инструкций), задающих процедуру решения задачи. Основным является оператор присваивания, служащий для изменения содержимого областей памяти. Концепция памяти как хранилища значений, содержимое которого может обновляться операторами программы, является фундаментальной в императивном программировании. Императивное программирование наиболее пригодно для реализации небольших подзадач, где очень важна скорость исполнения на современных компьютерах. ^ Декларативная модель – это парадигма программирования, характеризующаяся принципом при котором описывается каково нечто, а не как его создать. Есть несколько подходов реализующих декларативную модель программирования: ^ – при котором процесс вычисления трактуется как вычисление значений функций в математическом понимании последних. Функциональное программирование предполагает обходиться вычислением результатов функций от исходных данных и результатов других функций, и не предполагает явного хранения состояния программы. Соответственно, не предполагает оно и изменяемость этого состояния. На практике отличие математической функции от понятия «функции» в императивном программировании заключается в том, что императивные функции могут опираться не только на аргументы, но и на состояние внешних по отношению к функции переменных, а также иметь побочные эффекты и менять состояние внешних переменных.[3] ^ – основанное на автоматическом доказательстве теорем, с использованием механизмов логического вывода информации с использованием заданных фактов и правил вывода, основанных на формальных исчислениях. Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов резолюций.[4] ^ Структурное программирование – это парадигма программирования, в основе которой лежит представление программы в виде иерархической структуры блоков. В соответствии с данной парадигмой:
^ – основанное на разбиении программы на независимые модули, каждый из которых компилируется отдельно от остальных. Такая модульность программного кода позволяет значительно уменьшить время перекомпиляции при изменениях, вносимых лишь в небольшое количество исходных файлов, и упрощает групповую разработку. ^ или объектное) – состоит в описании структуры и поведения проектируемой системы, то есть, фактически, определяет: из каких частей состоит система и в чём состоит ответственность каждой из частей, при этом основными концепциями являются понятия объектов и классов. Класс – это тип, описывающий устройство объектов. Это в чистом виде абстрактный тип данных, создаваемый программистом. Объект – сущность в адресном пространстве вычислительной системы, появляющаяся при создании экземпляра класса. Понятие «класс» подразумевает некоторое поведение и способ представления. Понятие «объект» подразумевает нечто, что обладает определённым поведением и способом представления.[5] 2.4 МетапрограммированиеМетапрограммирование – это парадигма программирования, основанная на создании программ, которые порождают другие программы как результат своей работы (в частности, на стадии компиляции), либо программ, которые меняют себя во время выполнения (самомодифицирующийся код). Есть несколько подходов реализующих модель метапрограммирования: Генерация кода – при этом подходе код программы не пишется вручную, а создается автоматически программой-генератором на основе другой, более простой программы. Реализуется двумя основными методами: Шаблоны. Решают задачу, если соблюдение «правил» сводится к вставке в программу повторяющихся (или почти повторяющихся) кусков кода. Помимо этого, обладают еще рядом достоинств: например, помогают повторному использованию. Внешне-языковые средства. Применяются в случаях, если простых средств вроде шаблонов недостаточно. Язык генератора составляется так, чтобы автоматически или с минимальными усилиями со стороны программиста реализовывать правила парадигмы или необходимые специальные функции. Фактически, это – более высокоуровневый язык программирования, а генератор – не что иное, как транслятор. Генераторы пишутся, как правило, для создания специализированных программ, в которых очень значительная часть стереотипна, либо для реализации сложных парадигм.[6] Основные парадигмы и подходы к решению задач в современных языках программирования представлены в таблице 2. Таблица 2 – Парадигмы и подходы языков программирования [2]
Современные языки программирования не ограничиваются какой-то одной парадигмой, а используют их несколько или даже являются мультипарадигмальными. Это обусловлено стремлением разработчиков расширить области применения языка, сделать его языком общего назначения, а не ориентированным на решение узкого круга задач. Использование почти всеми языками объектно-ориентированного подхода наряду с «классическим» процедурным, обусловлено возрастающей сложностью современных задач. Создание больших распределенных систем просто не мыслимо без создания структурной модели, а работа с объектами, в любых их проявлениях, значительно облегчает разработку и отладку таких систем. 3. ТрансляторыПоскольку текст, записанный на языке программирования, непонятен компьютеру, то требуется перевести его на машинный код. Такой перевод программы с языка программирования на язык машинных кодов называется трансляцией, а выполняется она специальными программами – трансляторами. Транслятор – обслуживающая программа, преобразующая исходную программу, предоставленную на входном языке программирования, в рабочую программу, представленную на объектном языке. В настоящее время трансляторы разделяются на две основные группы: компиляторы и интерпретаторы. 3.1 КомпиляторКомпилятор – это обслуживающая программа, выполняющая трансляцию на машинный язык программы, записанной на исходном языке программирования. Компилятор обеспечивает преобразование программы с одного языка на другой (чаще всего, в язык конкретного компьютера). Вместе с тем, команды исходного языка значительно отличаются по организации и мощности от команд машинного языка. Существуют языки, в которых одна команда исходного языка транслируется в 7–10 машинных команд. Однако есть и такие языки, в которых каждой команде может соответствовать 100 и более машинных команд. Кроме того, в исходных языках достаточно часто используется строгая типизация данных, осуществляемая через их предварительное описание. Программирование может опираться не на кодирование алгоритма, а на тщательное обдумывание структур данных или классов. Процесс трансляции с таких языков обычно называется компиляцией, а исходные языки обычно относятся к языкам программирования высокого уровня (или высокоуровневым языкам).[7] 3.2 ИнтерпретаторИнтерпретатор – программа или устройство, осуществляющее пооператорную трансляцию и выполнение исходной программы. Интерпретатор не порождает на выходе программу на машинном языке. Распознав команду исходного языка, он тут же выполняет ее. Простой интерпретатор – анализирует и тут же выполняет (собственно интерпретация) программу покомандно (или построчно), по мере поступления исходного кода на вход интерпретатора. Достоинством такого подхода является мгновенная реакция. Недостаток – такой интерпретатор обнаруживает ошибки в тексте программы только при попытке выполнения команды (или строки) с ошибкой. Интерпретатор компилирующего типа – это система из компилятора, переводящего исходный код программы в промежуточное представление, например, в байт-код или p-код, и собственно интерпретатора, который выполняет полученный промежуточный код (так называемая виртуальная машина). Достоинством таких систем является бо́льшее быстродействие выполнения программ (за счёт выноса анализа исходного кода в отдельный, разовый проход, и минимизации этого анализа в интерпретаторе). Недостатки – большее требование к ресурсам и требование на корректность исходного кода.[7] Достоинства интерпретаторов: – Бо́льшая переносимость интерпретируемых программ – программа будет работать на любой платформе, на которой есть соответствующий интерпретатор. – Как правило, более совершенные и наглядные средства диагностики ошибок в исходных кодах. – Упрощение отладки исходных кодов программ. Интерпретатор позволяет начать обработку данных после написания даже одной команды. – Меньшие размеры кода по сравнению с машинным кодом, полученным после обычных компиляторов. Недостатки интерпретаторов: – Интерпретируемая программа не может выполняться отдельно без программы–интерпретатора. Сам интерпретатор при этом может быть не очень компактным. – Интерпретируемая программа выполняется медленнее, поскольку промежуточный анализ исходного кода и планирование его выполнения требуют дополнительного времени в сравнении с непосредственным исполнением машинного кода, в который мог бы быть скомпилирован исходный код. – Практически отсутствует оптимизация кода, что приводит к дополнительным потерям в скорости работы интерпретируемых программ. Виды трансляторов современных языков программирования представлены в таблице 3. Таблица 3 – Трансляторы современных языков программирования [2]
Современные языки программирования используют в равной степени компиляцию и интерпретацию. Широкое использование компиляторов обусловлено большой скоростью работы программ, а также возможность использовать полностью все возможности конкретных платформ и создание «машинно-зависимых» участков кода и программ. Использование интерпретации, напротив, позволяет оградить программиста от особенностей конкретных платформ, что наиболее востребовано в связи с развитием Интернет–технологий. Среди интерпретируемых языков используются в основном интерпретаторы компилирующего типа, что обусловлено значительным увеличением скорости работы программ в сравнении с простыми интерпретаторами. При разработке больших и сложных приложений такое увеличение скорости может быть очень существенным. ^ Тип – относительно устойчивая и независимая совокупность элементов, которую можно выделить во всём рассматриваемом множестве. Математически тип может быть определён двумя способами:
Типы данных различаются уже на нижних уровнях системы. Так, например, даже в Ассемблере х86 различаются типы «целое число» и «вещественное число». Это объясняется тем, что для чисел рассматриваемых типов отводятся различные объёмы памяти, используются различные регистры микропроцессора, а для операций с ними применяются различные команды Ассемблера и различные ядра микропроцессора. В языках программирования типы данных не всегда строго соответствуют подобным математическим типам. Например, тип “целое число” большинства языков программирования не соответствует принятому в математике типу “целое число”, так как в математике указанный тип не имеет ограничений ни сверху, ни снизу, а в языках программирования эти ограничения есть. Как правило, в языках и системах имеется множество целых типов, отличающихся допустимым диапазоном значений (определяемым объёмом занимаемой памяти).[1] Наиболее часто используемые типы данных: Простые:
Существует два вида контроля типов:
^ Поскольку переменная связывается с типом в момент присваивания и в ходе выполнения программы может менять свой тип, контролировать на этапе проектирования соответствие такой переменной вызываемым для нее функциям и методам невозможно. Поэтому транслятор встраивает в программу операции связанные с динамической проверкой типа. Отсюда вытекают явные недостатки динамической типизации:
В тоже время отсутствие проверки типов на этапе написания и трансляции программы ведет к возникновению некоторых достоинств:
^ При таком виде контроля переменная связывается с типом в момент объявления ещё при написании программы и проверяется на соответствие при каждом её использовании программистом. При таком подходе довольно сложно найти недостатки, однако без них не обходится:
Виды типизации в современных языках программирования Представлены в таблице 4. Таблица 4 – Типизация в языках программирования [2]
В современном программировании используются языки, как со статической типизацией, так и с динамической. Следует отметить, что динамическая типизация больше характерна для интерпретируемых языков, а статическая типизация для компилируемых. Это обусловлено возможностью интерпретатора при выполнении команды анализировать типы используемых данных и производить приведение типов, что для скомпилированной программы выполнить гораздо сложнее. Однако, в языках со статической типизацией возможно использование динамических свойств по работе с типами. Для этого можно воспользоваться специальными агрегаторами (объединением, классом Variant и т.п.), которые позволят сохранить информацию о типе значения. При использовании подобных агрегаторов возникают накладные расходы сравнимые с использованием динамической типизации и некоторые неудобства в работе (явное приведение типа). В языках с динамической типизацией организация статической проверки типов задача сложная. Если статическая типизация поддерживается на уровне языка, то компилятор может провести проверку типов и добиться полного исключения лишних вычислений при применении операторов. Если такой поддержки в языке нет, то есть возможность её реализовать путем добавления дополнительных проверок и, следовательно, накладными расходами. ЗАКЛЮЧЕНИЕЧто бы быть современным язык программирования должен отвечать всем современным требованиям и соответствовать тем задачам, которые встают перед программистом сегодня. Именно поэтому в рассмотренных языках программирования представлено большинство методов и способов решения задач по созданию систем обработки информации. Сегодня предоставляемое программисту многообразие возможностей позволяет, начиная новый проект любой сложности, выбрать язык программирования наиболее подходящий для его реализации. При выборе языка программирования необходимо учитывать требования проекта к скорости работы, потребляемым ресурсам, необходимости кроссплатформенного использования, а также сроки реализации проекта. Кроме того, для некоторых проектов может стать существенным фактор популярности языка программирования. Для популярного языка имеется, как правило, большое количество учебной и справочной литературы, кроме того, использованный язык программирования может стать решающим фактором при выборе программы конечным пользователем. Не менее важно при выборе языка программирования учитывать опыт других разработчиков при решении похожих задач, это поможет избежать типичной ошибки – «изобретение колеса». Рассмотрев основные концепции современных языков программирования можно выделить несколько наиболее актуальных задач стоящих сегодня перед программистами: Проектирование межплатформенных приложений – не зависящих от используемой платформы. Разработка Интернет–приложений – работающих через Интернет, но не поддерживаемых браузером непосредственно. Создание Web–приложений – клиент–серверных архитектур. Возможность быстрого создания приложений и средств автоматизации. Также актуальны приложения полностью и эффективно использующие все ресурсы современных платформ.^
www.studmed.ru Реферат - История языков программированияМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ ГВУЗ «КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ им. В. Гетмана» КАФЕДРА ИНФОРМАЦИОННЫХ СИСТЕМ И ТЕХНОЛОГИЙ ОТЧЕТ ПО ПРАКТИКЕ по дисциплине: «Экономическая информатика» Симферополь 2010 ВВЕДЕНИЕ В первом разделе я рассматриваю вопрос касающейся «Истории языков программирования». По мере развития вычислительной техники возникали разные методики программирования. На каждом этапе создавался новый подход, который помогал программистам с растущим усложнением программ. Первые программы заключались в установке ключевых переключателей на передней панели вычислительного устройства. Очевидно, таким способом можно было составить только небольшие программы. С развитием компьютерной техники появился машинный язык, с помощью которого программист мог задавать команды, оперируя с ячейками памяти, полностью используя возможности машины. Однако использование большинства компьютеров на уровне машинного языка затруднительно, особенно это касается ввода-вывода. Поэтому от его использования пришлось отказаться. На современном этапе появилось множество языков, которые позволяют выполнять самые различные оп свой структуре и возможностям функции. Во втором разделе я рассматриваю создание и использование формул в Excel. Формулы в Excel помогают решать экономические задачи, не прилагая больших усилий и не требуя обширных знаний в области математики и экономики. Формулы служат для выполнения расчетов с использованием значений, содержащихся в других ячейках. Формулы Excel способны выполнять простейшие арифметические действия, сложные вычисления, а также логические проверки. Более того, они позволяют преобразовывать числа или создавать альтернативные сценарии c немедленным вычислением результатов, без необходимости ввода дополнительных данных. В третьем разделе я описываю создание свого сайта на тему: «Сайт дома отдыха». В настоящее время это очень актуально и на прямую связано с моей будущей профессией. РАЗДЕЛ 1. ИСТОРИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ Физические принципы работы электронных устройств ЭВМ таковы, что компьютер может воспринимать команды, состоящие только из единиц и нулей, т. е. машинный код. На начальной стадии развития ЭВМ человеку было необходимо составлять программы на языке, понятном компьютеру, в машинных кодах. Каждая команда состояла из кода операций и адресов операндов, выраженных в виде различных сочетаний единиц и нулей. Как показала в дальнейшем практика общения с компьютером, такой язык громоздок и неудобен. При пользовании им легко допустить ошибку, записав не в той последовательности 1 или 0. Программу очень трудно контролировать. Кроме того, при программировании в машинных кодах надо хорошо знать внутреннюю структуру ЭВМ, принцип работы каждого блока. И самое плохое в таком языке, что программирование в машинных кодах требует от программиста много времени, труда, повышенного внимания. Это привело к необходимости найти такое средство, которое позволит более просто наладить общение человека и компьютера. И такое средство было найдено: различные символические языки и соответствующие им трансляторы (системы программирования). Характеристика языков программирования Язык программирования — это специальный язык, на котором пишут команды для управления компьютером. Языки программирования созданы для того, чтобы людям было проще читать и писать для компьютера, но они затем должны транслироваться (транслятором или интерпретатором) в машинный код, который только и может исполняться компьютером. Языки программирования можно разделить на языки высокого уровня и языки низкого уровня. Язык низкого уровня — это язык программирования предназначенный для определенного типа компьютера и отражающий его внутренний машинный код; языки низкого уровня часто называют машинно-ориентированными языками. Их сложно конвертировать для использования на компьютерах с разными центральными процессорами, а также довольно сложно изучать, поскольку для этого требуется хорошо знать принципы внутренней работы компьютера. Язык высокого уровня — это язык программирования, предназначенный для удовлетворения требований программиста; он не зависит от внутренних машинных кодов компьютера любого типа. Языки высокого уровня используют для решения проблем и поэтому их часто называют проблемно-ориентированными языками. Каждая команда языка высокого уровня эквивалентна нескольким командам в машинных кодах, поэтому программы, написанные на языках высокого уровня, более компактны, чем аналогичные программы в машинных кодах. Краткая история языков программирования. Хронология Всю историю компьютерной индустрии и компьютерных наук с определенной точки зрения можно представить как историю развития языков программирования. Меняются времена, усложняются задачи, то, что раньше требовало человеко-лет, нынче энтузиасты делают на коленке за несколько недель; накоплена огромная масса типовых решений, типовых библиотек и типовых программистов. А создание, развитие и изменение языков программирования идет полным ходом. Объект исследования темы – это языки программирования, которые в разное время и в разных условиях предлагались и предлагаются как альтернатива привычному и общепринятому; их судьба, свойства и шансы. Сейчас я предложу Вам краткую историю языков программирования: 1801 — Иосиф Мария Жаккард с помощью перфокарт вышивает «hello world» на ткани. Хабровчане тех времен недовольны отсутствием хвостовой рекурсии, многопоточности и заглавных букв. 1842 — Ада Лавлейс пишет первую программу. Её успехам препятствует маленькая проблемка — компьютера для исполнения этой программы ещё не изобрели. Через полтора века архитекторы корпоративных приложений переймут технику Ады по написанию неисполняемых программ и назовут этот метод UML. 1936 — Алан Тьюринг изобретает все языки, которые теоретически могут существовать, но не успевает запатентовать их. 1936 — Алонзо Черч тоже изобретает все возможные языки, только лучше. Его лямбда-исчисление непопулярно, потому что непохоже на С. Критиков не смущает, что язык С еще не изобрели. 1940-е — Различные «компьютеры» «программируют», паяя провода и замыкая контакты. 1957 — Джон Бакус и IBM изобретают Фортран. По поводу IBM и Фортрана не шутят. Компилятор Фортрана выдает ошибку, если на программисте нет галстука. 1958 — Джон МакКарти и Пол Грэм придумывают ЛИСП. Популярности ЛИСПа мешает истощение мировых запасов круглых скобок, к счастью, запасы фигурных и угловых скобок практически неисчерпаемы. Тем не менее, ЛИСП (в наше время известный как Лисп, иногда Arc) — общепризнанный стандарт в области «фундаментальных концепций информационных технологий, таких как рекурсия и снисхождение» 1964 — Джон Кемни и Томас Курц пишут БЕЙСИК, неструктурированный язык для людей, не разбирающихся в программировании. 1970 — Гай Стил и Джеральд Зюсман создают Схему. В результате их усилий появляется «Всемогущая Лямбда», а затем «Всемогущая Лямбда, Универсальная Мультиварка»… 1970 — Никлас Вирт создает процедурный язык Паскаль. Многие недовольны отличным от С синтаксисом оператора присваивания. Критиков не смущает, что язык С еще не изобрели. 1972 — Деннис Ричи изобретает пистолет, стреляющий в обе стороны одновременно. Не удовлетворенный числом смертей и увечий, приносимых этим устройством, он создает язык С и Юникс. 1972 — Ален Колмеро изобретает логический язык Пролог. Задача-максимум ученого — наделить компьютер интеллектом двухлетнего ребенка. Он блестяще справляется с задачей, написав программу, отвечающую «Нет!» на любой запрос. 1973 — Робин Милнер пишет МЛ, язык на основе теории типов M&M. МЛ порождает СМЛ, обладающий формально описанной семантикой. В число языков семейства МЛ входят OCaml, F# и Visual Basic. 1980 — Алан Кей пишет Smalltalk и придумывает термин «объектно-ориентированный». На просьбу объяснить он отвечает «Программы в ООП — просто объекты». На вопрос, из чего состоят объекты, он отвечает «из объектов» и объясняет «все состоит из объектов, в том числе и объекты. И стоит на четырех слонах.» 1983 — Бьёрн Страуструп берет язык С, лепит поверх него все, что приходит на ум, и называет это С++. Чтобы программы скомпилировались за разумное время, их приходится отправлять в будущее искусственному интеллекту Скайнет. Зачем это нужно Скайнету, неясно. 1986 — Брэд Кокс и Том Лав придумывают Objective-C. По их словам, он «сочетает безопасность С с невероятной скоростью Smalltalk». 1987 — Ларри Волл засыпает на клавиатуре. Проснувшись, он принимает строку на мониторе за программу на языке, который Господь предначертал написать своему пророку Ларри. Так появляется Перл. 1990 — Комиссия в составе Саймона Пейтон-Джонса, Пола Худака, Филиппа Водлера, Эштона Катчера и Общества по защите прав животных проектирует Хаскелл — чисто функциональный язык с ленивыми вычислениями. 1991 — Голландский программист Гвидо ван Россум отправляется в Аргентину. Перенеся загадочную операцию, он возвращается с шрамом на черепе, пишет Питон, толпы поклонников провозглашают его Пожизненным Диктатором, и он заявляет, что «есть только один способ». 1995 — Брендан Эйк собирает ошибки всех известных языков, добавляет несколько новых и объединяет все в Livescript. Через некоторое время язык переименовывают в Javascript, чтобы воспользоваться популярностью языка Java. Через некоторое время язык переименовывают в ECMAscript. 1996 — Джеймс Гослинг придумывает Яву. Ява — довольно многословный статически типизированный объектно-ориентированный язык на основе классов, со сборкой мусора, одиночной диспетчеризацией вызовов, одиночным наследованием реализации и множественным наследованием интерфейсов. Sun громко провозглашает Java самым инновационным языком. 2001 — Андерс Хейлсберг придумывает C1. C1 — довольно многословный статически типизированный объектно-ориентированный язык на основе классов, со сборкой мусора, одиночной диспетчеризацией вызовов, одиночным наследованием реализации и множественным наследованием интерфейсов. Microsoft громко провозглашает C1 самым инновационным языком. Основные виды языков программирования
РАЗДЕЛ 2. EXCEL. СОЗДАНИЕ И ИСПОЛЬЗОВАНИЕ ФОРМУЛ Exсel самая популярная на сегодняшний день программа работы с электронными таблицами. С ее помощью ведут разнообразные списки, каталоги, таблицы, составляют финансовые и статистические отчеты, обеспечивают данные опросов общественного мнения, обрабатывают результаты научных экспериментов, ведут учет и т.д. Использование формул в Excel является одной из главных функций работы. В формулу может входить до 1024 символов. Формула может включать в себя следующие элементы: функции, ссылки, операторы, константы. В формулах можно использовать ссылки на ячейки. В ячейке на экране может отображаться либо формула, либо результат вычислений по этой формуле в зависимости от значения переключателя формулы. 2.1 Создание и использование формул в Excel Формулы – это выражение, начинающееся со знака равенства и состоящее из числовых величин, адресов ячеек, функций, имен, которые соединены знаками арифметических операций. К знакам арифметических операций, которые используются в Excel относятся: сложение; вычитание; умножение; деление; возведение в степень. Некоторые операции в формуле имеют более высокий приоритет и выполняются в такой последовательности: возведение в степень и выражения в скобках; умножение и деление; сложение и вычитание. Результатом выполнения формулы является значение, которое выводится в ячейке, а сама формула отображается в строке формул. Если значения в ячейках, на которые есть ссылки в формулах, изменяются, то результат изменится автоматически. Формула является основным средством для анализа данных. С помощью формул можно складывать, умножать и сравнивать данные, а также объединять значения. Формулы подчиняются определенному синтаксису, в который входит знак равенства (=), вычисляемые элементы (операнды) и операторы. Операндами могут быть: константы, ссылки или диапазоны ссылок, заголовки, имена или функции. Координаты ячеек можно вводить, указывая курсором на нужную ячейку. Как создать формулу с помощью мыши: Поместить курсор в ячейку, в которую хотим ввести формулу. Ввести знак =. Поместить курсор в ячейку, координаты которой должны стоять в начале формулы, и щелкнуть на ней. Ввести оператор действия ( + или — ) или другой символ. Переместить курсор в ячейку, координаты которой хотите использовать и щелкнуть. Формулы используются для вычислений значений на основе комбинации других значений ( цифры, координаты ячеек, арифметические операторы ( +, -, *,/), а также другие формулы; имена других областей рабочей таблицы координаты ячеек из других таблиц. Как ввести формулу. При вводе в ячейку текста или числа, Excel предполагает, что это значение. Значения Excel отображает точно в том виде, в каком они были введены (преобразования возможны, только если для данной ячейки используется какое либо форматирование). Однако если первый введенный символ представляет собой знак равенства, Excel знает, что вводится формула. После ввода формула сохраняется здесь же, однако в ячейке вместо самой формулы отображается полученный с ее помощью результат. Если выделить ячейку с формулой, эта формула отобразится в строке формул, где ее можно редактировать. В ячейке с формулой отображается результат Если на рабочем листе имеется ячейка, значение которой начинается со знака #, знайте, что так Excel сообщает, что не может вычислить (или отобразить) результат с помощью содержащейся в этой ячейке формулы. Подобным образом обозначаются так называемые коды ошибок. Чтобы в ячейке вместо кода ошибки отобразился правильный результат, необходимо устранить проблему либо отредактировав формулу, либо изменив содержимое ячеек, ссылки на которые имеются в формуле. 2.2 Применение операторов в формулах Операторами обозначаются операции, которые следует выполнить над операндами формулы. В Microsoft Excel включено четыре вида операторов — арифметические, текстовые, а также операторы сравнения и адресные операторы. Арифметические операторы используются для выполнения основных математических вычислений над числами. Результатом выполнения арифметической операции всегда является число. Обозначаются следующими символами: + сложение – вычитание или унарный минус * умножение / деление % процент ^ возведение в степень Операторы сравнения используются для обозначения операций сравнения двух чисел. Результатом выполнения операции сравнения является логическое значение ИСТИНА или ЛОЖЬ. Обозначаются следующими символами: = равно > больше < меньше >= больше или равно <= меньше или равно <> не равно Текстовый оператор & используется для обозначения операции объединения последовательностей символов в единую последовательность. Например, результатом выполнения выражения «Северный» &" ветер" будет: «Северный ветер». Адресные операторы объединяют диапазоны ячеек для осуществления вычислений. Обозначаются символами: : — оператор диапазона, который ссылается на все ячейки между границами диапазона включительно; , — оператор объединения, который ссылается на объединение ячеек диапазонов; пробел — оператор пересечения, который ссылается на общие ячейки диапазонов. Порядок выполнения действий в формулах Если формула состоит из нескольких операторов, действия выполняются в следующем порядке: : (двоеточие), (запятая) (пробел) операторы ссылок –унарный минус (например, –1) %процент ^возведение в степень * и /умножение и деление + и –сложение и вычитание &текстовый оператор = < > <= >= <>операторы сравнения Чтобы изменить порядок обработки операторов, расставьте круглые скобки. язык программирование ассемблер бейсик 2.3 Использование функций в Excel Функциив Excel используются для выполнения стандартных вычислений в рабочих книгах. Значения, которые используются для вычисления функций, называются аргументами. Значения, возвращаемые функциями в качестве ответа, называются результатами. Помимо встроенных функций вы можете использовать в вычислениях пользовательские функции, которые создаются при помощи средств Excel. Чтобы использовать функцию, нужно ввести ее как часть формулы в ячейку рабочего листа. Последовательность, в которой должны располагаться используемые в формуле символы, называется синтаксисом функции. Все функции используют одинаковые основные правила синтаксиса. Если вы нарушите правила синтаксиса, Excel выдаст сообщение о том, что в формуле имеется ошибка. Если функция появляется в самом начале формулы, ей должен предшествовать знак равенства, как и во всякой другой формуле. Аргументы функциизаписываются в круглых скобках сразу за названием функции и отделяются друг от друга символом точка с запятой “;”. Скобки позволяют Excel определить, где начинается и где заканчивается список аргументов. Внутри скобок должны располагаться аргументы. Помните о том, что при записи функции должны присутствовать открывающая и закрывающая скобки, при этом не следует вставлять пробелы между названием функции и скобками. В качестве аргументов можно использовать числа, текст, логические значения, массивы, значения ошибок или ссылки. Аргументы могут быть как константами, так и формулами. В свою очередь эти формулы могут содержать другие функции. Функции, являющиеся аргументом другой функции, называются вложенными. В формулах Excel можно использовать до семи уровней вложенности функций. Задаваемые входные параметры должны иметь допустимые для данного аргумента значения. Некоторые функции могут иметь необязательные аргументы, которые могут отсутствовать при вычислении значения функции. Типы функций : Для удобства работы функции в Excel разбиты по категориям: функции управления базами данных и списками, функции даты и времени, DDE/Внешние функции, инженерные функции, финансовые, информационные, логические, функции просмотра и ссылок. Кроме того, присутствуют следующие категории функций: статистические, текстовые и математические. При помощи текстовых функций имеется возможность обрабатывать текст: извлекать символы, находить нужные, записывать символы в строго определенное место текста и многое другое. С помощью функций даты и времени можно решить практически любые задачи, связанные с учетом даты или времени (например, определить возраст, вычислить стаж работы, определить число рабочих дней на любом промежутке времени). Логические функции помогают создавать сложные формулы, которые в зависимости от выполнения тех или иных условий будут совершать различные виды обработки данных РАЗДЕЛ 3. САЙТ ДОМА ОТДЫХА Темой заданного мне сайта является Сайт дома отдыха, который я назвала «WHITE STAR». Целью создания моего сайта является привлечение максимального количества туристов, которые могли бы отдохнуть, оздоровиться, получить массу удовольствий в пансионате «WHITE STAR», а также точное описание и дача полной информации о доме отдыха, о ценах, об услугах, которые там предоставляются и качестве обслуживания. Мой сайт состоит из 7 страниц, первая страница, которая главная называется «***WHITE STAR***», остальные 6 придаточные, в которых использовались следующие теги: теги для создания фона страницы:<body bgcolor=>; теги блочной структуры:<div id>, <div class>; теги, для форматирования текста <b>, <br>, теги </iframe> -контейнер, хранящий независимые html-файлы.Для связи между страницами используем гиперссылки. В частности применяем тег <a href=”*.htm”>. Для структуризации информационных данных на Web – страницах я использовала технологию объединения информации в таблицу. Для создания таблицы используется тег <table>, и также можем внутри этого тега задать толщину рамки <border=”*”>, цвет рамки <bordercolor=”*”>, фон таблицы <bgcolor=”*”> и т.д. Задаём заголовок таблицы <caption>, строки <tr>, столбцы <td>, заголовки столбцов <th>. В работе также использовано множество других тегов: форматирования текста: размер <font size=”*”>, тип шрифта <font face=”*”>, цвет текста <font color=”*”>, выравнивание по правому краю <p align=right>, по центру <p align=center>, по левому краю <p align=left>, курсив <i>, жирный шрифт <b>, подчеркнутый <u> и др. Вставка изображения <img src=”*.jpg alt=”*”> и альтернативный текст данного изображения. Разрыв строки <br>, вставка линии <hr>. Также я использовала маркированный список <ul>. ЗАКЛЮЧЕНИЕ В первой части своей работы я раскрыла тему: «История развития языков программирования». Тема достаточно объемная и очень познавательная. Я попыталась раскрыть и объяснить, что такое Языки программирования, какие существуют виды, а также историю возникновения и по этапного развития. Во второй части отчета представлена возможность создания и использования формул в Excel. Так как на сегодняшний день Excel предоставляет широкий спектр возможностей по решению сложнейших задач, с помощью выведения формул. С ее помощью ведут разнообразные списки, каталоги, таблицы, составляют финансовые и статистические отчеты, обеспечивают данные опросов общественного мнения, обрабатывают результаты научных экспериментов, ведут учет и т.д. В третьем разделе представлен отчет по созданию собственного сайта, с использованием различных тегов на тему: «Сайт дома отдыха». СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 1. Роберт В Себеста «Основные концепции языков программирования» 2001 г. 672 с. 2. Сингаевская Галина Ивановна «Функции в Microsoft Office Excel. Решение практических задач» 2005 г. 880 с. 3. Электронные таблицы Excel 4.0: Практ. Пособ./Пер. с нем. – М.: ЭКОМ., 1994 [18 с.] 4. office.microsoft.com/ru-ru/help/HP010186791049.aspx 5. www.5-ballov.com/ 6. www.bankreferatov.ru/ 7. on-line-teaching.com/excel/lsn003.html 8. ru.wikipedia.org 9. www.postroika.ru/ www.ronl.ru |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|