Реферат: Языки програмирования - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

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

Банк рефератов / Информатика, информационные технологии

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Архив Zip, 37 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникального реферата

Узнайте стоимость написания уникальной работы

10 Иркутский Государственный Технический Университет Реферат На тему: языки программир ования Выполнил: студент группы РДТв-9 4 -1 Осипов И.Ф. Руководитель: Иркутск - 1998г. Введение Повышение производительности компьютеров и перемены в составе исп ользуемого ПО делают роль языков описания сценариев в создании приложе нии будущего все более и более важной. Эти языки отличаются от языков про граммирования системного уровня тем , что их основное назначение – связ ывать различные компоненты и приложения друг с другом , выполняя роль св оего рода клея. В них находят применение бестиповые подходы к описанию д анных, что позволяет вывести программирование на более высокии уровень и ускорить процесс разработки по сравнению с языками системного уровня. За прошедшие 15 лет в методологии написания программ для компьютеров про изошла радикальная перемена. Она состоит в том, что разработчики перешли от языков программирования системного уровня, таких как С и С++, к языкам о писания сценариев, примерами которых могут служить Perl Tcl . Хот я в эту перемену оказалось вовлечено огромное количество людей , лишь не многие из них осознают , что в действительности происходит , и еще меньше н айдется таких , кто бы смог объяснить причины. Эти языки создавались д ля различных целей, что обусловило ряд фундаментальных различии между н им. Системные разрабатывались для построения структур данных и алгорит мов “ с нуля ” , начиная от таких примитивных элементов , как слово памяти комп ьютера . В отличие от этого , языки описания сценариев создавались для свя зывания готовых программ . Их применение подразумевает наличие достато чного ассортимента мощных компонентов , которые требуется только объед инить друг с другом . Языки системного уровня используют строгий контрол ь типов, что помогает разработчикам приложении справляться со сложными задачами ; языки же описания сценарие в не используют понятие типа , что упрощает установление связей между ко мпонентами и ускоряет разработку прикладных систем. Языки этих двух типов является взаимодополняющими , и боль шинство компьютерных платформ еще с середины 60-х годов оснащаются как те ми , так и другими . В компонентных инфраструктурах они применяются , как п равило , совместно компоненты создаются на языках программирования сис темного уровня , а для их связи между собой используются языки описания с ценариев . Однако ряд современных тенденции , включая появление более бы стрых машин и более совершенных языков описания сценариев , повышение зн ачимости графического интерфейса пользователя и компонентных архитек тур , а также рост популярности Internet , чре звычайно расширили сферу применимости языков описания сценариев .Разв итие этих тенденции продолжиться и в следующем десятилетии , вследствие чего все больше приложении будет создаваться целиком и полностью на язы ках описания сценариев , а роль языков программирования системного уров ня сведется почти исключительно к созданию компонентов. Языки программирования системного уровня Чтобы осознать различие между языками описания сценариев и сист емными , полезно вспомнить историю развития последних. Впервые они появи лись в качестве альтернативы языкам ассемблера, позволяющим использов ать в программе практически все особенности конкретной аппаратной под системы. Каждому утверждению такого языка соответствует ровно одна маш инная команда, и программисту приходиться иметь дело с такими низко уров невыми деталями, как распределение регистров и последовательности выз ова процедур. В результате написание и сопровождение крупных программ н а языке ассемблера оказывается чрезвычайно сложным делом. К концу 50-х годов начали появляться языки программирования более высоко го уровня, такие как Lisp , Fortran , ALGOL . В них уже не было точного соответствия между языковыми констр укциями и машинными командами. Преобразование строк исходного кода в по следовательности двоичных команд осуществлялось компилятором. Со врем енем их число пополнилось языками PL /1, Pascal , C , C ++, Java . Все они менее эффек тивно используют аппаратуру по сравнению с языками ассемблера, но позво ляет быстрее создавать приложения. В результате им удалось практически полностью вытеснить языки ассемблера при создании крупных приложении. Языки программирования более высокого уровн я Языки программирования системного уровня отличаются от ассембл еров, во-первых, тем, что они являются более высокоуровневыми, и, во-вторых, используют более строгий контроль типов. Термин “ высокоуровневый ” озн ачает следующее : многие детали обраб атываются автоматически, а программисту для создания своего приложени я приходится писать меньшее количество строк. В частности : - Распределением регистр ов занимается компилятор, так что программисту не надо писать код, обесп ечивающий перемещение данных между регистрами и памятью; - Последовательности вызо ва процедур генерируются автоматически ; программисту нет необходимости описывать помещение аргументов функции в стек и их извлечение оттуда ; - Для описания структур уп равления программист может использовать также ключевые слова, как if , while ; последовательности машинных команд, соот ветствующие этим описаниям компилятор генерирует динамически. Типизация Второе различие между языками ассемблера и языками программирова ния системного уровня состоит в типизации. Я использую этот термин для о бозначения того, до какой степени значение информации бывает определен о еще прежде, чем приходит время ее использования в программе. В сильно ти пизированных языках требуется, чтобы программист заранее декларировал способ использования каждого фрагмента информации, и затем уже языковы е средства препятствуют применению ее каким-либо иным способом. В слабо же типизированных языках на способ обработки информации не налагается предварительных ограничении ; интерпрет ация каждого элемента данных определяется только тем, как он фактически используется, без учета каких-либо предварительных объявлении. Современные компьютеры устроены таким образом, что им не известно понятие типа. Каждое слово памяти может содержать значение люб ого типа ; целое число, число с плавающе й запятой, указатель или машинную команду. Интерпретация значения опред еляется способом его использования. Если указатель следующей машинной команды указывает в процессе исполнения машиннои команды на некоторое слово в памяти, то оно и рассматривается как команда ; если адрес слова задан в параметрах команды целочисленн ого сложения, то его значение и обрабатывается как целое число ; и т. д. Одно и то же слово памяти может использов аться в различных случаях разными способами. В противоположность этому для современных языков програ ммирования характерна строгая типизация. Каждая переменная в языке про граммирования системного уровня должна быть объявлена с указанием кон кретного типа, такого как целое число или указатель на строку символов, и затем использоваться только соответствующими этому типу способами. Данные и программный код разделены ; создание нового кода по ходу исполнения программы затруднено, е сли вообще возможно. Переменные могут объединяться в структуры или объе кты с четко определенной субструктурои и методами манипулирования сво ими компонентами. Объект одного типа не может быть использован в ситуаци и, где предписано применение объект другого типа. Языки описания сценариев создавались для связывания го товых программ. Их применение подразумевает наличие достаточного ассо ртимента мощных компонентов, которые требуется только объединить друг с другом. Типизация дает ряд преимуществ. Во-первых, крупные программы становятся благодаря ей более управляемыми. Четкость системы типов делает для прог раммиста ясным, для чего предназначены те или иные данные ; он легко может различать их между собой и соот ветственно использовать. Во-вторых, компиляторы используют информацию о типах для обнаружения некоторых видов ошибок, таких как попытка, испол ьзовать число с плавающей запятой в качестве указателя. В-третьих, типиз ация повышает производительность приложении, позволяя компиляторам ге нерировать более специализированный код. Например, если компилятору из вестно, что некоторая переменная всегда содержит целочисленные значен ия, он может генерировать для манипулирования ею целочисленные инструк ции ; если же тип переменой компилятор у неизвестен, то приходиться вставлять дополнительные инструкции для п роверки типа во время исполнения. На рисунке 1 представлено распределение ряда языков про граммирования по мощности и степени строгости типизации. Языки описания сценариев Языки описания сценариев, такие как Perl , Python , Rexx , Tcl , Visual Basic и языки оболочек UNIX , предпологают стиль программирован ия, весьма отличныи от характерного для языков системного уровня. Они пр едназначаются не для написания приложении с “ нуля ”, а для комбинирования компонентов, набор которых создает ся заранее при помощи других языков. Например, Tcl , Visual Basic могут использоваться для построени я пользовательских интерфеисов из имеющихся элементов управления, а яз ыки описания сценариев для оболочек UNIX применяются для формирования “ конвейеров ” обработки потоко в данных из набора стандартных фильтров. Языки описания сценариев часто применяются и для дополнения готовых компонентов новыми возможностями ; однако эта деятельность редко охват ывает создание сложных алгоритмов или структур данных, которые уже обыч но бывают уже заложены в компоненты. Иногда языки описания сценариев даж е называют связующими или языками системной интеграции. Как правило, языки описания сценариев не типизированы Для языков описания сценариев характерно отсутствие типизаци и, которая только усложнила бы задачу соединения компонентов. Все элемен ты в них выглядят и функционируют одинаково и являются полностью взаимо заменяемыми. Например, в Tcl или Visual Basic переменная может содержать в однои точке программы строку, а в друг ой – целое число. Код и данные также часто бывают взаимозаменяемы. Напри мер, Tcl , Visual Basic переменная может сод ержать в одной точке программы строку, а в другой - целое число. Код и данны е также часто бывают взаимозаменяемы, так что программа может генериров ать другую программу -– и сразу же запускать ее исполнение. Обычно языки описания сценариев используют переменные строковых типов, которые обе спечивают единообразный механизм представления для различных сущност ей. Отсутствие в языке деления переменных на типы упрощает соединение комп онентов между собой. Нет априорных ограничении на то, каким образом може т использоваться тот или иной элемент, а все компоненты значения предста вляются в едином формате. Таким образом, компонент или значение могут бы ть использованы в любой ситуации ; будучи спроектированы для одних способов применения, они могут оказаться заде йствованы совершенно иными, о которых их создатель никогда не помышлял. Например, в UNIX – оболочках работа любо й программы – фильтра включает чтение данных из входного потока и запис ь их в выходной поток. Любые две такие программы могут быть связаны путем назначения выходного потока одной в качестве входного потока другой. Сл едующая команда оболочки представляет систему из трех фильтров, подсчи тывающую в выделенном фрагменте текста строки, содержащие слово “ scipting ”: Select | grep scripting | wc Программа select считывает текст, выделенный в данный момент на экране, и выводи т его свои выходной поток ; фильтр grep считывает входной пот ок и пропускает на выход строки, содержащие слово “ scripting ”; а программа wc подсчитывает число строк в своем потоке. Любой из подобных компоне нтов может найти применение во множестве различных ситуации, решая кажд ый раз иную общую задачу. Сильная типизация языков программирования сис темного уровня затрудняет повторное использование кода. Она поощряет п рограммистов к созданию большого количества несовместимых друг с друг ом интерфейсов, каждый из которых требует применение объектов своего ти па. Компилятор не позволяет объектам других типов взаимодействовать с э тим интерфейсом, не смотря на то, что результат, мог бы оказаться и весьма полезным. Таким образом, чтобы использовать новый объект с существующем интерфейсом, программисту приходится писать “ переходник ” , преобразующий о бъект к типу, на который рассчитан интерфейс. А применение “ переходника ” требует, в свою очередь, перекомпиляции части или даже всего прило жения целиком. Доминирующий в настоящее время способ распространения П О в виде двоичных файлов делает этот подход невозможным. Чтобы оценить преимущества бес типо вого языка программирования, рассмотрим следующий пример на языке Tcl : Button .b – text Hello! -font Times 16 – comand puts hello . Эта команда создает на экране новую кнопку с надписью на ней Hello ! шрифтом Times 16 п унктов, при нажатии, на которую выводится короткое сообщение hello . В одной строке здесь уместил ось шесть элементов различных типов : назв ание команды ( button ) , название кнопки ( . b ) , идентификаторы атрибутов (- text , - font , - command ) , прос тые строки ( Hello ! hello ) , спецификация шр ифта ( Times 16) , состоящая из названия начертания ( Times ) и размера в пунктах ( 16) , а также целый Tcl - сценарии ( puts hello ) . Все элементы представляются единообразно – в виде с трок. В данном примере атрибуты могли быть перечислены в произвольном по рядке, а неупомянутым атрибутам (их насчитывается более 20) будут присвоен ы значения по умолчанию. В случае реализации на Java тот же самый пример потребовал бы семи строк кода, составляющих два метода. Для С++ с использованием библиотеки Microsoft Foundation Classes ( MFC ) масштабы ув еличились примерно до 25 строк кода, образующих три процедуры. Один только выбор шрифта требует нескольких обращении к функциям MFC Cfont * fontPtr = new Cront (); fontPtr->CreteFont (16, 0, 0, 0, 700, 0, 0, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH| FF_DONTCARE, “Times New Roman”); buttonPtr -> SetFont ( fontPtr ); Можно было бы обоитись без значительнои части этого ко да, если бы не строгая типизация. Чтобы задать шрифт для кнопки, необходим о обратиться к методу SetFont ; однако он требует передачи в качестве аргумента указателя на объек т CFont . Приходиться объ являть и инициализировать новый объект. Инициализацию объекта CFont выполняет его метод CreateFont , которыи имеет жесткии интерфеис, требующии задани я 14 различных аргументов. В TCL существе нные характеристики шрифта (начертание Times и кегль 16 пунктов) могут быть указаны непосредственно без каких-либо объявлении или преобразовании. Более того, TCL позволяет описать и поведение кнопки непосредственно в теле со здающей ее команды, тогда как в С++ или Java для этого необходим отдельный метод. Языки описания сценариев на подъеме Языки описания сценариев существуют уже длительное время, однак о, в последние годы в результате сочетания ряда факторов существенно пов ысилась их актуальность. Наиболее важный из этих факторов – направленн ость в сторону приложении, собираемых из готовых компонентов, В качестве трех иллюстрации его проявления можно назвать графические интерфейсы пользователя, Internet и компонентные и нфраструктуры разработки. Графические интерфейсы пользователя Первые графические интерфейсы пользователя появились в начале 1980 г. и приобрели широкое распространение к концу десятилетия. Сегодня на опи сание этой части программы во многих проектах уходит более половины все х усилии разработчиков. GUI по своей при роде является составной компонентной системой. Цель его создания состо ит не в реализации новых функциональных возможностей, а в том, чтобы нала дить связи между графическими элементами управления и функциями внутр енних частей приложения. Некоторые из систем снабжены очень удобными графически ми средствами для построения экранов, которые скрывают сложности лежащ его в основе языка, однако, как только возникает необходимость в написан ии дополнительного кода, например, чтобы расширить спектр вариантов пов едения элементов интерфейса, у разработчика сразу возникают трудности. Все лучшие среды ускоренной разработки основаны на языках описания сце нариев : Visual Basic , HyperCard , TCL / TK . Internet Развитие и рост популярности Internet также способствовали распространению языков описания сценарие в. Сама сеть является не чем иным, как средством связи систем. Она не созда ет никаких новых данных и не занимается их обработкой ; все, что она делает- обеспечивает легкий досту п к огромному множеству существующих объектов. Идеальным языком програ ммирования для решения большинства связанных с сетью задач мог бы стать тот, который лучше организует совместную работу всех связанных компоне нтов, т. е. язык описания сценария. Так, для написания сеть-сценариев широк о употребляется язык Perl , а среди ра зработчиков WEB -страниц популярен JavaScrint . Компонентные инфраструктуры Третий пример применения языков описания сценариев - компонентные инфраструктуры, такие как ActiveX , JavaBeans . Хотя языки программирования системн ого уровня с успехом используются для создания компонентов, задачи сбор ки из них приложении удобнее решаются при помощи сценариев. Без хорошего языка описания сценариев, предназначенного для манипулирования компо нентами инфраструктуры, теряется значительная часть ее достоинств. Эти м можно объяснить отчасти, почему компонентные инфраструктуры добилис ь большей популярности в мире ПК, где существует такое удобное связующее средство, как Visual Basic , нежели на других платформах, таких как Unix / Cobra , компонентные инфраструктуры, для которых лишены языков описания сцена риев. Технология сценариев Еще одна причина роста популярности языков описания сценариев – развитие их технологии. Такие современные представители этой катего рии, как TCL , Perl мало, чем напоминают своих далеких предш ественников вроде JCL . Так, JCL не предусматривал даже простейших форм интерактивного взаимодействия, а ранние UNIX – оболочки не поддерживали процедур. Данная технология еще и сегодня остается относительно незрелой. Например, Visual Basic не является в полном смысле языком описания сценариев. Первонача льно он был разработан в качестве упрощенного языка системного уровня, а затем – модифицирован так, чтобы его было удобнее применять к описанию сценариев. Таким образом, у будущих языков подобного рода есть большой п ростор для совершенствования. Кроме того, технология сценариев много выиграла от повыше ния производительности компьютерного оборудования. Еще не так давно, чт обы добиться приемлемой скорости работы приложения любого уровня слож ности, необходимо было обращаться к языкам системного уровня. В некоторы х случаях даже их эффективность оказывалась недостаточной и программу приходилось писать на ассемблере. Современные машины работают в 100 – 500 ра з быстрее компьютеров 80 – х годов, и их производительность продолжает уд ваиваться примерно каждые 18 месяцев. Сегодня целый ряд приложении может быть реализован на языках описания сценариев при тем не менее великолеп ной производительности. Например, TCL – сценарии позволяет манипулировать тысячами объектов при сохранении хорошего уровня интерактивности. По мере того как компьютеры будут стан овиться быстрее и быстрее, применение языков описания сценариев будет с тановиться привлекательным для реализации все более и более масштабны х приложении. Д ругие языки Существует огромное количество атрибутов, помимо степени строго сти контроля типов или уровня языка, и есть очень много интересных приме ров, которые не могут быть однозначно отнесены к одной из двух рассмотре нных нами категории. Например, семейство Lisp занимает некоторое промежуточное положение, обладая атрибут ами языков описания сценариев и языков программирования системного ур овня. В Lisp впервые были реализован ы такие концепции, как интерпретация и динамический контроль типов, кото рые широко используются в современных языках описания сценариев, А такж е автоматическое управление хранением и интегрированные среды разрабо тки, применяемые в языках обеих категории. Языки описания сценариев основаны на несколько другом наборе компромиссов, чем языки системного уровня. В них скорость исполне ния и строгость контроля типов ставятся в шкале приоритетов на более низ кое место, но зато выше цениться производительность труда программиста и повторное использование. Это соотношение ценостеи оказывается все бо лее оправданным по мере того, как компьютеры становятся быстродействую щими и менее дорогими, чего нельзя сказать о программистах. Языки систем ного программирования хорошо подходят для создания компонентов, где ос новная сложность заключена в реализации алгоритмов и структур данных, т огда как языки описания сценариев лучше приспособлены для построения п риложении из готовых компонентов, где сложность состоит в налаживании м ежкомпонентных связей. Задачи последнего рода получают все большее рас пространение, так что роль парадигмы сценариев будет возрастать и в буду щем веке.
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Объявление.
Срочно ищу повод для выпивки, желательно вместе с деньгами.
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, реферат по информатике и информационным технологиям "Языки програмирования", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru