Исправляем ошибку Java Virtual Machine Launcher в играх. Виртуальная машина Java — JVM

Краткая Java -терминология

Виртуальная машина (virtual machine ) – абстрактное вычислительное устройство, которое может быть реализовано разными способами: аппаратно или программно. Компиляция в набор команд виртуальной машины происходит почти так же, как и компиляция в набор команд микропроцессора.

Java -платформа (Java Platform ) – виртуальная машина Java и стандартные классы составляют Java -платформу. Java -платформа предоставляет программам унифицированный интерфейс независимо от операционной системы, на которой они работают.

Java Remote Method Invocation (JRMI ) – интерфейс вызова удаленных методов. Распределенная объектная модель, определяющая, каким образом производится вызов удаленных методов, работающих на другой виртуальной машине Java .

Java Runtime Environment (JRE ) – среда исполнения Java . Подмножество Java Development Kit , предназначенное для конечных пользователей. JRE состоит из виртуальной машины Java (JVM ), стандартных классов Java и вспомогательных файлов.

Java Virtual Machine (JVM ) – виртуальная машина Java , часть среды исполнения Java , выполняющая интерпретацию Java байт-кода. Java Virtual Machine специфицируется набором команд байт-кода, набором регистров, стеком, сборщиком мусора и пространством хранения методов.

Java байт-код (Java bytecode ) – машинно-независимый код, который генерирует Java -компилятор. Байт-код выполняется Java -интерпретатором. Виртуальная машина Java полностью стековая: не требуется сложная адресация ячеек памяти и большое количество регистров. Поэтому команды JVM короткие, большинство из них имеет длину 1 байт, отчего команды JVM называют байт-кодами (bytecodes ), хотя имеются команды длиной 2 и 3 байта (средняя длина команды составляет 1,8 байта).

Программа, написанная на языке Java , переводится компилятором в байт-код. Байт-код записывается в одном или нескольких файлах, может храниться во внешней памяти или передаваться по сети. Это особенно удобно благодаря небольшому размеру файлов с байт-кодом. Полученный в результате компиляции байт-код можно выполнять на любом компьютере, имеющем систему, реализующую JVM (в не зависимости от типа какого-либо конкретного процессора и архитектуры ПК). Так реализуется принцип Java : «Write once, run anywhere» «Написано однажды, выполняется где угодно» .

Java -апплеты (Java applets ) – Java -приложения, доступ к которым можно получить из веб-браузера.

Что такое технология Java

Технология Java была создана как инструмент программирования в компании Sun Microsystems в 1991 г. в рамках небольшого закрытого исследовательского проекта, получившего кодовое название «Green» (« проект»).

«Зеленая команда» из 13 инженеров и разработчиков под руководством Джеймса Гослинга (James Gosling ) в течение полутора лет работала сутками напролет в отдельном офисе на Sand Hill Road в г. Менло Парк (Калифорния; опять !), не информируя о своей работе компанию Sun .

Инженеры «Зеленой команды» старались предвосхитить грядущую «новую волну» в программировании и подготовиться к ней. Первоначально они исходили из предположения, что одной из основных тенденций развития будет сближение между цифровой потребительской техникой и компьютерами.

Результатом этой работы стал машинно-независимый язык программирования, получивший кодовое название «Oak» (Дуб ).

Чтобы продемонстрировать, как новый язык программирования может в будущем использоваться в цифровой технике, «Зеленая команда» создала домашний портативный интерактивный контроллер для цифрового кабельного телевидения. Но тогда эта идея была слишком новаторской, и цифровое кабельное телевидение не было готово к тому резкому прорыву, который предлагала технология Java .

Однако новаторство технологии Java оказалось востребованным для Интернета, и на первой официальной презентации технологии Java в 1995 г. команда Гослинга смогла объявить, что технология Java будет использована в интернет-обозревателе Netscape Navigator .

