Что такое компилятор
Это программа, которая преобразует код, написанный на языке программирования высокого уровня, в машинный код.
Что такое интерпретатор
Это программа, которая выполняет код, написанный на языке программирования. Она не переводит его в машинные коды целиком, а построчно принимает команды и сразу выполняет их. Можно отдать интерпретатору команду и сразу понять, сработала ли она.
Ключевая разница между компилятором и интерпретатором
— Компилятор позволяет одновременно проверять как синтаксические, так и семантические ошибки. А интерпретатор только синтаксические ошибки.
— Скомпилированный код работает быстрее, а интерпретируемый код работает медленнее.
— Компилятор отображает все ошибки после компиляции, а интерпретатор отображает ошибки каждой строки одну за другой.
— Компилятор принимает всю программу, а интерпретатор — одну строку кода.
— Компилятор крупнее. Интерпретаторы часто меньше, чем компиляторы.
Что из них лучше?
Пишу программу в машинных кодах
Это как выбирать между машиной и велосипедом. Смотря, что вам нужно в данный момент. Программа, созданная компилятором, будет работать быстрее. Интерпретированный исходный код легче поддерживать, отлаживать и выпускать для разных платформ. Нет ничего «лучшего» в интерпретации или компиляции, когда мы говорим об абсолютах.
Есть много компромиссов, которые необходимо учитывать.
Источник: vc.ru
Уроки 54 — 57
Системное программное обеспечение. Системы программирования
§40. Системное программное обеспечение. §41. Системы программирования. §42. Инсталляция программ
Транслятор — это программа, которая переводит в машинные коды тексты программ, написанных на языке высокого уровня.
Существуют два типа трансляторов: интерпретаторы и компиляторы.
Интерпретатор анализирует текст программы по частям. Разобрав очередной фрагмент, он немедленно выполняет описанные в нем действия и переходит к обработке следующего фрагмента.
Достоинства интерпретаторов:
• программы переносимы (программа будет работать в любой системе, где установлена программа-интерпретатор);
• удобно отлаживать программу.
Есть и существенные недостатки.
• программу невозможно выполнить, если не установлен интерпретатор;
• программы выполняются медленно (в цикле из 100 шагов каждая строчка 100 раз «разбирается» интерпретатором);
• в тех частях программы, которые не выполнялись во время отладки, могут оставаться синтаксические ошибки.
Второй тип трансляторов — компиляторы. Они, в отличие от интерпретаторов, сразу переводят всю программу в машинный код и строят исполняемый файл, готовый к запуску.
Достоинства компиляторов:
• чтобы запустить программу, не нужно устанавливать транслятор;
• поскольку программа уже переведена в машинные коды, она выполняется значительно быстрее, чем при использовании интерпретатора.
Недостатки тоже есть:
• при любом изменении нужно ждать окончания компиляции (перевода в коды); это несколько затрудняет отладку;
• готовая программа будет выполняться только в той операционной системе, для которой она была создана 1 .
1 Многие программы, разработанные для ОС Windows, могут быть запущены в Linux с помощью программы-оболочки Wine (www.winehq.org).
Чтобы как-то совместить достоинства интерпретаторов и компиляторов, была предложена идея компиляции программы в некоторый промежуточный исполняемый код (псевдокод, P-код), а не сразу в команды конкретного процессора. Для выполнения такого псевдокода нужна специальная среда — виртуальная машина, которую в принципе можно разработать для любого процессора и любой операционной системы.
Программа сначала обрабатывается компилятором, который строит псевдокод, а потом этот псевдокод выполняется интерпретатором.
Таким образом,
• при компиляции в псевдокод проверяются все синтаксические ошибки, поэтому при выполнении такую проверку делать не нужно; это значительно ускоряет работу программ в сравнении с интерпретацией;
• обеспечивается переносимость программ — можно выполнять программу (псевдокод) на любом компьютере, где есть виртуальная машина.
Байт-код — это разновидность псевдокода, в котором команда занимает 1 байт, а далее следуют её аргументы (или их адреса). Современные версии интерпретируемых языков Perl, РНР, Python используют компиляцию в байт-код для ускорения выполнения программы.
Готовые программы на Java распространяются в виде байт-кода, поэтому для их выполнения необходимо установить виртуальную Java-машину. При этом для ускорения работы часто используется JIT-компиляция (англ. JIT — just-in-time — в это самое время), при которой байт-код «на лету» преобразуется в команды конкретного процессора.
Тогда при повторном выполнении команды трансляция уже не нужна. Аналогичный подход применяется в среде .NET, которую разработала фирма Microsoft. Одна из основных идей среды .NET — объединение программ, написанных на разных языках. В частности, разные части программы могут быть написаны на С#, J#, VB.NET, Delphi.NET, все они в конечном счёте транслируются в байт-код на промежуточном языке IL (англ. Intermediate Language), который потом выполняется виртуальной машиной.
Следующая страница Состав системы программирования
Cкачать материалы урока
Источник: xn—-7sbbfb7a7aej.xn--p1ai
Транслятор – это программа, которая переводит в машинные коды текст программ, написанных на языке высокого уровня.
1.Интерпретатор: анализирует текст программы по частям, сразу выполняет обработанную команду.
- программы переносимы
- удобно отлаживать
- для выполнения нужен интерпретатор
- программы выполняются медленно
- могут оставаться синтаксические ошибки
Компилятор: переводит всю программу в машинный код, строит исполняемый файл.
- для выполнения не нужен транслятор
- программы работают быстро
- при изменении нужно заново транслировать всю программу
- программа работает только в одной ОС
14) Алгоритм, его свойства и способы записи.
1. Алгоритм – это однозначное, точное и полное описание последовательности элементарных действий для решения данной задачи.
Слово алгоритм происходит от имени арабского математика Аль-Хорезми (точнее – латинизи-рованной формы его имени – Аlgorithmi), который еще в IX веке сформулировал правила выполнения четырех арифметических действий. Эти правила называли правилами Аль-Хорезми (algorithmi), а позднее просто стали называть алгоритмом.
- Дискретность – описываемый процесс должен быть разбит на последовательность отдельных шагов
- Понятность – предписания алгоритма должны быть понятны исполнителю
- Определенность – алгоритм не должен оставлять места для произвола исполнителя, т.е после выполнения одного предписания д.б. ясно, какое следующее
- Массовость – применимость алгоритма не к одной, а к ряду однотипных задач
- Результативность – алгоритм должен состоять из конечного числа шагов и при этом д.б. получен результат
< p>3. Способы записи алгоритма
1) на естественном языке (русском, английском и т.д.) ,
2) на алгоритмическом языке (или языке программирования: Бейсик, Паскаль и т.д.),
3) на языке блок–схем.
15) Что такое блок – схема алгоритма. Основные блоки и структуры.
1. Блок–схема алгоритма – это графический способ записи алгоритма, представляющий собой систему определенным образом связанных блоков, изображаемых в виде плоских геометрических фигур.
Элементы блок –схемы располагаются сверху вниз, линии соединения отдельных блоков показывают направление процесса обработки схемы. Каждое такое направление называют ветвью.
2. Основные блоки
3. Структурами называют ограниченный набор блоков и стандартных способов их соединения для выполнения типичных последовательностей действий.
- Следование
- Развилка (полная и неполная)?
- Цикл (цикл-ПОКА и цикл-ДО, а также цикл с параметром)?
Блок–схема алгоритма – это графический способ записи алгоритма, представляющий собой систему определенным образом связанных блоков, изображаемых в виде плоских геометрических фигур.Элементы блок – схемы располагаются сверху вниз, линии соединения отдельных блоков показывают направление процесса обработки схемы. Каждое такое направление называют ветвью.
Перечислим типы блоков:
1. “Начало” и “конец” алгоритма изображаются овалом:
2. Блок “действия” изображается прямоугольником. Внутри его указываются необходимые вычисления и присваивания результата:
3. Блок “условия” изображаются ромбом. Внутри блока записываются условия выбора направления действия алгоритма:
4. Блоки “ввода” и “вывода” информации изображаются параллелограммами. С их помощью вводят исходные данные задачи, выводят результат решения:
Структурами называют ограниченный набор блоков и стандартных способов их соединения для выполнения типичных последовательностей действий. Алгоритмы “собирают” из трех основных (базовых) структур:
1. Структура “ следование” состоит из двух (или более) блоков “действие”:
2.Структура “развилка” состоит из логического элемента с проверкой некоторого условия и функциональных блоков, которые в простейшем случае есть блок “действие”.
“Развилка” может быть двух видов:
а) полная условная конструкция: б) неполная условная конструкция:
3. Структура “цикл” состоит из логического элемента с проверкой условия и функционального блока, называемого телом цикла. Ясно, что тело цикла может выполняться неоднократно. Данная структура может быть двух видов:
цикл – ПОКА цикл – ДО
В случае “цикл – ПОКА” функциональный блок размещен после проверки условия, поэтому может оказаться, что тело цикла не выполниться ни разу. Однако если условие выполняется – выполняется и весь цикл. Проще говоря, “цикл – ПОКА” выполняется, пока выполняются условие.
В “цикле – ДО” функциональный блок размещен до проверки выполнения условия, так что в этом варианте тело цикла в любом случае будет выполнено, по крайней мере, один раз. Условие в данном случае является условием выхода из цикла. Проще говоря, “цикл – ДО “ выполняется до наступления выполнения условия.
16) Компьютерная сеть и типы сетей.
1. Компьютерная сеть – это группа компьютеров, соединенных линиями связи.
- телефонная линия
- электрические кабели
- оптическое волокно
- радиоволны (в беспроводных сетях)
Компьютерные сети – «за» и «против»
- обмен данными между компьютерами
- совместное использование ресурсов
u внешние устройства
- распределённые вычисления
- электронная почта
- затраты на сетевое оборудование
- снижается безопасность данных
- нужен системный администратор
- персональные сети (PAN = Personal Area Network), радиус до 30 м
- локальные сети (LAN = Local Area Network) – в одном или нескольких соседних зданиях
- корпоративные сети – одна организация
- городские сети (MAN = Metropolitan Area Network)
- глобальные сети (WAN = Wide Area Network)
Сервер –это компьютер, предоставляющий свои ресурсы в общее использование.
- файловый сервер
- сервер печати
- почтовый сервер
- сервер приложений
Клиент – это компьютер, использующий ресурсы сервера.
17) Протокол в компьютерной сети. Пакетный режим передачи и состав пакета.
1. Пакетный режим был наиболее распространен при централизованной организации решения экономических задач, когда большой удельный вес занимали задачи отчетности о производственно-хозяйственной деятельности экономических объектов разного уровня управления.
2. Протокол в компьютерной сети. Сетевым протоколом называется набор правил, позволяющий осуществлять соединение и обмен данными между двумя и более включёнными в сеть компьютерами. Фактически разные протоколы зачастую описывают лишь разные стороны одного типа связи; взятые вместе, они образуют так называемый стек протоколов. Названияитакже указывают на программное обеспечение, которым реализуется протокол.
Протокол – это набор правил и соглашений, определяющих порядок обмена данными.
Шлюз (конвертер) – устройство, которое объединяет сети с разными протоколами.
- Прикладной уровень (Application layer). Верхний (7-й) уровень модели
- Уровень представления (Presentation layer). 6-й уровень отвечает за преобразование протоколов и кодирование/декодирование данных.
- Сеансовый уровень (Session layer). 5-й уровень модели отвечает за поддержание сеанса связи, что позволяет приложениям взаимодействовать между собой длительное время.
- Транспортный уровень (Transport layer). 4-й уровень модели, предназначен для доставки данных без ошибок, потерь и дублирования в той последовательности, как они были переданы.
- Сетевой уровень (Network layer). 3-й уровень сетевой модели OSI, предназначен для определения пути передачи данных.
- Уровень звена данных (Data Link layer). Часто это уровень называется канальным. Этот уровень предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля за ошибками, которые могут возникнуть.
- Физический уровень (Physical layer). Самый нижний уровень модели
18) Топология компьютерной сети (определение и примеры)
1. Топология сети – геометрическая форма и физическое расположение компьютеров по отношению к друг другу. Топология сети позволяет сравнивать и классифицировать различные сети. Различают три основных вида топологии:
Шина – это линия связи, которую несколько устройств используют для обмена данными.
4. «Дерево» = многоуровневая звезда
19) Локальная сеть и типы локальных сетей.
1. Локальная сеть объединяет компьютеры в одном или нескольких соседних зданиях.
LAN (Локальная сеть/локальные сети) – это компьютерная сеть, которая, дает возможность нескольким подключаться к сети интернет, используя единую точку доступа.
Сетевая ОС поддерживает:
- сетевое оборудование
- сетевые протоколы
- доступ к удалённым ресурсам
- Windows, Linux, Mac OS
2. Типы локальных сетей:
- одноранговые
- с выделенным сервером
Сети с выделенным сервером
Сервер — специальный управляющий компьютер, предназначенный для: хранения данных для всей сети; подключения периферийных устройств; централизованного управления всей сетью и определения маршрутов передачи сообщений.
20) Маска подсети. Нахождение адреса сети и номера компьютера в сети по IP адресу.
TCP (Transfer Control Protocol)– протокол управления передачей данных
IP (Internet Protocol) – межсетевой протокол
Протоколы уровня приложений
HTTP (HyperText Transfer Protocol)– передача гипертекста
FTP (File Transfer Protocol) – передача файлов
SMTP (Simple Mail Transfer Protocol) – отправка эл. почты
POP3 (Post Office Protocol Version 3) – приём эл. почты
IMAP (Internet Message Access Protocol) – приём эл. Почты
21) Доменные имена и серверы доменных имен.
Доменное имя — это уникальное сочетание символов латинского алфавита, по которому можно идентифицировать ваш сайт среди множества других. Кроме букв, в домен могут входить цифры от 1 до 9 и символы дефиса «-», но дефис не может находиться в начале и в конце домена. Длина домена может быть от 2 до 63 символов. Для того чтобы конкретному цифровому IP-адресу поставить в соответствие символьное доменное имя вашего сайта, существуют специальные DNS-серверы(программы, осуществляющая преобразование доменного имени в цифровой IP-адрес и наоборот).
Каждое доменное имя состоит из нескольких частей, разделённых точками — это домены разных уровней. Число уровней доменов, как правило, ограничивается двумя-тремя. Длинное доменное имя и большое число уровней домена неудобны для использования. Крайнее правое поле называется Доменом верхнего уровня, далее, справа налево, следуют имена доменов более низкого уровня.
O Домены верхнего уровня (доменными зонами).
Все домены верхнего уровня можно разделить на две группы:
— национальные или географические домены, они определяют принадлежность сайта к той или иной стране или географической территории.
— домены общего пользования. Они могут устанавливать принадлежность сайта к определенной категории или виду деятельности.
O Домены второго уровня
Второй и все последующие уровни домена имеют важное ограничение — они должны быть уникальны в группе своего родительского домена. Иначе говоря, в Интернет может быть только один домен второго уровня в домене верхнего уровня. Доменные имена второго уровня регистрируются у организаций-регистраторов. Право владения на домен второго уровня выдается организации или человеку только на год, на каждый следующий год заявку надо продлевать.
O Домены третьего уровня
Домены третьего уровня регистрируются у организаций, владеющих доменами второго уровня. Обладатель домена второго уровня имеет возможность создавать неограниченное количество адресов третьего и далее уровней. Обычно, услугу регистрации домена третьего уровня предоставляют провайдеры– поставщики интернет услуг.
22) Информационная безопасность и защита информации.
1. Информационная безопасность — это защищённость информации от любых действий, в результате которых владельцам или пользователям информации может быть нанесён недопустимый ущерб.
- искажение утеря информации
- утеря информации
- неправомерный доступ к информации
2. Защита информации — это меры, направленные на то, чтобы не потерять информацию, не допустить её искажения и неправомерного доступа к ней.
- доступность информации
- целостность
- конфиденциальность
Проблемы в сетях:
- много пользователей
- возможность незаконного подключения к сети
- уязвимости сетевого ПО
- атаки взломщиков и вредоносных программ
Статьи к прочтению:
- Трасология и её практическое использование в раскрытии и расследовании преступлений
- Требования к ас третьей группы
Daphne Koller: Was wir vom Online-Lernen lernen
Похожие статьи:
- Принципы разработки алгоритмов и программ Человеку в жизни и практической деятельности приходится решать множество различных задач. Решение каждой из них описывается своим алгоритмом, и…
- Использование специализированных программ Введение Интернет полностью меняет то, как мы работаем, живем, развлекаемся и учимся. Эти изменения будут происходить в уже известных нам областях…
Источник: csaa.ru