Re: HELP

From
Mike Bolshakoff ()
To
Alexey Desyatnik
Date
2002-10-21T22:33:37Z
Area
RU.ALGORITHMS
From: Mike Bolshakoff <ttw@eurocom.od.ua>

Hi, Alexey Desyatnik!

В качестве некоторого итога, пока [ко]модератор окончательно не
прикрыл этот топик. Ничо, шо я такой наглый? ;)

Кажется, весь флейм свелся к потивостоянию тех, кто владеет асмом, 
и тех, кто не :) 

Cерьезно, давайте оставим в стороне обсуждение необходмости
фундаментальных знаний, поскольку это бесспорно. Равно как и призывы
"Лишнее знание вредно!", потому что лажа это.

Мне кажется, что вопрос лежит в двойственности понятий "прогаммист"
и "ассемблер".

В разрезе данного обсуждения, лучше поделить оба понятия пополам:

1. Ассемблер - это:
1.1. Язык ассемблера, т. е. язык конкретной программы,
перерабатывающей менмоническое обозначние  машинных команд
неокоторого процессора в сами команды. Включая в понятие "язык"
всякие условности типа seg para 16 .386 .stack macro struct и всю
остальную фигню, имеющую отношение больше к прихотям разработчика
ассембера, чем к набору команд процессора.
1.2. Собственно набор команд процессора. Кажется, путаница идет
оттого, что никто не воспринимает машинный код как
последовательность нулей и единиц (что было бы правильно), а все
воспринимают его сквозь призму мнемоник какого-либо языка
ассемблера.

2. Программист - это:
2.1. Условино назовем "кодировщиком" кренделя, который имеет своею
задачею реализовать некоторую конкретуную задачу на некоем языке
программирования. Это может быть и чек, работающий кодировщиком в
составе большого проекта, но также и хлопец, в одиночку лабающий
некую утиль, либо подпрограмму, имеющую дело с железом, и пр.
Отличительной особенностью этого типа будеи считать вот что:
Кодировщик имеет дело с _конкретными_ ОС, компилятором, процессором
и другим железом. В отличие от:
2.2. "Разработчика", который разрабатывает полностью
отвлеченную от железа блок-схему. Опять же либо в составе проекта,
либо в одиночку но на языке столь высокого уровня (каком-нть
скрипте), что ограничен только высокоуровневыми понятиями.

(Мимоходом осмелюсь высказать такую мысль: большинство программистов
попадают в первую группу.)

Кому-то терминология может показаться неудачной, но не будем
придираться к словам, друзья! Раз все согласны, идем дальше.

1. Для "разработчика" ни какой-либо язык ассемблера, ни машинный
код не представляют абсолютно никакого интереса, и от знания,
либо от незнания оных для себя ни он, ни его программа ничего не
вынесут. Точка.

2. С другой стороны, ассемблер давно потерял свое значение как
средство написания _программ_. НО: ассемблер не потерял и никогда
не потеряет своего занчения как средство написания _под_программ
(фрагментов драйверов, фирмварей, протчей лабуды).

3. Таким образом мы пришли к последнему варианту: "кодировщик" 
против "машинного кода". В данном случае, напомню, мы ограничены
одним лишь железом (в частности процессором), одним компилятором,
и одной ОС. В этом конкретном случае, из двух кодировщиков,
один из которых владеет машинным кодом целевой системы, а
второй нет, наиболее эффективный код на любом языке
программирования напишет первый. Ша. Эта адназначна (с)


С уважением,
Mike W. Bolshakoff
<mailto:ttw@eurocom.od.ua>

--- ifmail v.2.15dev5
 * Origin: Demos online service (2:5020/400)