Цитата:
|
вот прям вообще не понимает ничего?
|
1. У процессоров ЭВМ есть "регистры". Это ячейки которые тем или иным образом хранят данные. Эти регистры есть везде - у процессора, сопроцессора, у оперативной памяти. Так вот - при занесении чего-то в эти регистры предполагается что что-то произойдет.
Основных регистров 4 - это:
ax, bx, cx, dx (32Bit).
eax, ebx, ecx, edx (64Bit).
Не знаю как сейчас - используются ли регистры 8Bit - a, b, c, d...
Это регистры процессора.
На прямую с ними работать могут только языки низких уровней, в частности assembler (в переводе - сборщик) и C++ 5 (и выше, название происходит от языка B (Б), а его в свою очередь от БИСИПЛ (BCPL)).
...
Если ты хочешь быть супер хакером - тебе придется как минимум учить С ++ за ради его мощи.
...
Как ясно из выше написанного - языки высокого уровня в частности не имеют прямого доступа к регистрам процессоров, системному стеку и т.д. - в связи с чем их потенциальные возможности ниже, но при этом программировать на них проще и быстрее.
Языки верхнего уровня в основном использую предоставляемые системой функции.
...
Далее.
Языки в принципе раньше можно было разделить на объектные и процедурные. Сейчас процедурные вполне нормально поддерживают объекты, а объектные - процедуры, так что я бы не сказал, что на данный момент эта градация актуальна.
Процедурный метод программирования - это программирование при использовании предопределенных или заданных функций.
Объектный метод - это метод программирования с использованием объектов, их свойств (переменных хранящих данные) и методов (собственно процедур (функций) объектов)...
...
Пример - если "Кошка" - это объект, то Сирин - это ее свойство, а модерировать - ее метод.
Так вот - объектные языки имеют одну очень важную вещь - в них введены "события" (перехваты управления). Но - все эти языки - интерпритируемы и являются языками верхнего уровня - так что скорость исполнения программ на них ниже чем у языков низкого уровня (самая низкая скорость исполнения у Java - за кросплатформенность приходится платить).
Компилируемые языки - это языки, код программ на которых напрямую переводится в машинный код.
Интерпретируемые языки - это языки, код которых сначала переводится в аналоговый, а потом компилируется для исполнения - при чем каждый раз при запуске программы.
C++, assembler - компилируются.
VB, Delphy, PHP, ActionScript - интерпретируются.
Примечание: VB и Delphy имеют возможность готовую програму загнать в системный инсталлятор - на этом этапе они безвозвратно компилируются.
...
Ну вот в принципе теперь ты все знаешь

...
Не, еще чуть чуть про процедурные и объектные языки...
Вот представь - есть у тебя набор свободных действий (идет, упала, села) и есть элемент - кошка.
Чтобы она пошла ты делаешь так:
1. Что делать?
2. Идти.
3. Кому?
4. Кошке.
Это процедурный язык.
А в объектноориентированном языке у тебя есть объект кошка, а уже непосредственно у кошки есть методы (функции/процедуры) и по этому чтобы объект-кошка пошла ты делаешь так:
1. Кто?
2. Кошка.
3. Что делать?
4. Идти.
Кроме того - ты объекту кошке можешь назначить событие, например:
1. Если чо?
2. Если кошка пошла.
3. Тогда сделать что?.
4. Упасть и сдохнуть.
...
Процедурные языки не предоставляют возможности использовать события предопределенные системой (потому что она их не предопределяет), но некоторые заморачиваются и делают эмуляторы сами.
...
О резервации памяти.
В языках верхнего уровня это невозможно.
В языках низкого уровня это можно сделать и делают это для того, чтобы выделить для приложения ОП, на случай если вдруг юзер или сис.процессы запустят тонну сторонних приложений - то эти приложения не смогут забить всю память так, что тебе ничего не останется.