Ныне платформу Java используют более 4 млн. разработчиков программного обеспечения. Она используется во всех основных сферах деятельности по всему миру и применяется в самых различных устройствах, компьютерах и сетях во всех технологиях программирования.

В целом универсальность, эффективность, безопасность и совместимость с разными платформами делают технологию Java идеальным инструментом для сетевых технологий. Поэтому сегодня она используется более чем в 2,5 млрд. устройств, среди которых:

Более 1 млрд. мобильных телефонов и других портативных устройств;

1,25 млрд. смарт-карт;

А также телеприставки, принтеры, веб-камеры, игры, автомобильные системы навигации, игровые автоматы, медицинское оборудование, парковочные автоматы и т. д.

В настоящее время технологию Java можно встретить практически в любых сетях и устройствах – от Интернета и суперкомпьютеров до портативных компьютеров и мобильных телефонов, от устройств моделирования биржевых торгов до домашних игровых приставок и кредитных карт.

Почему разработчики программного обеспечения выбирают технологию Java

Язык программирования Java всесторонне дорабатывали, расширяли, тестировали и проверяли на практике более 4 млн. разработчиков программного обеспечения.

Законченная, чрезвычайно надёжная и универсальная технология Java неоценима для разработчиков программного обеспечения тем, что она позволяет им:

Писать программное обеспечение на одной платформе и запускать его практически на любой другой;

Создавать программы для работы в веб-обозревателях и веб-службах;

Разрабатывать серверные приложения для интернет-форумов, магазинов, опросов, обработки HTML -форм и др.;

Создавать максимально приспособленные для требований пользователя приложения и службы, комбинируя различные Java -модули;

Писать мощные и эффективные приложения для мобильных телефонов, удаленных процессоров, недорогих потребительских товаров и практически для любых цифровых устройств.

Что представляет собой технология Mobile Java (J2ME – Java 2 Micro Edition )

В состав J2ME входит оптимизированная для широкого круга пользователей мобильных устройств версия JRE . Основными компонентами компактной версии платформы Java 2 (J2ME ) являются виртуальная машина для устройств со стандартными конфигурациями (CDC ), виртуальная машина для устройств с ограниченными конфигурациями (CDLC ) и профили мобильных устройств с информационными функциями. Кроме того, в состав этой платформы входит множество других инструментальных средств и технологий, упрощающих создание программ Java для бытовых и встроенных устройств (мобильные телефоны, карманные компьютеры, смарт-карты, пейджеры, телеприставки и другие мобильные и беспроводные устройства).

Технологии J2ME , в свою очередь, входят в состав семейства программных продуктов Java . Среди родственных технологий – стандартная (J2SE ) и корпоративная (J2EE ) версии платформы Java 2 . Помимо прочего, технология Java помогает разрабатывать веб-службы, организовывать и передавать данные на языке XML , устанавливать соединения по различным сетевым протоколам, работать с инструментальными пакетами и реализовывать функции приложения Java Web Start .

Со стандартной версией исполнительной среды Sun Java (JRE ) версию J2ME роднит соблюдение стандартных соглашений для платформ Java и участие в разработке ведущих производителей мобильных устройств и поставщиков услуг беспроводной связи.

Что такое KVM

KVM (Kilo Virtual Machine ) – это элемент исполнительной среды, входящий в состав компактной версии платформы Java 2 (J2ME ) и предназначенный для применения в устройствах с ограниченной емкостью памяти и производительностью процессора. Стандартные вычислительные функции в мобильных телефонах, пейджерах и карманных компьютерах (PDA ) часто реализуются именно при помощи KVM .

Подобно JVM (виртуальной машине Java ), KVM исполняет приложения и апплеты на основе технологии Java . KVM применяется в сотовых телефонах и других мобильных устройствах, в то время как JVM устанавливается в компьютерах. В состав стандартной версии платформы Java 2 (J2SE ) входят JRE , Java Plug-in и JVM .

