|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Alexandr A. Redchuck 2:5020/400 04 Oct 2002 14:36:55 To : Aleksey Tarasow Subject : Re: HELP -------------------------------------------------------------------------------- 3-Oct-02 21:50 Aleksey Tarasow wrote to Igor Krassikov: AT>>> И вообще профессионал обязан его знать. (и это уже не AT>>> только мое мнение). Другой вопрос если человек не тянет на AT>>> профессионала... Профессионал в чем? В программировании встроенных систем на мелких процессорах, баз данных или рассчетных задач? В программировании или в кодировании для данного компьютера? IK>> Профессионал должен уметь работать лопатой, но карьер лучше IK>> разрабатывать экскаватором. Ты, когда надо что-то посчитать, берешь IK>> калькулятор/компьютер или логарифмическую линейку/счеты/абак?... Игорь, надо сначала уточнить - что именно посчитать :-) Когда мне по заданному соотношению резисторов надо выбрать два резистора из стандартного ряда - я беру таки логарифмическую линейку - одна установка движка и один медленный проезд бегунка - на калькуляторе дольше будет :-) Хотя если бы мне это было надо хотя бы раз в день - давно написал бы программу для PC. AT> Считаю вручную на бумаге. Мне в технаре отучили пользоваться Всё? Значит, рассчеты несложные. Я бы посмотрел, как на бумаге считают систему дифференциальных уравнений (скажем, модель резонатора лазера). 3-Oct-02 22:06 Aleksey Tarasow wrote to Andrey Belyakov: AT> беспроблем можно обходиться без него. У меня большая прозьба ко всем, в Кстати, не наезда ради а зеркала для (в смысле - взгляни на себя). Вот ты пишешь предложения, причем с запятыми. Прямо язык высокого уровня. А вот низкого уровня-то, на уровне слов - не знаешь (пишется "без проблем", "просьба"). AT> следующий раз укажите пожалуста знаете ли сам ассемблер, и есть ли у вас А тут после "пожалуЙста" неплохо бы поставить двоеточие, а перед "и" в этом предложении запятая не нужна. Hу и как ты сам следуешь собственным убеждениям? "правило тринадцатого удара" знаешь? AT> хоть одна программа чисто на нем. Знание как пишется команда mov, AT> за знание ассемблера не принимается. "Электроника-60"/ДВК-2/PDP-11 (небольшие программы писал даже в кодах, вводя их с пультового терминала) "СОУ-1"/СМ2/ HP2100, если правильно помню "аналог" (аналогично, простое тестирование аппаратуры с кнопочек/лампочек на панели мог набрать в память, а C там у меня вообще не было, только FORTRAN, но я не писал рассчетных и сложных управляющих задач, посему им не пользовался - больно долго библиотека с перфоленты линковалась :-) x86 остановился где-то на уровне 386, на уровне подпрограмм управления железом для основной программы на С. Чисто на ассемблере писал на "Hейроне" развлечения типа упаковки в один COM-файл нескольких мелких COM-файлов с вызовом по имени. iMCS51 iMCS96 PIC16 AVR Подозреваю, что многие из твоих оппонентов или имеют не меньший опыт в работе с ассемблером, или имеют опыт написания сложных больших программ с единственным знанием об архитектуре "разряность слова такая-то" (это, кстати, относится в данном случае не к железу, а к математике - двоичная арифметика, способ представления чисел). А уж есть ли на данной машине команда вычитания, или она реализуется через смену знака и сложение, есть ли деление, или оно реализуется через вычисление обратной величины и умножение, есть ли вообще на этой машине стек, или только операции типа branch-and-link - не важно. Ой, нет, последний случай желательно знать и не злоупотреблять рекурсией :-). Хотя можно не знать, почему именно лучше так не делать, а просто прочесть о таком ограничении в руководстве по реализации языка на данной архитектуре. Hе скажу, что _мне_ не нужно знание ассемблера, хотя для AVR пишу на C, для iMCS51 сейчас - практически только на C. Hо меня трясет, когда всем студентам подряд начинают давать кодировку полей mod и r/m вместо того, чтобы поучить их алгоритмам и высокоуровневым языкам. А когда ко мне обращаются "а вот хочу программировать, с чего начать" - я сначала пытаюсь выяснить _чем_ конкретно хочет человек заняться, _что_ он хочет программировать. В итоге один сейчас начал с ассемблера, другому было сказано "может, ты все-таки посмотришь в сторону более высокоуровневых язков, чем C?". Для разных задач нужен разный инструмент и надо знать только немного "поблизости". Экскаваторщик пожалуй должен уметь пользоваться лопатой, но "ой, а зачем все эти щеточки" может и не знать. Археолог еще должен уметь пользоваться лопатой но может и не знать, с какой стороны подходить к экскаватору - это не умалит его как профессионала по рытью в земле. 3-Oct-02 22:19 Aleksey Tarasow wrote to Andrey Dashkovsky: AD>> Ты заблуждаешься, т.к. это и есть технология создания компиляторов, AD>> т.е. сначала на низком уровне пишется основа, потом на этом пишется 2AT: "на этом" - это при помощи получившегося компилятора. Т.е. для новой машины сначала на асме писался минимальный по возможностям компилятор С, без оптимизации, "лишь бы заработал". Вполне мог оказаться без обработки вложенных структур и т.п. :-) Потом на этом С писался AD>> уже нормальный компилятор, и так несколько раз и этот процесс назывался "раскруткой". Hо сейчас лучше все это сделать вообще без применения ASM-а, на инструментальной машине при помощи кросс-системы. Для многих целевых архитектур "родной" компилятор вообще не делается, кому нужен С-компилятор, запускающийся на ADSP21xxx или что это будет за компилятор, если он влезет в ATmega128 :-) AT> Вот человек, один из не многих кто высказал здравую мысль. Это письмо AT> которое мне было интерестно читать. Если я правильно понял AT> "низкий уровень" как раз и подразумевает машиный код. Да, но это делалось только один раз для данной архитектуры и довольно давно. Даже в "перфоленточно/магнитно-барабанные" времена умудрялись делать компиляторы для целевой архитектуры _параллельно_ с её разработкой, когда она еще не дышит. AT> Позволю себе только одну ремарку по поводу "большинства AT> случаев": такие случае стали действительно большинством только благодаря AT> 128 Мб и уже 2 Ггц. Мой шеф в мои студенческие времена вообще не знал ни одного ассемблера. Hо вполне писал сам рассчетные задачи на фортране для своих научных проблем. И эти задачи требовали только перекомпиляции, чтобы работать толи на "минус первой", толи на ЕС-ках, толи на ДВК-2 с 56KB RAM ("прописью: пятдесят семь тысяч триста сорок четрые БАЙТА") и где-то 700KIPS (0.7MIPS) производительности. Да, и без аппартаной ПЗ. Думаю, даже с тогдашенй точки зрения было бы глупостью заставлять его учить ассемблерЫ использованных машин и переписывать программу. Гораздо больший эффект для скорости рассчетов давал правильный выбор алгоритма, выбор вида приближения, динамическое управление шагом разбиения. wbr, p.s. IMHO, есть задачи, для которых _вредно_ знать ассемблер. Лучше это время потратить на что-то другое. А толстые и неповоротливые программы - не от незнания "основ компьютера" в виде ассемблера, а от незнания "основ математики, алгоритмов и программирования". Если человек превосходно знает ассемблер, но плохо выберет метод - его программа будет или долго работать, или неправильно считать. И, наоборот, специалист в предметной области с хорошим знанием математики и алгоритмов - напишет программу, которая будет и быстрее, чем у упомянутого выше "крутого ассемблерщика", и, главное, работать _правильно_. -- /* Alexandr Redchuck, Kyiv, Ukraine */ /* real на real тчк kiev тчк ua */ --- ifmail v.2.15dev5 * Origin: ReAl at home (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/627046467828.html, оценка из 5, голосов 10
|