Блиц опрос!
википедия
Компилятор - Программа, переводящая текст программы на языке высокого уровня, в эквивалентную программу на машинном языке.
Ответье плз более менее доступным языком а то там ничего не понятно, зачем такие сложности? почему нельзя сделать что бы машина понимала язык высокого уровня? можно было сразу писать проги для железа!
И еще: я так понял такая программа как RivaTuner например изпользует компилятор? ведь разгон мы ставим в системе програмно, потом с помощью компилятора это все переводиться на машинный язык и затем уже видеокарта меняет частоты так ли это?
И почему язык называют высокого уровня? почему например не наоборот, машинный язык назвать высокого уровня...
Спасибо!
Создать процессор, работающий сразу на языке высокого уровня - это задача:
- во-первых не решенная на строгом математическом уровне; алгебра Буля - основа двоичной логики - прекрасно может быть реализована на любой элементной базе (я видел простой калькулятор. реализованный на трубках с водой и прищепках)
- во-вторых, чрезвычайно трудоемкая; как следствие процессор/компьютер получается слишком дорогой
- в-третьих, не нужно думать, что языков высокого уровня 1 или 2 - их много и все они ориентированы на отдельные области применения и неэффективны в других; как следствие - потеря универсальности процессора
Компиляция - это вовсе не единственный метод программирования. А один из них. Второй - интрепретация. когда создается программа, которая на отдельные команды немедленно выполняет набор машинных команд. Классические примеры:
Windows - интрепретатор; однажды написанная система без переделок работает с произвольным железом и софтом
Unix, linux - компилятор; понимает только то железо, которое было описано в момент генерации ядра (компиляции)
У каждого из методов есть свои достоинства и недостатки
Высокого уровня потому, что одной команде на этом языке соттветствуют тысячи и десятки тысяч команд на машинном языке.
Дело в том, что машины понимают “команды” в виде электрических импульсов есть импульс 1 нет значит 0 импульсы группируются в разрядности так называемые биты 8 импульсов это 1 символ. Человек довольно сложно подсчитывать количество импульсов и он придумал программы которые переводят более понятный язык в нолики и единицы
машина понимает информацию только в виде простых команд, (как уже говорили 100011111 и т. д) иначе нельзя, но мисать такие программы человеку невозможно, зато есть языки высокого уровня с помощью которого можно набрать нужную программу зная некоторые команды и особенности языка.
Писать можно и на высоком уровне, это ассемблер. Но программировать на нем сложно, но зато эффективно. Например, написанные исходники на, допустим, С++ или Паскале, сами не запустятся, по этому их придется компилировать, а писать исходники машинным кодом, типа "01001111010010 0110000101 001101...", не является выходом.