Как компьютер понимает код программы

Представьте, что вас на улице спросили, как дойти до ближайшей аптеки. Для того, чтобы объяснить дорогу, вам нужно использовать язык, который понимает человек, и набор конкретных инструкций (ориентиров), которые помогут ему достичь цели.

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

Как и в случае с естественными языками (испанский, английский, китайский и другие), существуют различные языки программирования: Python, Java и C++. Каждый из них имеет свой набор правил и синтаксис, которые программисты используют для написания кода.

Инструкции компьютеру могут быть как простыми (например сложи число А и число Б), так и очень сложными: например, выполни действия, необходимые для создания видеоигры или мобильного приложения. Код на определенном языке — набор действий, которые приведут к конкретному результату.

Чем язык программирования отличается от алгоритма

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

Пишу программу в машинных кодах

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

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

Почему языки программирования появляются и исчезают

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

  • Требования пользователей и разработчиков меняются. Например, новый язык программирования может быть создан для решения конкретных проблем или для использования преимуществ новых аппаратных или программных возможностей. По мере развития технологий могут появляться новые языки программирования, отвечающие новым требованиям.
  • Языки программирования устаревают. Им на смену приходят новые, которые предлагают лучшую производительность, функции или простоту использования. Например, COBOL, язык программирования, который широко использовался в 1970-х и 1980-х годах, был постепенно вытеснен Java, Python и JavaScript, которые предлагают более современные функции и которые легче изучать и использовать.

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

Читайте также:
Плюсы и минусы программы занкова

Как на самом деле работает двоичный код?

Elbrus Bootcamp

Вам может также понравиться.

Что такое браузерные события

Что такое браузерные события

Что такое алгоритмы в программировании

26 мая 2023 г.

Что такое алгоритмы в программировании

Что такое frontend и backend разработка

15 мая 2023 г.

Источник: elbrusboot.camp

Как компьютер понимает команды?

Есть двоичный код-условное обозначение нулей и единиц для пк(есть напряжение и нет напряжения).
А как пк понимает,что делать при команде 010011,а что при 0010011?
ну,например,есть ребенок лет 3-х,ему дают предложение-сходи,купи телефон-команда
наша азбука-двоичный код,а ребенок-пк,
Но нужно же еще объяснить этому 3-х-летнему ребенку,что значит купить,ходить и телефон
Примерно и такой вопрос у меня про компьютеры.

  • Вопрос задан более трёх лет назад
  • 6152 просмотра

7 комментариев

Простой 7 комментариев

rockon404

Потратьте время на чтение любой хорошей книги по архитектуре компьютера.
Антон Спирин, нужно выбрать-«для чайников»,или там все «для чайников»?

rockon404

1Tima1, начните с Таненбаума
1975 года нормально,или самое то?
Антон Спирин, какое издание лучше?

rockon404

1Tima1, Архитектура Компьютера 6-ое издание. В оригинале вышла в 2012.

5d37198414b8c138901506.jpeg

Антон Спирин, поехали)

Решения вопроса 1

Zoominger

System Integrator

Слишком размытый вопрос.
«Понимает» не ПК, а процессор, который принимает процессорные команды и выполняет их, гоняя байты и биты, посылая определённые сигналы по шинам другим устройствам и из всего этого, через уровни абстракции от нижних к верхним, происходит просмотр котиков на Ютубе.
Подробное объяснение займёт страниц этак двадцать в общих чертах.

Ответ написан более трёх лет назад
Нравится 3 21 комментарий

но нужно же сначала забить «эти процессорные команды» в сам процессор!
ведь если вы напишите что-то другое,то он не поймет

Zoominger

но нужно же сначала забить «эти процессорные команды» в сам процессор!

ведь если вы напишите что-то другое,то он не поймет

«Мы» ничего не пишем, пишут компиляторы, которые точно знают, что делают, как и инженеры-проектировщики ЦП.

Рональд Макдональд, так я не говорю не про ассемблер,я имею в виду-как процессор понимает команды такие-100101010010101001010101010110

Zoominger

1Tima1, всё несколько сложнее, чем просто 0101001010101.

Рональд Макдональд, ну может есть какое-то объяснение??
это же должны были понять еще первые создатели компьютеров?!

Zoominger

1Tima1, если заниматься этим вот прям серьёзно, то советую книги по архитектуре старых процессоров типа Intel 8086, по нему есть даже статьи, которые дадут составить хоть какое-то представление.

Просто чем дальше, тем больше навешивали на ЦП разные примочки, из-за чего даже простое объяснение размажется реально на сотни страниц.

Иван,
вы про и и или?
ну вот есть,нет,есть,есть,нет и что процессор с этим сделает?

Griboks

1Tima1, на всех ход подается 111001, процесс включается определённый каскад, корой отвечает за этот код (очень грубо). По сути, это схемотехника, только в ней в миллион раз больше конденсаторов, резисторов, катушек и транзисторов.

Griboks, можно чуть подробнее после того как я написал код-10100110?

Griboks

1Tima1, он превратился в электрический ток и отправился на схему

