2014-02-08 6 views
1

Каковы цели/когда логические ворота, мультиплексоры и декодеры, используемые на уровне машины?Что логические логики низкого уровня, мультиплексоры и декодеры соотносятся с языками высокого уровня?

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

А как насчет мультиплексоров и декодеров? Какие заявления или концепции программирования вы можете сделать на языке Java, который переводится на мультиплексор или декодер на уровне машины?

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

+0

Между кодом и архитектурой процессора лежит оптимизация байткода – Leo

+0

Вы можете начать чтение о ALU, OpCodes и Buses. Не спешите догадываться. Между архитектурой процессора и кодом вы столкнетесь с множеством уровней абстракции. Вы можете найти изоморфизмы с логическими понятиями, но пусть они останутся таковыми. Логика сложного оператора 'if' не преобразуется непосредственно в эквивалентную схему. У вас есть схемы, которые эмулируют другие схемы, но только на более высоком уровне. – digenishjkl

ответ

1

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

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

  1. Java-программа скомпилирована в байт-код Java.
  2. Java байт-код интерпретируется виртуальной машиной Java (JVM).
  3. JVM сама по себе программа, которая была скомпилирована в набор инструкций.
  4. Набор инструкций интерпретируется микроархитектурой.
  5. Микроархитектура реализована с использованием цифровых логических конструкций.

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