Другие языки программирования и технологии

Как создается машинный язык и как он работает???

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

Есть языки программирования, но это, говорят, посредники между человеком и машиной... так как кодируется железо? Я буду писать на C++ а он связывается с машинным оказывается. Значит для большей эффективности стоит писать на машинном языке?)
И чем отличается все это от создания своего языка программирования??))
Для большей эффективности можно писать на ассемблере, он содержит легко запоминающиеся обозначения команд, ячеек памяти и регистров процессора. На машинном языке современного процесора, в двоичных кодах, человек писать уже не может - слишком запутанно. Операционные системы создаются на языках программирования достаточно высокого уровня, вроде С, со вставками на ассемблере (простые есть и чисто на ассемблере).
Как "работает" в процессоре машинный язык - это сложная схемотехника, к программированию не относящаяся. Тем более что в современных процессорах сотни миллионов транзисторов и "придумывают" их схемы компьютеры. Фактически процессор - это сам по себе очень сложный компьютер, с разными видами памяти, распараллеливанием вычислений, конвейерами команд, предугадыванием дальнейших команд и заготовкой впрок результатов вычислений, которые, может быть, и не понадобятся, переключением наборов регистров для нескольких одновременно выполняющихся процессов и т. д. .
Минздрав
Минздрав
91 269
Лучший ответ
Андрей Самчук Ассемблер это язык программирования, а не "закон" по которому существует этот язык и как следствие правила языков программирования??)
Значит для большей эффективности стоит писать на машинном языке?) - не выйдет эффективности.
И чем отличается все это от создания своего языка программирования??)) - какого своего? Написанная программа должна быть откомпилирована, а компиляторы очень сильно отличаются. К примеру то, что на Делфи Токио скомпилится за 10 мин, на с++ Токио может компилится час-два. а компилятор и переводит программу в машинный язык нулей и единиц. А человек аналогичную программу написать нулями и единицами вообще никогда не сможет. не реально. Люди создали компиляторы и языки высокого уровня и это дало большой скачок. Компиляторы допиливают, ЯП допиливают, но нулями и единицами писать:) Реально Вы не понимаете то, о чем спросили:)
Андрей Самчук А в вопрос для того и задан, чтоб узнать детали и разницу.
Сергей Бегляров 2 часа - это какой то си++ неправильный, против 10 мин в делфи!)))
Попробую на пальцах разжевать... Ассемблер - язык программирования у которого одна мнемоника (команда) равна одной команде машинного языка (я сейчас не беру макровставки, которые просто упрощают жизнь, но надо понимать как они работают). Машинный язык - это числа. Запоминать какое число и что делает очень тяжело, а вот ассемблерные мнемоники - это сокращенное название машинных команд. Поэтому запоминать их легче. А на ассемблере при компиляции получается наиболее "чистый" код по сравнению с языками высокого уровня. Но чаще всего скорость приложений зависит не от чистоты кода, а от грамотного алгоритма. И в таких случаях идеальный код на ассемблере + плохой алгоритм будет работать медленнее чем код на си++ +отличный алгоритм. Компиляция - это перевод языка в машинный. То есть вы напишите на си++, а он откомпилирует приложение и оно при запуске будет работать (но не связываться а напрямую работать) на машинном языке. Если хотите понять Изучайте ассемблер плюс попробуйте понять как процессор переходит из реального режима в защищенный что такое локальные дескрипторы, глобальные дескрипторы, страничная организация памяти. Как только поймете это и сможете перейти из реального режима в защищенный, я думаю вопрос сам собой исчезнет.
AB
Alisher Bobomurodov
15 389