Содержание
Цель любого языка программирования - превратить дорогой компьютер в пресс-папье в полезное устройство для обработки и хранения данных. Язык, выбранный для выполнения этой задачи, должен быть сбалансирован между эффективностью и простотой использования. Машинный язык представляет собой конец спектра для обоих факторов.
Машинный язык
Машинный язык создает единственный набор инструкций, который компьютер понимает без переводчика. Компьютеры могут воспроизводить аудио и видео, обрабатывать и хранить данные, взаимодействовать с Интернетом и выполнять другие специализированные задачи, отвечая на набор инструкций, распознающих только единицы и нули. Написание сотен строк кода с использованием только единиц и нулей - утомительная задача, которая способствует популярности языков высокого уровня, таких как C и Java.
Первоначальные преимущества
Первый персональный компьютер IBM был оснащен 512 КБ оперативной памяти и дисководом на 360 КБ. После того, как операционная система была загружена в память с дискеты, программы загружались в оставшееся пространство памяти, оставляя небольшую область ОЗУ, обычно менее 100 КБ, для обработки данных активной программой. В то время основной заботой программиста было создание краткого и эффективного кода. Инструментом программирования, наиболее используемым на этих компьютерах, был машинный язык, который может быть значительно меньше, чем версия, написанная на BASIC или C. Также было немного проще использовать язык ассемблера.
Зависимость от платформы
Машинный язык указывает непосредственно на аппаратное обеспечение компьютера, давая программисту полный контроль над каждым аспектом выполнения программы. Недостатком этого подхода является то, что программист должен знать архитектуру каждого набора интегральных схем (наборов микросхем) для написания эффективного кода. При изменении компонента, такого как видеокарта или контроллер диска, необходимо обновить код, чтобы распознать и использовать новое устройство.
Языки высокого уровня
Преимущества машинного языка в скорости и низком использовании памяти перевешиваются сложностью написания инструкций уровня микросхемы в двоичном коде. Наличие гигабайт ОЗУ и терабайтов хранилища устраняет необходимость в кратком и эффективном коде на современных персональных компьютерах. Требования к дополнительной памяти и хранилищу программ, написанных на языках высокого уровня, таких как C и Java, больше не являются фактором при выборе платформы разработки. Простота использования и обслуживания являются предпочтительными факторами скорости и эффективности в большинстве современных программных проектов.