Сравнение интерпретируемых и компилируемых языков программирования
Зарегистрируйся в два клика и получи неограниченный доступ к материалам,а также промокод на новый заказ в Автор24. Это бесплатно.
Введение
Создание программ для применения в различных областях человеческой деятельности – автоматизации повседневных и промышленных задач, обучения, развлечения т.д. – по-прежнему остается актуальной проблемой. Появление новых технологий программирования и средств разработки программ позволяет упростить этот процесс. Почти каждый современный язык программирования имеет большой набор стандартных методов и встроенных средств, предназначенных для быстрой и эффективной разработки. Большинство современных языков программирования являются независимыми от компьютера. Иными словами, структура языка программирования не зависит от внутренней структуры машины; нужно уметь исполнять программу, написанную на языке программирования, на любом компьютере, независимо от того, кто его изобрел или какой моделью он является. Такие языки известны как машинно-независимые языки программирования высокого уровня. Создание программ на языках программирования высокого уровня по-прежнему является актуальным, поскольку программисты низкоуровневых языков зачастую пишут неэффективные программы, так как упускают из виду высокоуровневые оптимизации ; в то же время разработка низкоуровневых программ сопряжена со сложностью – большинство людей не могут быстро читать машинный код (и соответственно вносить изменения). Программы на языках программирования высокого уровня не могут быть запущены непосредственно центральным процессором (ЦП) компьютера, а должны быть переведены на машинный язык, следовательно, необходимо преобразовать инструкции языка высокого уровня, называемые исходным кодом, в машинный код, который может быть понят компьютером. Перевод исходного кода в машинный код осуществляется с помощью компилятора или интерпретатора. В результате создаются интерпретируемые, компилируемые и гибридные языки программирования высокого уровня . Компиляторы по большому счету служат переводчиками между языками, превращая один язык программирования в другой компьютерный язык, который затем может быть скомпилирован также в другой язык или передан на вход интерпретатору. Некоторые компиляторы могут переводить языки программирования непосредственно в машинный код (который, как следует из его названия, представляет собой набор инструкций, которые могут интерпретироваться непосредственно центральным процессором компьютера). Однако наиболее популярным типом компилятора является тот, который компилирует исходный код в объектный код (который является машиночитаемым и, следовательно, легко исполняемым). Общее правило состоит в том, что компилируемые языки работают быстрее, чем интерпретируемые, хотя интерпретируемые языки, как правило, более удобны и легче воспринимаются людьми. Процесс интерпретации, по сути, определяется так: это когда исходный код программы преобразуется в серию действий, выполняемых аппаратным обеспечением компьютера. Цель настоящей работы – выполнить сравнение компилируемых и интерпретируемых языков, указать их достоинства и недостатки.
Трансляция
Трансляция программы – это процесс, которому подвергается исходный код, написанный на языке программирования высокого уровня, прежде чем он будет преобразован в машинный язык низкого уровня. Процесс перевода различен для разных трансляторов, преобраз...
Открыть главуЗаключение
В работе было проведено сравнение интерпретируемых и компилируемых языков, а также выполнен обзор некоторых из них (языки Си, C++, Python рассмотрены более подробно). Метод интерпретации, как правило, медленный и неэффективный, поскольку строки кода повторяются и транслируются во время работы программы. Однако из-за того, что в любое время запускается интерпретируемая программа, интерпретатор ссылается на исходный код, который относительно легко изменить и перезапустить фрагмент кода, или переместить код в компьютерную среду, отличную от той, где он был разработан и запущен. Трансляторы являются очень хорошими инструментами разработки, поскольку их легко редактировать, и поэтому они идеально подходят для начинающих программистов и разработчиков программного обеспечения. Однако они зачастую не удовлетворяют требованиям профессиональной разработки из-за медленного выполнения интерпретируемого кода. С другой стороны, метод компиляции переводит весь код в одну программу машинного кода и запускает этот машинный код. Выполнение кода может быть очень быстрым при использовании компиляции, однако код не может быть выполнен ни на какой другой платформе, кроме той, на которой код был разработан для него. Гибридные языки способны объединить обе методики и свести к минимуму недостатки, связанные с каждой из них, сохраняя при этом те преимущества, которые они имеют в некоторой степени. Благодаря высокой скорости выполнения как компилируемых, так и гибридных языков, они хороши для профессиональных разработчиков программного обеспечения.
Список литературы
Вирт Н. Алгоритмы и структуры данных. Новая версия для Оберона + CD / Н. Вирт; пер. Д. Б. Подшивалов. – 2-е изд., испр. – М.: ДМК Пресс, 2012. – 272 с. Кнут Д. Искусство программирования // The art of computer programming: [в 3 т.]. Т.1. Основные алгоритмы / Д. Кнут; ред. Ю. В. Козаченко. – 3-е изд. – М.: Вильямс, 2014. – 720 с. Альфред, В. Ахо Компиляторы. Принципы, технологии и инструментарий / Альфред В. Ахо и др. – М.: Вильямс, 2015. – 266 c. Вирт Н. – Построение компиляторов (Классика программирования) / Н. Вирт – М.: ДМК-Пресс, 2010. – 192 с. Свердлов С.З. Языки программирования и методы трансляции: Учебное пособие. / С.З. Свердлов – СПб.: Питер, 2007. – 736 с. Index | TIOBE [Электронный ресурс] / Режим доступа: https://www.tiobe.com/tiobe-index/ (дата обращения: 11.05.2020) Демидович Е.М. Основы алгоритмизации и программирования. Язык Си, учебное пособие / Е. М. Демидович. – 2-е изд., испр. и доп. – СПб.: БХВ – Петербург, 2008. – 440 с. Страуструп Б. Язык программирования C++: специальное издание / Б. Страуструп; пер.: С. Анисимов, М. Кононов; ред.: Ф. Андреев, А. Ушаков. – [Б. м.]: Бином-Пресс, 2008. – 1098 с. Advantages and Disadvantages of C++ [Электронный ресурс] / Режим доступа: https://data-flair.training/blogs/advantages-and-disadvantages-of-cpp/ (дата обращения: 12.05.2020) Our Documentation | Python.org [Электронный ресурс] / Режим доступа: https://www.python.org/doc/ (Дата обращения: 16.05.2020)