Griboks, ну то есть 1-есть напряжение-получится электрон,0-нет напряжение-будет пустота?
и что с этим током будет в схеме?

Читайте также:
Как сделать интерфейс программы на си

Griboks

1Tima1, нет, 1110 — это 5 вольт, а 10001- это 4 вольта и т. п. Дальше в схему подается как на уроках физики в школе, только чуть сложнее.

а как там постоянно чередуется 4,5,5,5,4,5,4,4 вольта
Griboks, последовательность разных напряжений это вообще как?

Griboks

1Tima1, ладно, я пытался помочь, но лучше вам просить почитать пару книг.

Zoominger

Griboks, вас тоже надолго не хватило? 🙂

Рональд Макдональд, вот только не надо!
почему то,что вы уже изучаете несколько лет,я должен понять сразу!

Zoominger

1Tima1, почему то, что мы изучаем несколько лет, вы ждёте, что мы объясним в двух предложениях?

Рональд Макдональд, а почему вы смеетесь над тем,что я хочу понять и узнать больше?
вас тоже надолго не хватило? 🙂

Zoominger

1Tima1, да никто не смеётся, просто у вас на один наш ответ сразу десять вопросов 🙂
Рональд Макдональд, ну не сразу понял, хочу подробнее узнать
плохо что ли?!
Ответы на вопрос 4

Adamos

Есть прекрасная книжка: «Код. Тайный язык информатики».
Позволяет выкинуть из головы детские фантазии и начать изучение с реальности.

Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать

Давайте попробуем коротко:
процессор компьютера состоит из более, чем миллиона транзисторов. Они то открываются, пропуская ток (сигнал), то закрываются.
0 и 1 это значение сигнала (если так можно выразиться). 0 — сигнала нет, 1- сигнал есть.
Последовательность 1 и 0 определяет открытие и закрытие различных транзисторов.

То, как будут выполняться команды на процессоре, определяют создатели процессоров. Но всё тянется от булевой логики и базовые операции определены давно.

Например вы вводите умножение двух чисел: 2 * 2. Пропустим компиляцию или интерпретацию в машинный код. Когда двойка становится 10 (в двоичной системе), она проходит через транзистор и в память пишутся данные. Такое происходит со всей операцией (Умножение тоже имеет своё обозначение для процессора. Это операция «И». Т.е.

10AND10 дадут в результате сигнал вида 100, что будет интерпретироваться как 4).
В итоге в ячейке памяти записывается результат 4.

Важно понять, что все операции происходят на транзисторах с сигналами (0 и 1). Транзисторы образуют сложные комбинации для выполнения длинных и более сложных команд, чем умножение или сложение.
А то какие операции выполняют эти комбинации транзисторов, уже лучше читать в книжках.

Вот есть неплохое (достаточно простое в понимании) видео

Источник: qna.habr.com

Компилятор VS интерпретатор: ключевые отличия

Компилятор VS интерпретатор: ключевые отличия

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

Компилятор

Что такое компилятор?

Компилятор — это компьютерная программа, которая переводит компьютерный код с одного языка программирования на другой. Компилятор берет программу целиком и преобразует ее в исполняемый компьютерный код. Для этого требуется целая программа, так как компьютер понимает только то, что написано двоичным кодом. Задача компилятора — преобразовать исполняемую программу в машинный код, который и распознается компьютером. Примерами скомпилированных языков программирования являются C и C++.

Читайте также:
Прекращена работа программы java exe

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

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

Интерпретатор

Что такое интерпретатор?

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

Интерпретатор представляет собой машинную программу, которая непосредственно выполняет набор инструкций без их компиляции. Примерами интерпретируемых языков являются Perl, Python и Matlab.

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

Как это работает?

Сначала компилятор создает программу. Он анализирует все операторы языка, чтобы проверить, правильны они или нет. Если компилятор найдет какую-нибудь ошибку, он выдаст соответствующее сообщение. Если же он не обнаружит никаких ошибок, то преобразует исходный код в машинный. Компилятор связывает различные кодовые файлы в программы, которые можно запустить (например, формата .exe).

После этого запускается программа.

Интерпретатор создает программу. Он не связывает файлы и не генерирует машинный код. Происходит построчное выполнение исходных операторов во время исполнения программы.

Преимущества и недостатки

Преимущества компилятора

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

Недостатки компилятора

  • Поскольку переводится вся программа, она использует гораздо больше памяти компьютера.
  • При работе с компилятором невозможно изменить программу, не вернувшись к исходному коду.
  • Необходимо создавать объектную программу перед окончательным исполняемым файлом. Это может занять много времени.
  • Исходный код должен быть на 100% верным для создания исполняемого файла.

Преимущества интерпретатора

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

Недостатки интерпретатора

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

Различия

Рассмотрим основные различия между компилятором и интерпретатором

  • Сложные ИИ-модели созданы с помощью некачественных данных
  • ЕС ужесточает регулирование в сфере использования искусственного интеллекта
  • Парадокс надежности ИИ

Источник: nuancesprog.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru