Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Языки программирования, трансляторы, компиляторы и интерпретаторы




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

Программы-компиляторы. Работа __________компилятора похожа на дейст-вия литературного переводчика. Допустим, переводчику дали текст на английском языке и попросили за неделю подготовить литера-турный перевод на русский язык. В этом случае он может несколько раз прочитать текст от начала до конца, найти в нем особо трудные места и обратиться к справочникам. Только после того как текст будет окончательно понят и для каждого предложения будет найден самый лучший перевод, можно приступать к записи нового текста. Именно так работают программы-компиляторы. Они несколько раз просматривают исходный текст, подготовленный программи-стом, выявляют общие места и для каждого оператора подбира-ют оптимальный набор машинных команд. После обработки ис-ходного кода компилятором образуется рабочий код программы, который иногда еще называют объектным кодом. Он записан в ви-де машинных команд. Программы-интерпретаторы. При проведении международных встреч, переговоров и кинофестивалей требуется помощь синхрон-ных переводчиков. Услышав фразу на одном языке, синхронный переводчик тут же переводит ее на другой язык и лишь потом, пе-реходит к следующей фразе. Если какая-то фраза будет повторять-ся, ему придется переводить ее несколько раз. Начиная перевод, синхронный переводчик не знает, чем он закончится, и потому не может учесть множество мелких нюансов, доступных литературно-му переводчику. Синхронный перевод получается более много-словным и грубым, по сравнению с литературным, но есть множе-ство случаев, когда без него обойтись нельзя. Программы-интерпретаторы работают, как синхронные переводчики. Прочи-тав один оператор исходного текста программы, они тут же пе-реводят его в машинный код и сразу подают процессору на испол-нение. Только после того как оператор исполнен, интерпретатор пе-реходит к следующему и снова подает его на исполнение. Если в качестве транслятора используется интерпретатор, то запись ра-бочего кода программы не образуется — в ней просто нет необхо-димости. Под контролем интерпретатора может исполняться обыч-ный исходный текст, подготовленный в редакторе. Сравнение компиляторов и интерпретаторов

Компилируемые и интерпретируемые языки программирования. Языки программирования, для которых созданы компиляторы, называются компилируемыми. Характерные примеры: Паскаль (Pas-cal) и СИ (С). Те языки, для которых преимущественно используют интерпретаторы, называются интерпретируемыми. Характерный пример интерпретируемого языка программирования — Бейсик (Basic), хотя он существует во множестве версий, среди которых иногда встречаются и компилируемые. Достоинства есть как у ком-пиляторов, так и у интерпретаторов. Выбирая для себя язык про-граммирования, автор программы учитывает особенности тех трансляторов, к которым у него есть доступ. Скорость работы программы. Основное достоинство компиля-торов в том, что рабочий код, созданный ими, выполняется компь-ютером в 20-50 раз быстрее, чем под управлением интерпретатора. Такая большая разница возникает за счет того, что программа-интерпретатор выполняет роль посредника между исполняемой программой и процессором. Процессор вынужден одновременно обслуживать и трансляцию, и исполнение программы, поэтому интерпретируемая программа работает медленнее, чем если бы она была сразу подготовлена в машинном коде. Автономность программы. Второе достоинство компиляторов заключается в том, что откомпилированные программы можно за-пускать на любых компьютерах той системы, для которой они под-готовлены. Такие программы называют автономными. Если про-грамма создана на интерпретируемом языке программирования, то ее можно запустить только на том компьютере, где установлен интерпретатор. Для программиста это означает, что он не всегда может передать свою программу другим лицам. Если у них нет со-ответствующего интерпретатора, то на их компьютерах эта про-грамма не заработает. Такие программы называют не автономными от интерпретатора. Все коммерческие программы, приобретаемые на компакт-дисках, и большинство программ, получаемых из Ин-тернета, обработаны компиляторами и потому автономны. Их можно сразу устанавливать на компьютер и запускать, не заботясь о приобретении дополнительного программного обеспечения.

Простота написания программы. Здесь пальма первенства безого-ворочно принадлежит интерпретируемым языкам. Поскольку ин-терпретатор контролирует исполнение каждого оператора, он берет на себя множество дополнительных забот. Так, например, он спосо-бен обнаруживать ошибки в записи операторов непосредственно во время подготовки программы. Нередко интерпретатор способен да-же объяснить, в чем заключается та или иная ошибка. Программы, написанные на компилируемых языках программирования, должны быть оформлены как законченные блоки, иначе компилятор даже не приступит к их обработке. Такие блоки в программировании назы-ваются модулями. Если же программа пишется на интерпретируе-мом языке программирования, ее можно запускать в любой момент. Например, каждый оператор программы можно запускать на испол-нение сразу после его написания. Критические ошибки не отла-женной программы, прошедшей компиляцию, способны остано-вить работу компьютера — привести к его «зависанию» или «сбросу». В таких случаях программисту может оказаться достаточ-но сложно выявить источник ошибки. Если же программа работа-ет под управлением интерпретатора, она не имеет прямого дос-тупа к процессору, и ее ошибки не могут повлиять на работоспо-собность компьютера. То есть, программы, написанные на интер-претируемом языке программирования, отлаживаются проще и бы-стрее. Интерпретируемые языки программирования очень удобно использовать в качестве учебных. В частности, они позволяют экс-периментировать со знакомыми, малознакомыми и совсем не зна-комыми операторами. С другой стороны, компилируемые языки программирования имеют широкое применение в создании коммер-ческих программ.




Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 2039; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.