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
4582
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
4582
Это тоже была шутка.

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

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



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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