· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› ООП и асм

<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . >>

Посл.отвђт Сообщенiе


Дата: Апр 2, 2004 04:07:15

S_T_A_S_
А вы никогда не задумывались откуда и зачем вообще возникло ООП?
Задумывался. Хочешь это обсудить?

CPU и RAM - не угадали - это тоже ресурсы.
Тогда причем в постановке задачи экранная память?

AsmGuru62
Замечательно сказано!
Это моя интерпретация Ф.Брукс "Мифический человеко-месяц. Или как создаются программные системы":
... У большинства европейских соборов части, построенные разными поколениями строителей, имеют различия в планировке и архитектурном стиле. Более поздние строители испытывали соблазн «улучшить» проект своих предшественников, чтобы отразить новые веяния моды и свои личные вкусы. В итоге мирный норманнский трансепт создает конфликт с примыкающим к нему возносящимся в высь готическим нефом, и результат столь же служит восхвалению славы Господней, сколь и гордыни строителей ...


Дата: Апр 2, 2004 13:18:50

q_q
Хочешь это обсудить?

Я уже предложил простую задачку по этой теме.
Для ее решения, помимо таких очевидных вещей, как сам компьютер, стул, стол, 220V, чай, кофэ, булочки, котлеты, мозги, руки, ноги и т.д. и т.п.
необходимы и достаточны всего 2 вещи.
Одна из них - это инструмент (программа: транслятор, компилятор, интерпретатор) - выбирайте на свой вкус
вторая - концепция, способ мышления, парадигма или еще хз как это назвать - выбирайте что хотите.
Все. И на каждой странице есть ответ.

Есть и другие варианты решения.
Они или избыточны или через Жизненно Ориентированное Программирование У


Да вот еще нарыл на форуме.
Вы хорошо разбираетесь в Си, так может объясните моему крестьянскому мозгу, зачем там __asm

[ rst :
пример комбинации С и асма -
есть у тебя указатель на функцию (не статическую) - член класса. в виде void*. Нужно вызывать эту функцию для экземпляра класса. Вопрос как? А никак. (на базе шаблонов есть громзодкие конструкции, позволяющие это сделать), но блин получать 1К кода не всегда хочется. Итак вопрос - как же побороть злобный С++?
ответ - просто!
допустим функция имеет прототип:
void f();
вызвать её для эксземпляра класса, при условии, что адрес функции находится в lpf:
__asm{
push this
calll lpf
}
]


Дата: Апр 5, 2004 04:36:07 · Поправил: q_q

S_T_A_S_
может объясните
Задай этот вопрос rst.


Дата: Апр 5, 2004 14:54:43

Люди , а зачем в самом начале файле windows.inc определено , аж 5 страниц типов , которые все сводяться к одному - DWORD ?

Для того , чтобы легче было разбираться или наоборот ?


Дата: Апр 5, 2004 16:28:13

bogrus
Для того , чтобы легче было разбираться или наоборот ?
Ну да, имхо так понятнее, а вообще ... чтото я слышал про проверку типов.


Дата: Апр 5, 2004 17:35:17

Есть два прототипа:
#1. GetDlgItem (DWORD, DWORD)
#2. GetDlgItem (HWND, UINT)

Какой лучше?
Для меня - #2 - однозначно лучше.


Дата: Апр 6, 2004 13:43:44

зачем в самом начале файле windows.inc определено , аж 5 страниц типов , которые все сводяться к одному - DWORD ?

IMHO, это печать Баала. Наследие того, что виндос и MASM написаны на С.
В FASM так не обязательно делать :P


IMHO ООП - это не матершинные слова вроде инхеритация.
Это несколько другой взгляд на построение программы.


[ Зубков - Команда INT 21h вызывает системную функцию DOS. ]

Моя версия (надеюсь, The Svin меня поправит):

Команда INT 21h вызывает програмное прерывание.
При обработке этого прерывания вызывается обработчик - системная функция DOS.

Некоторые вещи делаются намного проще если уйти за рамки бесконечных IF / ELSE IF / ELSE / END IF
Inverse programming, если не ошибаюсь.


Дата: Апр 6, 2004 20:14:19

S_T_A_S_
В FASM так не обязательно делать :P
В MASM это делать тоже никто не заставляет. Просто некоторые любят использовать сишные типы для улучшения "читабельности" кода.

