От
|
Iva
|
К
|
Александр
|
Дата
|
21.08.2009 23:37:37
|
Рубрики
|
Россия-СССР; Крах СССР; История; Идеология;
|
похоже это вы не пробовали
Привет
вы бы посмотрели что такое простой вызор SUBROUTINE или OUTPUT
там и не 50 строк за строку будет
>но даже не полюбопытствовал скомпилировать програмку в язык ассемблера, где исходный текст в виде комментариев, да посмотреть во сколько ассемблерных команд на самом деле компилируется строка языка высокого уровня. 3-4. Особенно если речь о фортране. Пожалуй единственное исключение - арифметические выражения и вызовы фунцкий, но приделать к ассемблеру затычку, которая их транслирует не сложно. В чем там "великий прорыв"?
а цикл? не видели что получается?
>Преимущество языков высокого уровня в переносимости с одной архитектуры на другую. А недостаток в трудностях привязки к технической базе. Будь то экзотическая система 60-х годов, нынешний "слабый" специализированный микроконтроллер или офигенно мощный, но специализированный графический процессор.
>В 60-х проблемы переносимости не стояло. А проблема экзотического железа стояла и очень остро.
тут согласен. Но это не снимает проблему производительности труда программиста. И трудности отладки - чем сложенее конструкция и чем больше в ней строк - тем сложнее.
Поэтому лучше, когда за тебя часть работы сделает язык высокого уровня и его компилятор.
>>Т.е. писание на асемблере, в общем случае, это нужда. Жестокая, фиговая нужда.
>
>Ерунду пишете. Какая у ученого "жесткая нужда"? Просто если написать процедуру кластерного анализа ДНК чипов или подобной информации для графической платы, чтобы работало в 50 раз быстрее обычного компа, можно изучать проблемы, которые рыньше заняли бы слишком много времени или денег. Жесткое любопытство заставляет, а никак не нужда :). А в универе мне было прикольно оптимизировать до предела поиск сайтов рестрикционных ферментов в ДНК. Битовыми операциями на 32-битных регистрах. Нужды никакой. Просто интересно, а как следствие - возможности.
Ограничение по ресурсам - по железу. Просто ваш опыт соверменный - мегабайты тут и там. А когда вам надо все запихнуть в 64-256К - тогда это уже не интерес - а насущная необходимость.
Нет хуже работы - пасти дураков. Бессмысленно храбрых - тем более.(Киплинг).
От
|
Александр
|
К
|
Iva (21.08.2009 23:37:37)
|
Дата
|
22.08.2009 11:07:27
|
Re: похоже это...
>Привет
>вы бы посмотрели что такое простой вызор SUBROUTINE или OUTPUT
>там и не 50 строк за строку будет
Берем простенькую прогу и транслируем ее в визуальном с++
#include "stdafx.h"
#include
using std::cout;
using std::endl;
void soubroutine()
{
int j=0;
while (j<5)
j++;
}
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"hello";
soubroutine();
return 0;
}
и глядим что во что транслируется вывод и вызов подпрограммы в строчках 16 и 17 соответственно.
; 16 : cout<<"hello";
push OFFSET ??_C@_05CJBACGMB@hello?$AA@
mov eax, DWORD PTR __imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A
push eax
call ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z ; std::operator<< >
add esp, 8
; 17 : soubroutine();
call ?soubroutine@@YAXXZ ; soubroutine
Вывод на консоль 5 строк
Вызов подпрограммы одна строка.
>>но даже не полюбопытствовал скомпилировать програмку в язык ассемблера, где исходный текст в виде комментариев, да посмотреть во сколько ассемблерных команд на самом деле компилируется строка языка высокого уровня. 3-4. Особенно если речь о фортране. Пожалуй единственное исключение - арифметические выражения и вызовы фунцкий, но приделать к ассемблеру затычку, которая их транслирует не сложно. В чем там "великий прорыв"?
>
>а цикл? не видели что получается?
Видели
; 11 : while (j<5)
cmp DWORD PTR _j$[ebp], 5
jge SHORT $LN3@soubroutin
Две строчки.
----------------------------
http://www.orossii.ru
От
|
А.Б.
|
К
|
Iva (21.08.2009 23:37:37)
|
Дата
|
22.08.2009 10:26:59
|
Re: Полагаю - пробовал.
>тут согласен. Но это не снимает проблему производительности труда программиста.
Только ее не надо исчислять в "строках\час" - будет как с СССР и госпланом. :)
Реальность такова, что толпы кодировщиков разучились чумать четко и связно. Именно из-за пристрастия только к языкам высокого уровня.
Кстати - вызов подпрограммы - спецом для "языков вусокого уровня" - реализуется именно 3-4 строками асма. Там есть такая фича как "ENTER/LEAVE" - команды процессора. Для RISC, конечно будет побольше, если тупо уподобляться заданной структуре передачи параметров. Если не тупо - то столько же.