2014 dxdy logo

Научный форум 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: Каждый учащийся на программиста должен написать:
Сообщение18.02.2011, 15:16 


24/05/09

2054
Попробуйте дезассемблировать простенькую функцию на языке высокого уровня, например $Y = sin(X)$. В результате вы получите длинную и совершенно непонятную последовательность целочисленной арифметики и циклов.

 Профиль  
                  
 
 Re: Каждый учащийся на программиста должен написать:
Сообщение18.02.2011, 15:28 
Заслуженный участник


09/09/10
3729
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: Каждый учащийся на программиста должен написать:
Сообщение18.02.2011, 15:45 


24/05/09

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

 Профиль  
                  
 
 Re: Каждый учащийся на программиста должен написать:
Сообщение18.02.2011, 16:37 
Заслуженный участник


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

 Профиль  
                  
 
 Re: Каждый учащийся на программиста должен написать:
Сообщение18.02.2011, 16:57 
Заслуженный участник


09/09/10
3729
Alexu007 в сообщении #414331 писал(а):
А что это за ассемблер такой странный?

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

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

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

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

 Профиль  
                  
 
 Re: Каждый учащийся на программиста должен написать:
Сообщение18.02.2011, 19:18 


24/05/09

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

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

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

 Профиль  
                  
 
 
Сообщение24.03.2011, 20:47 


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

 Профиль  
                  
 
 
Сообщение27.03.2011, 00:51 
Заморожен
Аватара пользователя


18/12/07
8774
Новосибирск
Каждый должен написать собственный quine на брайнфаке :-)

 Профиль  
                  
 
 
Сообщение30.03.2011, 01:30 
Аватара пользователя


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

 Профиль  
                  
 
 Re:
Сообщение30.03.2011, 08:21 


24/05/09

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

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

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

 Профиль  
                  
 
 
Сообщение01.04.2011, 10:14 


24/05/09

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

Изображение

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

 Профиль  
                  
 
 
Сообщение01.04.2011, 14:06 
Заслуженный участник


27/04/09
28128
Ждать до завтра.

 Профиль  
                  
 
 
Сообщение01.04.2011, 15:14 


24/05/09

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

 Профиль  
                  
 
 
Сообщение01.04.2011, 15:52 
Заслуженный участник


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

 Профиль  
                  
 
 Re: Каждый учащийся на программиста должен написать:
Сообщение01.04.2011, 16:20 
Заслуженный участник


04/05/09
4589
Это тоже была шутка.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 80 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Модератор: Модераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: CDDDS


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group