alex52mail
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Большинство процессоров (CPU) работают в двоичном коде, и выполняют всего 4 операции +-*: и еще извлекают корень. Все что делает комп, и видите на экране - все алгоритмами сводиться к этим операциям. Сначала программы так и писались, на бумажной перфоленте для 2х адресных ламповых, потом на перфокартах для 4х адресных транзисторых компов в машинных кодах типа: 01 0001 0002 0003 ~ взять данные с адреса 0001, сложить 01 с содержанием 0002, и положить в 0003 В большой БЭСМ-4 было 4096 адресов, а на Луну летали с 16 кБт памяти. Второе поколение — язык Assembler до сих пор применяется для создания драйверов, ядра системы, согласование периферийных устройств, прошивок BIOS, компиляторов и интерпретатор языков. Третье поколение - языки программирования Algol, Fortran, Cobol, Pascal - писать стали так c=a+b и в 80х записывать программы на магнитные ленты. Сейчас языки C++, C#, Java, Python, PHP, Perl, Delphi, Ruby, Perl, и пишут типа $if($get(LEVEL),,$puts(DATE,)) Это удобнее программисту, но при компиляции (преобразование в машинные коды - бинарные файлы) программы становятся менее эффективны. Сейчас большинство программистов собирают в кучу готовые блоки, поэтому и имеем монстров типа Windows. Но до сих пор, для экстремальной оптимизации и эффективности (расчеты методом Монте-Карло) пишут в машинных кодах, и помещают их в память CPU Cache (L1, L2), которая в 10ки раз быстрее RAM, а RAM в 100ни раз быстрее жесткого диска.
|