Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Каждый учащийся на программиста должен написать:
1. Текстовый редактор. 16%  16%  [ 10 ]
2. Архиватор. 11%  11%  [ 7 ]
3. Калькулятор. 17%  17%  [ 11 ]
4. Реализовать длинную арифметику. 21%  21%  [ 13 ]
5. Другое 35%  35%  [ 22 ]
Всего голосов : 63
 Re: Каждый учащийся на программиста должен написать:
Попробуйте дезассемблировать простенькую функцию на языке высокого уровня, например $Y = sin(X)$. В результате вы получите длинную и совершенно непонятную последовательность целочисленной арифметики и циклов.

 Re: Каждый учащийся на программиста должен написать:
Alexu007 в сообщении #414321 писал(а):
В результате вы получите длинную и совершенно непонятную последовательность целочисленной арифметики и циклов.

Блажен кто верует!

Код:
00402874   D9FE                   fsing
00402876   DFE0                   fstsw   ax
00402878   9E                     sahf
00402879   7A01                   jp      0040287C
0040287B   C3                     ret
0040287C   DDD8                   fstp    st(0)
0040287E   D9EE                   fldz
00402880   C3                     ret

 Re: Каждый учащийся на программиста должен написать:
А что это за ассемблер такой странный? Кроме call и ret больше ничего знакомого...Вы можете объяснить, где именно какой командой выполняется вычисление? Уж не fsing ли? Тогда я сильно отстал от жизни...

 Re: Каждый учащийся на программиста должен написать:
Alexu007 в сообщении #414331 писал(а):
Тогда я сильно отстал от жизни...
На четверть века. Инструкция для непосредственного вычисления синуса появилась ещё на 387 сопроцессоре.
Но можно взять что-нибудь менее тривиальное, например функцию ошибок erf().

 Re: Каждый учащийся на программиста должен написать:
Alexu007 в сообщении #414331 писал(а):
А что это за ассемблер такой странный?

А это, извольте видеть, команды сопроцессора для работы с числами с плавающей точкой. FSIN вычисляет синус ST(0) и записывает результат в ST(0). Дальше хитроумно проверяют флаг C2, указывающий на ошибку при вычислении — переписывают флаговый регистр сопроцессора в AX командой FSTSW и грузят его в флаговый регистр процессора командой SAHF. При наличии ошибки в ST(0) пишут ноль командами FSTP ST(0)/FLDZ.

P.S. Не знаю, почему этот дизассемблер вместо fsin пишет fsing.

(Модераторам)

Нельзя ли разрезать тему на две?

 Re: Каждый учащийся на программиста должен написать:
Ну хорошо, с синусом-косинусом уели. Но может попасться мат. функция, которой нет в командах процессора - тогда она будет реализована программно. И догадаться, что это за хрень такая неизвестная реализуется командами процессора - будет ой как непросто. И очень долго. На взлом таким образом сложной программы уйдут годы, а то и вся жизнь.

Я сам в своё время баловался дизассемблированием. Но: во первых это было во времена MS-DOS - когда на одной дискете умещалась вполне приличная игрушечка, во вторых - даже тогда сравнительно легко было раскурочить программу, написанную на ассемблере же (особенно с расширением .com), и сложно - написанную на языке программирования высокого уровня.

Кроме того, в то время существовали хитрые компоновщики, создающие не поддающийся дизассемблированию код. Наверняка таковые существуют и сейчас.

 
Думаю, что компилятор/интерпретатор.
Если человек способен создать инструмент для программирования, то он программист. Это рекурсивная философия :)

 
Аватара пользователя
Каждый должен написать собственный quine на брайнфаке :-)

 
Аватара пользователя
Я считаю, что настоящий программист должен относиться к программированию не как к науке, а как к средству для решения конкретных задач в определённой предметной области, как к инструменту для моделирования. Само же программирование ради программирования, ради написания кучи кода (пусть даже красивого, с элегантной архитектурой) - как-то мелочно и глупо. Нужно решать реальные задачи, а не выдумывать чисто алгоритмические (как игра "жизнь", например).

 Re:
Esp_ в сообщении #427168 писал(а):
Думаю, что компилятор/интерпретатор.
Если человек способен создать инструмент для программирования, то он программист. Это рекурсивная философия :)

Интересно, много можно насчитать программистов, написавших собственный компилятор? В самом лучшем случае программист работал в коллективе, который энтот пресловутый компилятор создавал.

И вообще, странная логика. В таком случае настоящий шахтёр - это тот, кто самостоятельно выкопал шахту.

 
Програмисты, помогите! Срочно нужна ваша помощь!! На компьютеры на работе напал вирус!!!

Изображение

Что делать?????

 
Ждать до завтра.

 
Это была шутка нерадивого подчинённого. Он уже уволен...

 
Alexu007 в сообщении #429906 писал(а):
Он уже уволен...
А не слишком ли жёстко?

 Re: Каждый учащийся на программиста должен написать:
Это тоже была шутка.

 [ Сообщений: 80 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group