Помимо KVM , платформа J2ME содержит множество виртуальных машин различных масштабов. KVM – это один из вариантов реализации виртуальной машины для устройств с ограниченной конфигурацией (Connected Limited Device Configurations , CDLC ), предназначенный для исполнения программных продуктов на основе технологии Java в мобильных устройствах.

Родственной технологией J2ME являются профили мобильных устройств с информационными функциями (Mobile Information Device Profiles , MIDP ), которые чаще всего применяются при разработке приложений для мобильных устройств – в частности, для мобильных телефонов и двухсторонних пейджеров.

Как получить программное обеспечение Java для мобильных устройств/КПК ?

Функции Java , предназначенные для мобильных устройств, устанавливаются в этих устройствах их производителями. Узнайте у производителя, установлено ли в вашем устройстве программное обеспечение Java .

Виртуальная машина KVM является аналогом виртуальной машины Java (JVM ), предназначенным для мобильных устройств. Она обеспечивает исполнение апплетов и приложений, написанных на языке Java , в мобильных устройствах. Виртуальная машина KVM должна быть установлена производителем. Её НЕЛЬЗЯ загрузить и установить самостоятельно.

Что такое Java Virtual Machine

Java Virtual Machine (сокращенно Java VM , JVM ) – виртуальная машина Java – основная часть исполняющей системы Java , так называемой Java Runtime Environment (JRE ). Виртуальная машина Java интерпретирует и исполняет байт-код Java , предварительно созданный из исходного текста Java -программы компилятором Java .

В 1996 г. компания Sun выпустила первую версию документа «Голубая книга JVM », в котором описана спецификация виртуальной машины Java , ставшего де-факто отраслевым стандартом платформы Java . Благодаря этому документу появились альтернативные реализации JVM , являющиеся «разработками с чистого листа» (англ. clean room design ). В качестве примера можно привести Kaffe .

Начиная с версии J2SE 5.0 изменения в спецификации JVM вырабатываются в соответствии с формализованными пожеланиями заинтересованных сторон. Процесс внесения изменений в спецификации JVM называется Java Community Process .

Противостояние Sun и Microsoft

В начале развития платформы Java существовали две конкурирующие реализации Java VM – одна от фирмы Sun Microsystems , создателя языка Java , для различных платформ (Windows , Mac OS , Unix ), и другая – от фирмы Microsoft , ориентированная только на платформу Windows и, по утверждению Microsoft , «специально оптимизированная для быстрого выполнения Java -кода на платформе Microsoft Windows ».

Однако, Microsoft JVM была не полностью совместима со спецификацией, описанной Sun в книге JVM , а также имела существенные проблемы, связанные с безопасностью и с производительностью при работе под большими нагрузками (при большом числе одновременно выполняемых потоков). Компания Sun посчитала такую ситуацию недопустимой и решила, что Microsoft занимается намеренной дискредитацией и профанацией платформы Java путём распространения своей версии виртуальной машины Java , обладающей вышеперечисленными недостатками.

На этом основании Sun неоднократно подавала в суд на Microsoft , и последовательно добилась сначала того, что Microsoft потеряла право называть свою реализацию JVM Java VM . С этого момента Microsoft стала называть свой продукт просто Microsoft VM . Затем Microsoft потеряла право встраивать свою VM в браузеры и операционные системы. После этого Microsoft вынуждена была изъять свою VM из поставки Windows и из пакета IE , но могла, согласно решению суда, предлагать её отдельно для скачивания на своем сайте. Затем Sun добилась прекращения разработки новых версий Microsoft VM и прекращения выпуска обновлений к ней, а затем и исключения Microsoft VM из списка доступных для скачивания программ на сайте Microsoft .

Некоторые IT -эксперты считают, что жёсткая позиция, занятая Sun по вопросу Java , могла послужить дополнительным стимулом для разработки компанией Microsoft собственного кросс-платформенного решения – .NET Framework .

О борьбе за соблюдение стандартов

