Показать сообщение отдельно
Старый 17.02.2011, 17:19   #7
Январь
Команда сайта
 
Аватар для Январь
 
Регистрация: 14.05.2009
Адрес: Москва
По умолчанию

Цитата:
вот прям вообще не понимает ничего?
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. Упасть и сдохнуть.

...

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

...

О резервации памяти.

В языках верхнего уровня это невозможно.

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