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

Заполняем пробелы — расширяем горизонты!

О работе процессора компьютера: часть 2

Чем отличаются процессоры?

Рассмотрим важные моменты, касающиеся того, как работает процессор компьютера. Начнем с того, чем отличаются процессоры?

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

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

бездушный механизм

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

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

Если следующая команда отменяет предыдущую (к примеру, первая команда позволяет записать данные в регистр, а вторая команда удаляет данные из этого же регистра), то процессор будет выполнять такие команды, нисколько «не задумываясь» над бессмысленностью своих действий.

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

Еще хуже, если программа будет направлена не на созидание (обработку данных), а на разрушение (например, на удаление важных и нужных данных, или на выгрузку этих данных несанкционированным образом), то процессор безупречно и без всяких «угрызений совести» в точности выполнит все инструкции на уничтожение или кражу важных данных.

вирус exe файл

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

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

Как компьютеры складывают числа

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

разработчики антивирусных программ

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

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

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

Читайте также:
Лучшая программа для электриков

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

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

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

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

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

Без исправного процессора – нет ПК. Процессор – это своего рода мозг компьютера, делающий его способным к обработке информации, что и обеспечивает выполнение компьютером всех возложенных на него задач.

P.S. Статья закончилась, но можно еще прочитать:

Источник: www.compgramotnost.ru

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

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

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

Особенности языка программирования

Язык программирования – это технический, искусственный язык, обладающий некоторыми свойствами естественного. Так, в любом из них есть лексика, синтаксис и семантика. Программист обязан соблюдать алгоритм, иначе код получится нерабочим. Схема одинакова практически для любого языка программирования – хоть для Fortran, появившегося в 50-х годах прошлого века, хоть для React 2012 года.

На данный момент существует более 8 тысяч языков программирования.

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

Тенденции в сфере программирования:

  1. Регулярно появляются новые языки программирования с более простым форматом создания кода (переход на высокоуровневые системы).
  2. Более актуальными становятся платформы, поддерживающие облачные технологии, сайты и мобильные приложения.
  3. Разнообразие несколько усложняет изучение материальной части, переход на другие языки иногда затруднен из-за различий в механике.

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

Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей

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

С понятием «алгоритм» пользователи сталкиваются в момент составления технического задания. Он представляет собой четкий порядок действий и правил их выполнения и не зависит от выбранного инструмента реализации. Фактически алгоритм является частью любого языка, за счет него программисты составляют логику выполнения.

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

Синтаксис Java

Различия касаются следующего:

  1. Одна и та же команда (алгоритм) выглядит по-разному в зависимости от языка программирования.
  2. Понимание алгоритма упрощает выполнение техзадания на любой платформе.
  3. Высокоуровневые языки проще для понимания, чем низкоуровневые типа Ассемблера.

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

Как компьютер понимает языки программирования

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

Как работает компилятор языка

  1. Исходный текст программы прогоняется через модуль компилятора.
  2. После запуска происходит выполнение заданного алгоритма программы.
  3. В ряде случаев возможна декомпиляция и редактирование кода.

При отладке используется интерпретатор, который считывает и выполняет программу пошагово, с визуальным отображением результата. Интересный факт – оба приложения (компилятор и интерпретатор) также написаны на том или ином языке программирования. Они представляют собой тот же набор машинного кода, который ранее был неким исходным текстом, например на C++.

Многие программы состоят из неких стандартных модулей типа «открыть окно ввода данных». Чтобы упростить и ускорить создание продуктов, все чаще применяются готовые библиотеки кода. Они представляют собой заранее написанные и проверенные модули, которые достаточно вставить в текст. Или сохранить в отдельном файле, куда программа будет периодически обращаться.

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

Пиком развития модульного программирования считаются фреймворки. Типичные представители этой категории для разработки веб-ресурсов – Bootstrap, React.js, Django, Laravel, Angular. На рынке подобных «изделий» насчитывается несколько десятков. Такие инструменты часто называют «новыми» языками программирования.

Новые языки программирования

Причины разработки новинок:

  1. Изменение локальных и сетевых технологий.
  2. Рост мультимедийных возможностей оборудования.
  3. Возрастают потребности пользователей компьютеров.

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

Что лучше изучать новичку

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

Можно начать с Python, а следом за ним осваиваться с Java и C++. Остальные языки программирования берут многое из синтаксиса перечисленных базовых платформ. Если акцент изначально ставится на разработке сайтов, стоит поработать над навыками в PHP, Ruby, JavaScript. Программы для мобильных устройств чаще пишут на Objective-C, Swift и Java.

Чтобы стать востребованным, нужно владеть минимум 5 языками.

Читайте также:
Программа что где когда 13 сектор

Источник: timeweb.com

Как компьютер понимает язык программирования?

Когда мы хотим что-то запрограммировать, то с помощью ЯП мы обращаемся к ISA(Instuction set architecture).

Инструкции процессора (ISA)

ISA – набор инструкций процессора. Они отличаются, в разных архитектурах процессоров – разные команды.

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

ISA делится на два набора инструкций: RISC и CISC. CISC – применяется в процессоре с архитектурой x64/x86.

x64/x86 – архитектура процессора для настольных компьютеров.

RICS – это упрощенный набор инструкций и он применятся в процессоре с архитектурой MISC и ARM.

MISC – архитектура процессора с упрощенным набором инструкций.

ARM – архитектура процессора для мобильных устройств.

Конвейер(Pipeline)

Работой процессора управляет конвейер(Pipeline).

Pipeline – команды выполняются последовательно, как обработка на конвейере.

Получает инструкцию для выполнения —> декодирование инструкции и определение её типа —> АЛУ выполняет вычисления, если это указано в инструкции —> извлекает данные из памяти, если об этом указано в инструкции —> возвращение в регистры или в память.

Оперативная память (RAM)

Во время работы программа использует оперативную память компьютера.

RAM — блок из ячеек, туда помещают какие-либо данные.

Работать с этими физическими ячейками позволяет механизм управления RAM– virtual memory. Этот механизм работает еще и с жестким диском(винчестером).

Virtual memory работает с памятью как со страницами или блоками, обычно, каждый по 4Kb.

Управлением этих страниц занимается таблица страниц(Page table).
На этапе работы виртуальной памяти могут быть проблемы со скоростью работы по двум основным причинам: paging и page fault.

Paging – прием виртуальной памяти, когда она помещает страницу на винчестер и при необходимости её возвращает.

Page fault – ошибка, когда виртуальная память обращается к листу, которого нет или он закрыт для чтения.

Stack

На этапе компиляции программы компилятор просит у процессора небольшой кусок памяти – stack. С его помощью можно контролировать исполнение программы от начала и до конца.

Он работает по принципу «первый зашел, последний вышел».

В каждой программе есть входная точка или функция, она вызывается самой первой. Функция загружается в stack и поверх неё накладываются локальные переменные, другие функции и все остальное, которые для stack`а называются фреймами.

Фрейм состоит из 3 частей: параметры функции, указатель на предыдущий фрейм и локальные переменные.

Когда фрейм завершается, он вызывает предыдущий и так до тех пор пока первая функция не выйдет из стека. Размер стека зависит от программы.

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

Heap

Вся остальная память, которая не входит в stack. называется свалкой или heap.

В heap можно создавать и удалять данные и объекты в любой момент времени, поэтому она сложнее в структуре и медленнее в работе.

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

Следующий конспект начнет большой цикл конспектов о архитектуре компьютера.

Источник: telegra.ph

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