Вот что говорит по этому поводу «отец» Java Джеймс Гослинг: «Если говорить о соблюдении стандартов, то наш конфликт с Microsoft состоял в том, что эта компания попыталась ограничить интероперабельность своей виртуальной машины, тем самым нарушив достигнутое раннее соглашение. Код, оптимизированный под эту машину, не исполнялся на других платформах. Налицо попытка привязать пользователей к своей системе. Такие попытки всегда пресекались и будут пресекаться впредь. Однако если принцип интероперабельности соблюдается, то никаких препятствий нет. Например, у IBM по меньшей мере полдюжины виртуальных машин Java , есть свои разработки в этой области у HP и многих других компаний».

Противостояние Sun и IBM

В 2001 г., с целью разработки стандарта кросс-платформенных d esktop -приложений, IBM стартовала открытый проект Eclipse . Фреймворк Eclipse основан на закрытой разработке IBM VisualAge . IBM удалось сбалансировать интересы свободного сообщества и интересы бизнеса (свои интересы) в лицензии Eclipse Public License , признанной FSF .

Проект успешно развивается, признан индустрией, в значительной степени отделился от IBM в самостоятельную Eclipse Foundation .

Sun остается в оппозиции Eclipse Foundation , как и Microsoft . Формально основной причиной противоречий остается библиотека SWT , которая противоречит Sun -концепции виртуальной машины и переносимости джава-приложений.

Как проверить, какая версия Java установлена на вашем ПК

Откройте страницу java.com/ru/download/installed.jsp ;

– нажмите кнопку Проверьте версию Java .

Как скачать и установить Java Virtual Machine

– откройте страницу java.com/ru ;

– нажмите кнопку Скачать Java бесплатно ;

– в окне Предупреждение о безопасности нажмите Да –> Continue –> Accept Show Advanced Options Panel ) –> Next –> Next –> в окне с сообщением нажмите Finish .

Как скачать Java вручную

Чтобы скачать Java вручную, откройте страницу java.com/ru/download/manual.jsp ;

– выберите файл в соответствии с вашей операционной системой из списка, скачайте его и запустите установочный файл;

– в окне Java Setup нажмите Continue –> Accept (если вы хотите изменить путь к установочной папке или изменить другие параметры, выберите Show Advanced Options Panel ) –> Next –> Next –> в окне с сообщением Thank You! You have Successfully Installed Java нажмите Finish .

Примечания

1. После завершения установки Java может потребоваться перезапустить браузер.

2. Убедиться в правильности установки программного обеспечения Java можно, перейдя по ссылке Проверить немедленно .

3. В браузере должна быть включена поддержка JavaScript и cookies .

4. Стандартный размер скачивания составляет 7,1МБ (это минимальный объем скачиваемых файлов). Размер может увеличиться в случае выбора дополнительных функций.

5. Кроме Windows , вы можете скачать Java для Solaris , Linux .

Для Apple (OS X ) скачайте Java с сайта компании Apple .

6. Поддерживаются процессоры Intel и совместимые с ними процессоры других производителей. Рекомендуется к применению процессор Pentium с тактовой частотой 166МГц и выше в сочетании с физической оперативной памятью емкостью не менее 64МБ . Кроме того, вам понадобится как минимум 98МБ свободного дискового пространства.

7. После установки виртуальной машины Java от Sun Microsystems в создается раздел

.

После установки виртуальной машины в Реестре Windows создаются разделы

Где скачать Microsoft Java Virtual Machine

В ОС Windows некоторые программы требуют при установке наличия в системе виртуальной машины Java от Microsoft .

Microsoft VM (версия 5.00.3810 от 07.03.2003; 5,07МБ ) можно скачать по .

Как удалить Microsoft Java Virtual Machine

Чтобы удалить msjava :

– нажмите Пуск –> Выполнить ;

– в открывшемся окне Запуск программы в текстовое поле Открыть введите RunDll32 advpack.dll,LaunchINFSection Java.inf,UnInstall –> OK ;

