- •11). Вопросы безопасности взаимодействия java-программ с серверным и клиентским программным обеспечением.
- •12). Протокол ftp - история разработки, основные возможности, формат сообщений, программная реализация на стороне клиента и сервера, области применения.
- •13). Методы навигации в сети InterNet, виды и концепции систем поиска информации в сети. Методы навигации в сети InterNet
- •14). Протокол tcp/ip - необходимость комплексирования, основные возможности, формат сообщений, программная реализация, области применения.
- •15). Принципы адресации в компьютерных сетях, их достоинства и недостатки, типовое программное обеспечение разрешения имен, примеры.
- •16). Протокол gopher - история разработки, основные возможности, формат сообщений, программная реализация на стороне клиента и сервера, области применения.
- •17). Основные топологии построения компьютерных сетей, их достоинства и недостатки, алгоритмическое обеспечение маршрутизации, примеры
- •Шинная топология
- •Топология типа “звезда”
- •Топология “кольцо”
- •Полносвязная топология
- •Топология Token Ring
- •18). Концепция байт-кода и еe применения в компьютерных сетях.
- •19). Методы реализации идеологии 'клиент/сервер' в сети InterNet, примеры, сравнительная характеристика.
- •20). Протоколы smtp и pop - история разработки, основные возможности, формат сообщений, программная реализация на стороне клиента и сервера, области применения.
18). Концепция байт-кода и еe применения в компьютерных сетях.
Байт-код или байтко́д (англ. byte-code), иногда также используется термин псевдоко́д — машинно-независимый код низкого уровня, генерируемый транслятором и исполняемый интерпретатором. (байт-код) - машинно-независимый код, генерируемый Java-компилятором и исполняемый Java-интерпретатором. Большинство инструкций байт-кода эквивалентны одной или нескольким командам ассемблера. Трансляция в байт-код занимает промежуточное положение между компиляцией в машинный код и интерпретацией.
Байт-код называется так, потому что длина каждого кода операции — один байт, но длина кода команды различна. Каждая инструкция представляет собой однобайтовый код операции от 0 до 255, за которым следуют такие параметры, как регистры или адреса памяти. Это в типичном случае, но спецификация байт-кода значительно различается в разных языках.
Программа на байт-коде обычно выполняется интерпретатором байт-кода (обычно он называется виртуальной машиной, поскольку подобен компьютеру). Преимущество — в портируемости, т. е. один и тот же байт-код может исполняться на разных платформах и архитектурах. То же самое преимущество дают интерпретируемые языки. Однако, поскольку байт-код обычно менее абстрактный, более компактный и более «компьютерный», чем исходный код, эффективность байт-кода обычно выше, чем чистая интерпретация исходного кода, предназначенного для правки человеком. По этой причине многие современные интерпретируемые языки на самом деле транслируют в байт-код и запускают интерпретатор байт-кода. К таким языкам относятся Perl, PHP, Ruby (начиная с версии 1.9) и Python. Программы на Java обычно передаются на целевую машину в виде байт-кода, который перед исполнением транслируется в машинный код «на лету» — с помощью JIT-компиляции. В стандарте открытых загрузчиков Open Firmware фирмы Sun Microsystems байт-код представляет операторы языка Forth.
В то же время возможно создание процессоров, для которых данный байт-код является непосредственно машинным кодом (такие процессоры существуют, например, для Javaи Forth).
Также некоторый интерес представляет p-код (p-code), который похож на байт-код, но физически может быть менее лаконичным и сильно варьироваться по длине инструкции. Он работает на очень высоком уровне, например «напечатать строку» или «очистить экран». P-код повсеместно используется в СУБД и некоторых реализациях BASIC иПаскаля.
Подобно технологии Java, среда разработки .NET создаёт байт-код, предназначенный для исполнения виртуальной машиной. Входной язык этой машины в .NET называется MSIL (Microsoft Intermediate Language), или CIL (Common Intermediate Language, более поздний вариант), или просто IL. Применение байт-кода позволяет получить кроссплатформенность на уровне скомпилированного проекта (в терминах .NET: сборка), а не только на уровне исходного текста, как, например, в С. Перед запуском сборки в среде исполнения CLR байт-код преобразуется встроенным в среду JIT-компилятором (just in time, компиляция на лету) в машинные коды целевого процессора. Также существует возможность скомпилировать сборку в родной (native) код для выбранной платформы с помощью поставляемой вместе с .NET Framework утилиты NGen.exe.
Следует отметить, что один из первых JIT-компиляторов для Java был также разработан фирмой Microsoft. Современная технология динамической компиляции позволяет достигнуть уровня быстродействия, аналогичного традиционным «статическим» компиляторам (например, C++), и вопрос быстродействия зачастую зависит от качества того или иного компилятора.