Хочу понять как работает машинный язык на компьютере и как создаются операционки?? Посоветуйте практичные книги, статьи или даже главы об этом, где более подробно объясняется.
Есть языки программирования, но это, говорят, посредники между человеком и машиной... так как кодируется железо? Я буду писать на C++ а он связывается с машинным оказывается. Значит для большей эффективности стоит писать на машинном языке?)
И чем отличается все это от создания своего языка программирования??))
Другие языки программирования и технологии
Как создается машинный язык и как он работает???
Для большей эффективности можно писать на ассемблере, он содержит легко запоминающиеся обозначения команд, ячеек памяти и регистров процессора. На машинном языке современного процесора, в двоичных кодах, человек писать уже не может - слишком запутанно. Операционные системы создаются на языках программирования достаточно высокого уровня, вроде С, со вставками на ассемблере (простые есть и чисто на ассемблере).
Как "работает" в процессоре машинный язык - это сложная схемотехника, к программированию не относящаяся. Тем более что в современных процессорах сотни миллионов транзисторов и "придумывают" их схемы компьютеры. Фактически процессор - это сам по себе очень сложный компьютер, с разными видами памяти, распараллеливанием вычислений, конвейерами команд, предугадыванием дальнейших команд и заготовкой впрок результатов вычислений, которые, может быть, и не понадобятся, переключением наборов регистров для нескольких одновременно выполняющихся процессов и т. д. .
Как "работает" в процессоре машинный язык - это сложная схемотехника, к программированию не относящаяся. Тем более что в современных процессорах сотни миллионов транзисторов и "придумывают" их схемы компьютеры. Фактически процессор - это сам по себе очень сложный компьютер, с разными видами памяти, распараллеливанием вычислений, конвейерами команд, предугадыванием дальнейших команд и заготовкой впрок результатов вычислений, которые, может быть, и не понадобятся, переключением наборов регистров для нескольких одновременно выполняющихся процессов и т. д. .
Андрей Самчук
Ассемблер это язык программирования, а не "закон" по которому существует этот язык и как следствие правила языков программирования??)
Значит для большей эффективности стоит писать на машинном языке?) - не выйдет эффективности.
И чем отличается все это от создания своего языка программирования??)) - какого своего? Написанная программа должна быть откомпилирована, а компиляторы очень сильно отличаются. К примеру то, что на Делфи Токио скомпилится за 10 мин, на с++ Токио может компилится час-два. а компилятор и переводит программу в машинный язык нулей и единиц. А человек аналогичную программу написать нулями и единицами вообще никогда не сможет. не реально. Люди создали компиляторы и языки высокого уровня и это дало большой скачок. Компиляторы допиливают, ЯП допиливают, но нулями и единицами писать:) Реально Вы не понимаете то, о чем спросили:)
И чем отличается все это от создания своего языка программирования??)) - какого своего? Написанная программа должна быть откомпилирована, а компиляторы очень сильно отличаются. К примеру то, что на Делфи Токио скомпилится за 10 мин, на с++ Токио может компилится час-два. а компилятор и переводит программу в машинный язык нулей и единиц. А человек аналогичную программу написать нулями и единицами вообще никогда не сможет. не реально. Люди создали компиляторы и языки высокого уровня и это дало большой скачок. Компиляторы допиливают, ЯП допиливают, но нулями и единицами писать:) Реально Вы не понимаете то, о чем спросили:)
Андрей Самчук
А в вопрос для того и задан, чтоб узнать детали и разницу.
Сергей Бегляров
2 часа - это какой то си++ неправильный, против 10 мин в делфи!)))
Попробую на пальцах разжевать... Ассемблер - язык программирования у которого одна мнемоника (команда) равна одной команде машинного языка (я сейчас не беру макровставки, которые просто упрощают жизнь, но надо понимать как они работают). Машинный язык - это числа. Запоминать какое число и что делает очень тяжело, а вот ассемблерные мнемоники - это сокращенное название машинных команд. Поэтому запоминать их легче. А на ассемблере при компиляции получается наиболее "чистый" код по сравнению с языками высокого уровня. Но чаще всего скорость приложений зависит не от чистоты кода, а от грамотного алгоритма. И в таких случаях идеальный код на ассемблере + плохой алгоритм будет работать медленнее чем код на си++ +отличный алгоритм. Компиляция - это перевод языка в машинный. То есть вы напишите на си++, а он откомпилирует приложение и оно при запуске будет работать (но не связываться а напрямую работать) на машинном языке. Если хотите понять Изучайте ассемблер плюс попробуйте понять как процессор переходит из реального режима в защищенный что такое локальные дескрипторы, глобальные дескрипторы, страничная организация памяти. Как только поймете это и сможете перейти из реального режима в защищенный, я думаю вопрос сам собой исчезнет.
Похожие вопросы
- Ассемблер это машинный язык, тогда зачем его компилируют в машинный-exe-как и високоуровневи язики
- Какой язык является непосредственным машинным языком?
- Всегда было интересно, каким образом создаются собственные языки программирования?
- Как создаются модули языков программирования?
- А есть ещё люди, которые в состоянии сегодня написать программу на машинном языке? Не "Hello world!", а что-то хоть мало
- Возможно ли научиться программировать на машинном языке, типа 0101001101001..? Какие плюсы и минусы?
- Что конкретно пишут на языке Java? Над чем работают ?
- Какой язык програмирования учить?Чтобы работать айтишником?
- Если процессоры работают на машинном коде то почему вместо использования старых языков создаются новые?
- Вопрос по основам машинного кода и бинарного кода. Как это работает в своей основе?