Какво представляват компилаторите?  - 1

„Здравей, Амиго. Казвам се професор Ханс Нудълс. Аз съм ръководител на Научния съвет тук по Галактическата треска. Също така наблюдавам усorята ни да те научим на програмиране на Java.“

„Здравейте, професор Нудълс.“

„Бих искал да ви обясня защо Java е много готин език за програмиране.

„Ще чуете повече от веднъж, че несравнимото предимство на Java е нейната независимост от платформата . Какво е това и за Howво служи, ще попитате? Нека използвам заобиколен подход.“

„Компютърът може да изпълнява само най-простите цифрови команди. Когато обучаваме кучета, ние използваме команди като „Петка“, „Разклащане“ и т.н., за да накараме кучето да направи нещо, което ние искаме да направи.“

"За компютрите числата играят ролята на такива команди. Всяка команда е представена от определено число or code (понякога наричан машинен code)."

„Но наистина е трудно да се напише програма, използваща само числа, така че хората изобретиха езиците за програмиране и компилаторите . Езикът за програмиране може да бъде разбран Howто от хората, така и от компилаторите. Компилаторът е специална програма, която преобразува програма, написана на език за програмиране, в серия от машинни codeове."

„Програмистът обикновено пише програма на език за програмиране и след това стартира компилатор, който превръща файловете с програмен code, написани от програмиста, в един файл с машинен code – крайната (компorрана) програма.“

  • Програма на C++
  • Компилатор
  • Машинен code

"Получената програма може да бъде изпълнена от компютъра веднага. Лошата новина е, че codeът на крайната програма силно зависи от процесора и операционната система. Това означава, че програма, компorрана за Windows, няма да работи на смартфон с Android."

„Значи, ако напиша програма и я компorрам за Android, тя няма да работи на Windows?“

"Точно."

"Виждам."

„Въпреки това Java използва много по-иновативен подход.“

  • Програма на Java
  • Java компилатор
  • Специален независим от платформата code (byte code)
  • JVM
  • Машинен code

„Компилаторът на Java не компorра всички класове в една програма с машинен code. Вместо това той компorра всеки клас независимо и, нещо повече, не в машинен code, а в специален междинен code (bytecode). Байтcodeът се компorра в машинен code при стартиране на програмата."

„И така, кой компorра програмата в машинен code, когато се изпълнява?“

"Има специална програма, наречена виртуална машина на Java (JVM). Тя трябва да се стартира първо, когато трябва да стартирате програма с byte code. JVM ще компorра byte codeа в машинен code, преди програмата да бъде изпълнена."

"Интересно. Защо ще е необходимо?"

„Това е много мощен подход и една от причините за тоталната доминация на Java.“

„Този ​​подход позволява програми, написани на Java, да се изпълняват на почти всяко устройство: компютри, смартфони, банкомати, тостери or дори кредитни карти!“

"Готино!"

„Този ​​подход има много предимства. Ето защо всички програми за Android са написани и на Java. Благодарение на бързия растеж на индустрията за мобилни телефони, Java доминира в следните области на програмиране:

1)Предприятие: тежки сървърно-ориентирани applications за банки, корпорации, инвестиционни фондове и др.

2)Подвижен: мобилна разработка (смартфони, таблети), благодарение на Android.

3)Мрежа: PHP е начело, но Java завладява солиден дял от пазара.

4)Голяма информация: разпределени изчисления в клъстери, състоящи се от хиляди сървъри.

5)Смарт устройства: програми за интелигентни домове, електронни устройства, IoT хладилници и др."

„Java не е просто език, а нещо като екосистема: мorони готови модули, които можете да използвате във вашата програма; хиляди онлайн общности и табла за съобщения, където можете да получите помощ or съвет.“

„Колкото повече програми пишете на Java, толкова повече отговори ще намерите на въпроса „Защо Java?“. Това е за днес.“

„Благодаря ви, професоре. Беше наистина интересно и вдъхновяващо.“