– удалите папку \WINDOWS\java ;

– удалите файл \WINDOWS\inf\java.pnf ;

– удалите файл \WINDOWS\system32\jview.exe ;

– удалите файл \WINDOWS\system32\wjview.exe ;

– нажмите Пуск –> Выполнить ;

– в открывшемся окне Запуск программы в текстовое поле Открыть введите regedit –> OK ;

– в открывшемся окне Редактор реестра удалите разделы

;

– закройте Редактор реестра .

Как разрешить использование исполнительной среды Java (JRE ) в веб-обозревателе

What is JVM?

JVM is a engine that provides runtime environment to drive the Java Code or applications. It converts Java bytecode into machines language. JVM is a part of JRE(Java Run Environment). It stands for Java Virtual Machine

  • In other programming languages, the compiler produces machine code for a particular system. However, Java compiler produces code for a Virtual Machine known as Java Virtual Machine.
  • First, Java code is complied into bytecode. This bytecode gets interpreted on different machines
  • Between host system and Java source, Bytecode is an intermediary language.
  • JVM is responsible for allocating memory space.

In this tutorial, you will learn-

JVM Architecture

Let"s understand the Architecture of JVM. It contains classloader, memory area, execution engine etc.

1) ClassLoader

The class loader is a subsystem used for loading class files. It performs three major functions viz. Loading, Linking, and Initialization.

2) Method Area

JVM Method Area stores class structures like metadata, the constant runtime pool, and the code for methods.

All the Objects, their related instance variables, and arrays are stored in the heap. This memory is common and shared across multiple threads.

4) JVM language Stacks

Java language Stacks store local variables, and it’s partial results. Each thread has its own JVM stack, created simultaneously as the thread is created. A new frame is created whenever a method is invoked, and it is deleted when method invocation process is complete.

5) PC Registers

PC register store the address of the Java virtual machine instruction which is currently executing. In Java, each thread has its separate PC register.

6) Native Method Stacks

Native method stacks hold the instruction of native code depends on the native library. It is written in another language instead of Java.

7) Execution Engine

It is a type of software used to test hardware, software, or complete systems. The test execution engine never carries any information about the tested product.

8) Native Method interface

The Native Method Interface is a programming framework. It allows Java code which is running in a JVM to call by libraries and native applications.

9) Native Method Libraries

Native Libraries is a collection of the Native Libraries(C, C++) which are needed by the Execution Engine.

Software Code Compilation & Execution process

In order to write and execute a software program, you need the following

1) Editor – To type your program into, a notepad could be used for this

2) Compiler – To convert your high language program into native machine code

3) Linker – To combine different program files reference in your main program together.

4) Loader – To load the files from your secondary storage device like Hard Disk, Flash Drive, CD into RAM for execution. The loading is automatically done when you execute your code.

5) Execution – Actual execution of the code which is handled by your OS & processor.

With this background, refer the following video & learn the working and architecture of the Java Virtual Machine.

C code Compilation and Execution process

To understand the Java compiling process in Java. Let"s first take a quick look to compiling and linking process in C.

Suppose in the main, you have called two function f1 and f2. The main function is stored in file a1.c.

Function f1 is stored in a file a2.c

Function f2 is stored in a file a3.c

All these files, i.e., a1.c, a2.c, and a3.c, is fed to the compiler. Whose output is the corresponding object files which are the machine code.

The next step is integrating all these object files into a single .exe file with the help of linker. The linker will club all these files together and produces the .exe file.

During program run, a loader program will load a.exe into the RAM for the execution.

Java code Compilation and Execution in Java VM

Let"s look at the process for JAVA. In your main, you have two methods f1 and f2.

  • The main method is stored in file a1.java
  • f1 is stored in a file as a2.java
  • f2 is stored in a file as a3.java

The compiler will compile the three files and produces 3 corresponding .class file which consists of BYTE code. Unlike C, no linking is done .

