Джерело зображення: pixabay.com
Я написав цей блог, враховуючи, що люди, які читатимуть це, є абсолютними новачками. Люди, які мають подібний досвід, я маю на увазі, що не зовсім технологічний досвід насправді буде важко почати навчатись програмуванню, коли немає кого керувати ними. Таким чином, я написав цей блог як люб’язність до них. Отже, кажучи мовами, що таке мова високого рівня та мова низького рівня? Чому їх навіть так називають? І наскільки вони відрізняються один від одного?
Потрібно сказати, що я висвітлював їх у цьому блозі.
Інфографіка високого рівня проти мов низького рівня
Що таке мови високого рівня?
Ви повинні бути річчю Що таке мова високого рівня? але скажи мені, що вони простіші для розуміння та зручні для користувачів. За допомогою цих мов можна писати додатки, які є портативними на різних платформах (таких як Linux або Windows) і не залежать від будь-якої архітектури (наприклад, не-Intel ARM або сумнозвісний Intel). Приклад мови на високому рівні, написання програми на python, яка за замовчуванням працює в будь-якій системі Linux, а потім просто компілює її в будь-яку програму exe, використовуючи py2exe, а потім запускає її на Windows.
Подібні приклади - Python, C, Fortran або Pascal. Такі мови вважаються мовою високого рівня, оскільки вони ближче до людських мов і набагато далі від машинних мов. Коли я кажу людською мовою, я не маю на увазі те, про що ми говоримо у своєму щоденному житті. Це означає, що код - це те, що ми можемо зрозуміти, знаючи деякі основи програмування. Написаний код майже читається людьми, те, що можна прочитати і вимовити.
Нижче наведено кілька прикладів машинної мови для друку простої програми на екрані у Fortran та C.
У Фортран:
program NewProgramF90
write(*, *) "This is a printed program"
end program NewProgramF90
Тепер ви можете скласти це за допомогою:
gfortran newprogram.f90 -o newprogram -f90-gcc
А потім просто просто запустіть його.
Подібна програма на C:
#include
main()
(
printf("This is a printed program");
)
Для чистих початківців це найпростіше, що можна отримати.
Але, оскільки ми говоримо про комп’ютери, для комп’ютера це важко зрозуміти. Тож для того, щоб зробити це розумним для комп'ютерів та запустити програму, створену мовою високого рівня, її слід скласти на машинну мову.
Джерело зображення: github.com
І ось тут знаходиться мова низького рівня. На відміну від раніше, де було лише кілька мов високого рівня, сьогодні існує n кількість мов високого рівня, таких як C, Cobol, FORTRAN, Pascal, Java, Perl, Python, PHP, Ruby, C ++, BASIC і Visual Basic .
Що таке мови низького рівня?
Мови низького рівня - це ті мови, які надзвичайно близькі до машинної мови. Вони також відомі як мови монтажу. Найбільш близькими мовами після складання до машинної мови є C та C ++. Деякі люди навіть називають C та C ++ мовами низького рівня. Машинний код відомий як низький рівень, тому що на відміну від мов програмування високого рівня, він не потребує нічого іншого, як компілятори чи щось подібне. Він працює безпосередньо на процесорі, і вони надзвичайно специфічні для архітектури.
Мови низького рівня більше підходять для розробки нових операційних систем або написання програмних кодів для мікроконтролерів. Вони можуть зробити все, що завгодно трохи важкої роботи (насправді багато важкої роботи, щоб бути конкретним), але очевидно, ви не хочете писати в ній якоїсь основної програми. Аналогічний випадок з C (насправді називається Cee). С насправді дуже велика мова для початку. Це дозволяє безпосередньо зареєструватися та надати миттєвий доступ до різних місць пам'яті.
Але в той же час він також має багато конструкцій, які дозволяють апаратним засобам завантажувати абстракцію. Чесно кажучи, C і C ++ подвійно представляють різноманітність мов, оскільки більшість мов взяли з них свої бібліотеки. На практиці і C, і C ++ є низькорівневими, як я вам казав раніше, оскільки писати додатки на рівні підприємства досить складно. Але теоретично обидва вони є власне мовами високого рівня.
Рекомендовані курси
- Професійний курс ІТ-безпеки
- Набір тренувань Ruby on Rails
- Професійний курс CSS
- Онлайн-курс HTML5 та CSS3
Характеристика мов високого та низького рівня:
Тепер річ у тому, що раз у раз мене запитують у різних інтерв'ю та інших місцях, які мені подобаються програмування на найвищому рівні чи на високому рівні. Мені здається, що немає такого поняття, як найкраще. Відповідь полягає в тому, що вони обидва мають свою спеціальність, і ви не можете замінити одну на іншу. Таким чином, мені насправді подобаються обидва.
Програмування на низькому рівні є складним і вимагає великого досвіду та знань. Особливості мов високого рівня - це те, де відбуваються всі творчі речі, тобто додатки, які люди використовують у повсякденному житті, і це можна налагодити набагато простіше, ніж на низькому рівні. І тут ви можете приступити до роботи з надзвичайно новими технологіями, оскільки багато цих мов постійно вдосконалюються завдяки підтримці громади.
Якщо ви поставите під сумнів будь-яким кодерам мови високого рівня щодо того, що їм подобається, відповідь, яку ви отримаєте, буде далеко не тим, що вам потрібно. Вони не скажуть, що краще.
Вони, напевно, скажуть, що вони більш пристрасно ставляться до конкретної мови високого рівня, і не всі вони. Я не знаю, що це відбувається. Найвідоміші приклади - Python та Ruby, і якщо ви покажете їм якісь програми, написані на зборах, то, ймовірно, піде hasta-la-vista.
Джерело зображення: mathworks.com
Що насправді чудово у багатьох мовах високого рівня, це те, що вони потрапляють до гібридної категорії. Наприклад, python надзвичайно об'єктно-орієнтований, але в той же час він також підтримує закриття та першокласні функції. Хоча вона не настільки потужна, як Scala, але вона має можливість представляти більш-менш речі, як чиста мова.
Мови високого рівня зазвичай повільні в порівнянні з мовами низького рівня. Це пояснюється тим, що мови високого рівня мають багато абстракцій та шарів коду, перш ніж вони дістаються до самого обладнання, тоді як машинний код наближається, він фактично швидко обробляє та повертає вихід. Один фрагмент коду в Python, швидше за все, отримують переклад у тисячах рядків машинних слів.
Звичайно, мови високого рівня стоять на одному рівні, коли продуктивність не потрібна, тому що ви не можете розвивати як стабільні та великі програми на низькому рівні, так і на високому рівні. Це одне, що варто пам’ятати.
Програмування на C - плутанина низького рівня / високого рівня
Хоча C має безліч характеристик, подібних до мови Pascal, іноді він все ще розглядається як мова низького рівня, тому він підтримує операції бітів, покажчиків та прямий доступ до пам'яті. C насправді є мовою високого рівня з інклюзивними особливостями низького рівня. Це головна причина, через яку програмісти залежать від C понад усе за його неперевершені якості.
Це може здатися дивним, що C, хоча трактується як мова низького рівня, є надзвичайно портативною. Фанатично кажучи, C фактично розширений для використання апаратних засобів в максимально можливих межах.
З іншого боку, мова складання ледве переносна. Хоча намагання досягти портативності - це велика справа у випадку низького рівня, особливо у випадку з Java, яка працює на JVM, тобто віртуальній машині. C або збірка, що працює в VM, ніколи не матиме чистого доступу до обладнання.
Якщо точніше, мова стає низьким рівнем, якщо вона спеціально структурована для роботи безпосередньо на апаратному забезпеченні. Мови низького рівня мають сильно виражений синтаксис, на відміну від мов високого рівня, які мають безліч кодів
Мови на низькому рівні, які дозволяють отримати повний доступ до обладнання, насправді були б поганим вибором для написання проектів.
Коли користуватися низьким рівнем?
Машинний код виглядає приблизно так, який працює надзвичайно швидко, оскільки він дуже близький до апаратного.
8B542408 83FA0077 06B80000 0000C383
FA027706 B8010000 00C353BB 01000000
B9010000 008D0419 83FA0376 078BD98B
C84AEBF1 5BC3
Зверху тут функція, написана для 32-бітної архітектури, тобто машинного коду x86 для обчислення числа Фібоначчі.
Написання машинного коду, безперечно, дуже дратує, оскільки воно потребує перевірки числових кодів раз у раз для будь-якої іншої інструкції, що виконується. У кого, до біса, є час на це? І саме тому народилося програмування на низькому рівні.
Але якщо ви запитаєте про програмування низького рівня програмістам високого рівня, відповідь, яку ви отримаєте, така:
Джерело зображення: pixabay.com
Висновок
Мови низького рівня мають додаткову перевагу: втрачають контроль над процесором, але їхні коди надзвичайно важко зрозуміти та налагодити іншими програмами. Кожна інша сім'я архітектури має власний набір асемблерної мови, це означає, що код, написаний для одного, неможливо запустити на іншому. Коротше кажучи, код не є портативним.
Переваги мови високого рівня полягають у тому, що мови високого рівня є надзвичайно портативними, з іншого боку, і вони в основному використовуються для написання програмного забезпечення, яке може працювати на багатьох платформах та архітектурах. Жоден з них не може замінити один одного, оскільки вони дві - дві сторони однієї монети.
Рекомендовані статті
Ось кілька статей, які допоможуть вам отримати більш детальну інформацію про мови високого рівня проти мов низького рівня, тому просто перейдіть за посиланням.
- Найважливіші поради Haskell Мова програмування
- HTML5 та Flash - Знайдіть відмінності
- Текстовий майнінг та опрацювання природної мови - топ-5 порівнянь
- 12 кращих кроків для встановлення мови програмування R (Короткий посібник)
- 8 Краща мова програмування мобільних додатків, яку ви повинні знати
- Важливі речі про мову програмування Haskell