Программирование

Языки программирования высокого и низкого уровня: что вы должны изучать?

Языки программирования высокого и низкого уровня: что вы должны изучать?

Когда вы пытаетесь выяснить, какой язык программирования выучить , вы, вероятно, встретите термины «высокий уровень» и «низкий уровень». Люди постоянно говорят о языках высокого и низкого уровня.

Но что именно это значит? И что это значит для обучения написанию кода? Давайте начнем с определений каждого и пойдем оттуда.

Языки программирования «высшего» и «нижнего уровня»

В этой статье я расскажу о языках «высокого» и «низкого» уровня. Но конкретных критериев для этого нет. Вот почему я также буду говорить о «более высоких» и «более низких» уровнях.

Просто имейте в виду, что это во многом зависит от вашей точки зрения. Если вы программист на C, Java может показаться довольно высоким уровнем. Если вы привыкли к Ruby, Java может показаться языком низкого уровня.

Машинный код и языки низкого уровня

Считается ли язык высокоуровневым или низкоуровневым (или где-то посередине) — все дело в абстракции. Машинный код не имеет абстракции — он содержит отдельные инструкции, передаваемые компьютеру. И поскольку машины работают только с числами, они представлены в двоичном формате (хотя иногда они записываются в десятичной или шестнадцатеричной записи).

Вот пример машинного кода ( через Википедию ):

8B542408 83FA0077 06B80000 0000C383 FA027706 B8010000 00C353BB 01000000 B9010000 008D0419 83FA0376 078BD989 C14AEBF1 5BC3 

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

Написание непосредственно в машинном коде возможно, но очень сложно.

Языки программирования низкого уровня добавляют немного абстракции машинному коду . Эта абстракция скрывает определенные инструкции машинного кода за объявлениями, которые более удобочитаемы. Языки ассемблера — это языки самого низкого уровня рядом с машинным кодом.

В машинном коде вы можете написать что-то вроде «10110000 01100001», но язык ассемблера может упростить это до « MOV AL, 61h ». Между тем, что написано на языке ассемблера, и инструкциями, переданными машине, все еще существует почти однозначное соответствие.

бинарный код
Кредит изображения: extradeda / Depositphotos

Переходя к более популярным языкам программирования, вы придете к чему-то вроде Хотя это и не так низко, как на языке ассемблера, все же существует сильное соответствие между тем, что написано на C, и машинным кодом. Большинство операций, написанных на C, могут быть выполнены с небольшим количеством инструкций машинного кода.

Языки программирования высокого уровня

Как и языки более низкого уровня, языки более высокого уровня охватывают широкий спектр абстракций. Некоторые из них, например Java (который, как вы могли бы поспорить, на самом деле является языком программирования среднего уровня ), все еще дают вам большой контроль над тем, как компьютер управляет памятью и данными .

Другие, такие как Ruby и Python, очень абстрактны. Они дают вам меньше доступа к этим функциям более низкого уровня, но синтаксис намного проще читать и писать. Вы можете группировать вещи вместе в классах, которые наследуют характеристики, поэтому вам нужно только объявить их один раз.

код JavaScript
Кредит изображения: micrologia / Depositphotos

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

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

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

Стоит ли изучать язык низкого или высокого уровня?

Это наверняка будет распространенным вопросом среди новых и начинающих программистов. Являются ли языки программирования высокого или низкого уровня лучше? Как и в случае со многими вопросами программирования, вопрос о языках высокого и низкого уровня не так прост.

Оба типа языков имеют важные преимущества . Языки низкого уровня, потому что они требуют небольшого количества интерпретаций с помощью компьютера, как правило, работают очень быстро. работают И они дают программистам большой контроль над хранением данных, памятью и поиском.

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

Имея это в виду, вот несколько популярных языков в диапазоне от низкого до высокого:

  • С
  • C ++
  • Джава
  • C #
  • Perl
  • шепелявость
  • JavaScript
  • питон
  • Рубин
  • SQL

Конечно, это отчасти субъективно. И это включает только крошечное сечение доступных языков.

Но это должно дать вам некоторое представление о том, где языки, в которых вы заинтересованы, попадают в масштаб.

Что ты хочешь делать?

Решая, что вы хотите изучать, ваш первый вопрос должен быть о том, что вы хотите запрограммировать .

Если вы хотите писать операционные системы, ядра или что-то, что должно работать с максимально возможной скоростью, язык более низкого уровня может быть хорошим выбором. Большая часть Windows, OS X и Linux написана на языках C и C, таких как C ++ и Objective-C.

Многие современные приложения написаны на высокоуровневых или даже предметно-ориентированных языках. Python и Ruby особенно популярны для веб-приложений. , хотя HTML5 становится все более мощным. Такие языки, как Swift, C #, JavaScript и SQL, имеют свои сильные и слабые стороны.

Рассмотрим изучение обоих

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

Конечно, изучать два языка одновременно непросто , так что вы можете поразить их. И выбор двух похожих языков может быть полезным.

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

Вскоре вы увидите параллели и получите более глубокое понимание того, как работает программирование.

Фокус на цели, а не на средства

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

Ваш проект может получить пользу от языка низкого уровня. Или это может быть гораздо более эффективным в высоком уровне. Ключ должен выбрать правильный инструмент для работы. Сконцентрируйтесь на своей цели, и вы всегда будете выбирать правильный язык.

У вас есть опыт работы с языками высокого и низкого уровня? Вы предпочитаете одно другому? Поделитесь своими мыслями в комментариях ниже!

Похожие посты
Программирование

Что такое канал RSS? (И где его взять)

Программирование

7 причин, почему изображения не загружаются на ваш сайт

Программирование

Запустите агент SQL Server: настройте SQL Server 2012

Программирование

15 лучших бесплатных обоев дня Святого Патрика