The Java VM or Java Virtual Machine resides on the RAM. During execution, using the class loader the class files are brought on the RAM. The BYTE code is verified for any security breaches.

Next, the execution engine will convert the Bytecode into Native machine code. This is just in time compiling. It is one of the main reason why Java is comparatively slow.

NOTE: JIT or Just-in-time compiler is the part of the Java Virtual Machine (JVM). It interprets part of the Byte Code that has similar functionality at the same time.

Why is Java both Interpreted and Compiled Language?

Programming languages are classified as
  • Higher Level Language Ex. C++, Java
  • Middle-Level Languages Ex. C
  • Low-Level Language Ex Assembly
  • finally the lowest level as the Machine Language.

A compiler is a program which converts a program from one level of language to another. Example conversion of C++ program into machine code.

The java compiler converts high-level java code into bytecode (which is also a type of machine code).

An interpreter is a program which converts a program at one level to another programming language at the same level. Example conversion of Java program into C++

In Java, the Just In Time Code generator converts the bytecode into the native machine code which are at the same programming levels.

Hence, Java is both compiled as well as interpreted language.

Why is Java slow?

The two main reasons behind the slowness of Java are

  1. Dynamic Linking: Unlike C, linking is done at run-time, every time the program is run in Java.
  2. Run-time Interpreter: The conversion of byte code into native machine code is done at run-time in Java which furthers slows down the speed

However, the latest version of Java has addressed the performance bottlenecks to a great extent.

Summary :

  • JVM or Java Virtual Machine is the engine that drives the Java Code. It converts Java bytecode into machines language.
  • In JVM, Java code is compiled to bytecode. This bytecode gets interpreted on different machines
  • JIT or Just-in-time compiler is the part of the Java Virtual Machine (JVM). It is used to speed up the execution time
  • In comparison to other compiler machines, Java may be slow in execution.

Может быть откомпилирован в байт-код Java, который затем может выполниться с помощью JVM.

JVM является ключевым компонентом платформы Java. Так как виртуальные машины Java доступны для многих аппаратных и программных платформ, Java может рассматриваться и как связующее программное обеспечение, и как самостоятельная платформа, отсюда принцип "написанное однажды, запускается везде" (write once, run anywhere). Использование одного байткода для многих платформ позволяет описать Java Как "скомпилированное однажды, запускается везде" (compile once, run anywhere).

Спецификация JVM

Противостояние Sun и IBM

В 2001 году, с целью разработки стандарта кросс-платформенных Desktop-приложений, Eclipse.

IBM VisualAge. IBM удалось сбалансировать интересы свободного сообщества и интересы бизнеса (свои интересы) в лицензии Eclipse Public License, признанной FSF .

Проект успешно развивается, признан индустрией, в значительной степени отделился от IBM в самостоятельную Eclipse Foundation .


Wikimedia Foundation . 2010 .

Смотреть что такое "Виртуальная машина Java" в других словарях:

    виртуальная машина Java - Основная часть исполняющей системы Java (Java Runtime Environment; JRE). Виртуальная машина Java интерпретирует и исполняет Java байт код, предварительно созданный из исходного текста Java программы Java компилятором. JVM может использоваться для … - разработан компанией JavaSoft. Web приложения, созданные с его использованием, могут выполняться естественным образом внутри операционной системы, или браузера Web, или внутри эмулирующей среды, известной как виртуальная машина Java … Словарь электронного бизнеса

    - (JPF) свободный инструмент для проверки многопоточных Java программ. По своей сути это виртуальная Java машина (англ. Java Virtual Machine) на основе которой реализованы методы проверки моделей (англ. model checking). Это означает, что… … Википедия

    виртуальная Java-машина - Интерпретатор байт кода Java программ. Виртуальная машина, предназначенная для исполнения Java аплетов. JVM встроена в большинство веб браузеров. Это позволяет исполнять на стороне клиента Java аплеты, вызовы которых предусмотрены в… … Справочник технического переводчика

    Иное название этого понятия «Ява»; см. также другие значения. Не следует путать с JavaScript. Java Класс языка … Википедия

    Необходимо проверить качество перевода и привести статью в соответствие со стилистическими правилами Википедии. Вы можете помочь улучшить эту статью, исправив в ней ошибки. Оригинал н … Википедия