JaDS
чтото я слышал про проверку типов
Это из другой оперы.


Дата: Апр 6, 2004 20:37:18

Quantum
Да я знаю.. Просто MASM накладывает значительно больше стереотипов. Я еще не от всех избавился :(


Дата: Май 9, 2004 12:55:30

Лично я противник ООП в асме. ООП в сишном понимании там нафик не нужен. Меня асм привлекает тем, что написав программу и засунув ее в отладчик я увижу не что-то напоминающее по логике действий мою прогу, а непосредственно код, как если бы его выдрали из сорца. С появлением ООП эта особенность исчезнет и тогда мне останется либо игнорировать ООП, либо уйти на си. Мое мнение, что ООП - это высокоуровневое явление, а низкий уровень потому и низкий, что дает полный контроль кода программы. Можно, конечно разработать дебагер, который будет поддерживать ООП, но это опять будет совершенно не то, что я бы хотел увидеть.
Так что кесарю - кесарево.

А возражения, что на ООП проще писать программы - это ИМХО. Можете говорить, что я просто не умею писать на ООП, это ваше право. Но я могу любую задачу, типичную для ООП реализовать на асме практически за то же время, что и на ООП. А мифическая польза наследования с высокой вероятностью порождает такую прорву багов, что выигрыш в скорости написания проги полностью поглощается временем отладки.

Использование ООП - это такое же дело вкуса как и выбор языка программирования и среды разработки.


Дата: Май 9, 2004 18:05:29

[ n0p : Но я могу любую задачу, типичную для ООП реализовать на асме практически за то же время, что и на ООП ]

Как на счет классического примера: Написание GUI
Обойдемся без "всяких Vtable" и получим интерфейс командной строки?


ЗЫ
А вообще я уже понял - ООП - почти что суксь. И похоже КОП тоже. А вот есть еще клиент-серверная модель =)


Дата: Май 9, 2004 18:51:44

S_T_A_S_
Насчет ГУИ. Я бы взялся, если бы была потребность и если бы я был в материале. Ничего сверх сложного в этом нет, просто инфу надо.
ООП отнюдь не суксь. Я же сказал, что это дело вкуса. Кому-то нравится ООП, а мне нет. А цели одни. И методы схожи. Просто лично мне проще без ООП писать, хотя я знаю человека, который как раз наоборот готов все шаблонизировать и классифицировать.


Дата: Май 9, 2004 20:38:53

n0p

Браться не надо :)
Можно просто подумать как это реализовать. Окошечки разные, куда юзер мышкой ткнул и т.п.
Мы-то привыкли, что сообщения виндос шлет.
И окошки виндос сам рисует.
А если без виндоса?

ООП почему-то часто путают со Страуструпом.
А был когда-то и Xerox PARC и что-то еще.


Дата: Май 9, 2004 23:08:59

Когда я взялся за AsmDev32 - у меня уже была идея библиотеки классов. Голый ООП, конечно, никак не ускорит разработку, но сама возможность хороша, потому что при правильном подходе к ООП - повышается вероятность использования кода, написанного для одного проекта, в другом проекте. Так что не только ООП нужен, а нужна библиотека, в которой можно найти нужный базовый класс, наследовать от него и использовать имеющийся код.

Пример: сколько времени надо убить, чтобы набросать скелет MDI Application? Неплохо было бы иметь класс, который позволил бы через виртуальные методы собрать MDI любой конфигурации.

Я не спорю, что это можно сделать и без ООП - просто имея базовый код - каждый раз копируя его и добавляя или убирая код добиваться нужной конфигурации. Но, гораздо легче (и приятнее) это делать как это сделано в С++.


Дата: Май 10, 2004 07:19:53

каждый раз копируя базовый код - у этого метода есть один скрытый недостаток - может вкрасться злостная очепятка.
Причем так, что сразу-то и не заметишь :(


[offtop, да простят меня Хранители Сайта]

n0p

Как человеку, судя по всему знакомому с делфи, советую найти немного времени и посмотреть на BlackBox.
Это даст ответы на некоторые вопросы, например, откуда взялись COM, .NET, Java и пр. Весит эта штука относительно мало.

<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.093