От 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, конечно будет побольше, если тупо уподобляться заданной структуре передачи параметров. Если не тупо - то столько же.