Тут дали уже много хороших и правильных ответов, но хотелось бы уточнить, что вот эта метафора:

Виртуальня машина java это тоже интерпретатор по сути

может направить по весьма ложному пути!

У слов в названиях есть достаточно точный смысл, и JVM называется именно машиной , а не интерпретатором, и не компилятором совершенно не случайно. Компилятор в Яве есть (javac), и он нужен не для выполнения программы, а именно для ее компиляции (в байткод). Имено поэтому он не входит в состав JRE (среды выполнения), а содержится в JDK (среде разработки). В самой JVM есть еще один, JIT-компилятор, который компилирует байткод в инструкции процессора во время выполнения программы, но это уже другая история, и его тоже никак не назвать интерпретатором.

По сути JVM - это процессор, только виртуальный. И как у любого процессора (железного, типа x86, или виртуального, типа CLR в.NET), у него есть свой набор опкодов , называемый байткодом . Так же точно, как на х86 может выполняться код, порожденный компилятором с C++, или Pascal, или Go, так же и на JVM может выполняться байткод, скомпилированный из Java, или Scala, или Kotlin (или даже написанный вручную), а.class -файл, это, по сути, тот же.exe (точнее.so), скомпилированный под "процессор JVM". В этом и заключается кроссплатформенность. Так же, как код, скомпилированный под х86 будет выполняться на процессоре от Intel или AMD, так же и байткод JVM будет выполняться на JVM от Oracle, IBM, OpenJDK и т.д. И даже наличие JIT, компилирующего байткод в опкод конкретного железного процессора во время выполнения, все еще не дает повода обзывать честную стековую (SUN) или регистровую (Dalvik) VM интерпретатором, пусть даже и по сути:)

Дело в том, что сама эта классификация (интерпретируемый/компилируемый ЯЗЫК) последние лет эдак 25 уже практически лишена смысла. Языкам, изначально ориентированным на реализацию в виде интерпретатора (с просто анализируемой лексикой, чтоб интерпретатор был поменьше и мог оставить самой программе достаточно места в ограниченной по объему памяти) типа APL или BASIC, сейчас (кроме, разумеется, очень узкоспециального применения) почетное место разве что в старых учебниках, из которых эту самую классификацию, с достойным лучшего применения упорством, продолжают дословно переписывать в новые. При этом, почему-то, забывают уточнить, что эти два понятия уже давно не про сами языки, а всего лишь про некоторые методы их реализации, и что с тех пор помимо этих методов появилось еще много других хороших и разных концепций на эту тему (типа VM, JIT, сборщиков мусора, да и хотя бы тех же OOП, разных видов типизации и еще миллион чего), которых в тех учебниках еще просто не было в силу их года издания. И что на сегодня уже даже для языков, принципиально заточеных для компиляции под регистровую архитектуру, типа С, есть пруд пруди интерпретаторов (раз , два , три)... которые, опять же, никто не называет виртуальными машинами, т.к. это все суть разные понятия. Короче, это все равно что пытаться понять, где в квантовой механике огонь, вода, земля и воздух, в том виде, как их понимали Платон и Аристотель:)

P.S. Чтоб осознать, когда эта классификация еще была актуальна, рекомендую вот это . Там создатели APL, одного из первых настоящих интерпретируемых языков, обсуждают насущные проблемы языкостроения того времени. Если туго с английским, посмотрите хотя бы вступление... в тех железяках было меньше памяти и вычислительной мощности, чем в современной симке:)

Понравилась статья? Поделиться с друзьями: