
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.218] |
![]() |
|
Страницы: (31) « Первая ... 24 25 [26] 27 28 ... 30 31 ( Перейти к последнему сообщению ) |
Сообщ.
#376
,
|
|
|
Там ООП МЕЖДУ ПРОЧИМ содраное с С++ почти полностью (привет Биллу) а так там больше букаффок Добавлено А как из Си сделали С++ ? а из С++ -> Java ? Добавлено Асм - не переносимый язык с одного процессора на другой это еще одна причина поменьше им пользоваться Си, например, создавали как переносимый ассемблер а Java, ПОЛНОСТЬЮ машинно-независимый язык Добавлено Цитата AndNot @ Да и библиотек по модификации Форта в Бейсик и Паскаль уже хватает, Си тоже пишется. Ну макросами на СИ то же можно многое понаписать (а ведь ранее так и делали) |
Сообщ.
#377
,
|
|
|
Цитата impik777 @ МЕЖДУ ПРОЧИМ содраное с С++ почти полностью (привет Биллу) Да нифига. Там модель-то совершенно иная. C++ основан на статической типизации. Цитата impik777 @ а Java, ПОЛНОСТЬЮ машинно-независимый язык ![]() |
Сообщ.
#378
,
|
|
|
impik777 - сорри - у тя одно голословние - не несущее никакой смысловой нагрузки.
Где в потверждении высказывания Цитата impik777 Там ООП МЕЖДУ ПРОЧИМ содраное с С++ почти полностью в примерах - чтоб сравнить??? чет я самниваюсь что ты к кодингу имеешь какоенить отнашение.. Цитата Асм - не переносимый язык с одного процессора на другой асм переносим алгоритмически - так как оперирует в основном логическими командами and/not/or/xor операция cmp - присутствует так же у сех процов как и флаги (зеро/перенос/негатив и пр)... |
Сообщ.
#379
,
|
|
|
Цитата mICRo @ impik777 - сорри - у тя одно голословние - не несущее никакой смысловой нагрузки. Где в потверждении высказывания содранные енумы ![]() ![]() Public Enum slpBorderStyles None = 0 FixedSingle = 1 End Enum в описании модуля класса ![]() ![]() Public WorldName As String Public WorldMusic As String Public Day As Integer Public Month As Integer Public Year As Integer Private monthes(12, 1) As Variant Private map(100) As String Private coords(100, 4) As Variant Private PassToNext As Integer Private Variables As New Collection Private Sub Init_World_Consts() '..................................... End Sub Public Function GetPosMap(X, Y) As String GetPosMap = Mid(map(Y), X, 1) End Function наследования я тоже встречал тока синтаксис ща не помню Цитата mICRo @ асм переносим алгоритмически - так как оперирует в основном логическими командами and/not/or/xor операция cmp - присутствует так же у сех процов как и флаги (зеро/перенос/негатив и пр)... а как же регистры и всякое такое ? Цитата mICRo @ в примерах - чтоб сравнить??? Дико извинясь просто у меня сейчас много работы и посещаю форум быстрыми набегами поэтому хорошие исходники приводить нет времени а плохие лишь вызовут различные гневные отклики Цитата mICRo @ чет я самниваюсь что ты к кодингу имеешь какоенить отнашение.. я приводил много сырцов на С++ ![]() на Джаве не привожу, т.к. во многом она очень похожа на С++ |
Сообщ.
#380
,
|
|
|
Цитата impik777 @ наследования я тоже встречал тока синтаксис ща не помню И множественное наследование там тоже есть? Цитата impik777 @ на Джаве не привожу, т.к. во многом она очень похожа на С++ ява совсем на похожа на C++ |
Сообщ.
#381
,
|
|
|
Цитата mo3r @ И множественное наследование там тоже есть? Если честно, по наследованию, я видел сырцы где было одиночное, про множественное не знаю но знаю другое, что дядя Билл заявил, что сделает в Базике все возможности С++ особенно это касается версий с 6,0 Добавлено Цитата mo3r @ ява совсем на похожа на C++ ну синтаксиса там оч много похожего и даже некоторый упрощен например интерфейсы а идеология проектирования почти совпадает не видел особых различий да на Джаве шаблонов нет и более жесткий контроль типов и объекты создаются тока динамически и есть сборщик мусора |
Сообщ.
#382
,
|
|
|
Цитата impik777 а как же регистры и всякое такое ? да пофик на регистры и всякое такое. покури исходники какого нить эмулятора (рекомендую сеговский [/B]Gens[B] - весч, три проца эмуляцца (SH4,68x0,Z80) + всякое такое) и всё станет ясня (кто у кого чё содрал). |
Сообщ.
#383
,
|
|
|
Цитата impik777 @ Если честно, по наследованию, я видел сырцы где было одиночное, про множественное не знаю Так одиночное много где есть. А вот именно множественного практически нигде нет. Знаю, что есть в C++, CLOS, про другие не знаю. Цитата impik777 @ а идеология проектирования почти совпадает не видел особых различий Идеологии отличаются очень сильно. Цитата impik777 @ и более жесткий контроль типов Контроль типов там менее жесткий, именно потому что нет такого сильного статического контроля. Нету enum'ов, шаблонов (жалкое подобие в виде генериков не рассматриваем). Цитата impik777 @ и объекты создаются тока динамически и есть сборщик мусора Вот в этом очень много отличий. На C++ можно многие вещи с помощью объектов с автоматическим временем жизни, что значительно упрощает код. Простой пример: ![]() ![]() int read_from_file(const string& filename) { ifstream f(filename); int i; f >> i; return i; } И все. Файл точно будет открыт (или будет кинуто исключение) и точно будет закрыт (а в яве за этим надо следить явно). Этот механизм позволяет перенести как инициализацию, так и деинициализацию в одно место — в место объявления объекта. Или другой пример: ![]() ![]() class GdiObjectChanger { private: HDC dc; HGDIOBJ obj; bool del_obj; public: GdiObjectChanger(HDC dc, HGDIOBJ obj, bool del_obj = true): dc(dc), del_obj(del_obj) { this->obj = SelectObject(dc,obj); } ~GdiObjectChanger() { obj = SelectObject(dc,obj); if (del_obj) DeleteObject(obj); } }; class GdiBkModeChanger { public: HDC dc; int bkmode; public: GdiBkModeChanger(HDC dc, int newmode):dc(dc),bkmode(newmode) { bkmode = SetBkMode(dc,bkmode); } ~GdiBkModeChanger() { bkmode = SetBkMode(dc,bkmode); } }; class GdiTextColorChanger { private: HDC dc; COLORREF col; public: GdiTextColorChanger(HDC dc, COLORREF col):dc(dc),col(col) { GdiTextColorChanger::col = SetTextColor(dc,GdiTextColorChanger::col); } ~GdiTextColorChanger() { col = SetTextColor(dc,col); } }; class DcPreparer { public: DcPreparer(HDC dc); private: GdiTextColorChanger colch; GdiObjectChanger objch; GdiBkModeChanger bkmch; GdiObjectChanger bkgch; }; DcPreparer::DcPreparer(HDC dc) :objch(dc,CreateFont( -20, 0, 0, 0, FW_DONTCARE, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, L"Times New Roman")), colch(dc,RGB(255,63,255)), bkmch(dc,TRANSPARENT), bkgch(dc,CreateSolidBrush(RGB(0,127,0))) { } В итоге мы имеем удобную штуку для использования: если нам надо нарисовать что-то, мы просто создаем объект внутри функции и забываем про него. В итоге код сильно сокращается и упрощается. ![]() ![]() void Scene::draw(HDC dc, int x, int y) { Frame::DcPreparer dcp(dc); for (It i = objects.begin(); i != objects.end(); ++i) { (*i).second->draw(dc,x+(*i).first.x,y+(*i).first.y); } } А в лиспе, благодаря макросам, возможны еще более удобные конструкции подобного рода («обрамляющие» некий кусок кода). |
Сообщ.
#384
,
|
|
|
Цитата impik777 @ Цитата (AndNot @ Сегодня, 15:39) И как же в С++ добавить "возможности изменения синтаксиса Форта"? А как из Си сделали С++ ? а из С++ -> Java ? А что, в С++ можно синтаксис менять? ИМХО ты немного путаешь понятия. Какой в Си, Паскаль и некоторые другие языки, изначально заложен синтаксис, таким он и останется, какие бы ты либы не подключал. Ты можешь написаль парсеры, но это немного другое, и зачем мне иметь С++ чтобы программировать на Паскале ![]() Цитата impik777 @ Асм - не переносимый язык с одного процессора на другой это еще одна причина поменьше им пользоваться Ха-ха-ха, но не смешно, а говорил что асм знаешь. Я когда то переносил программы с КР580ВМ80 на x86(с 8-ми битного на 16-ти), ничего сложного, были конечно тонкости, но это скорее к особенностям архитектуры (в то время, если не знаешь, программы напрямую работали с железом). Цитата impik777 @ а как же регистры и всякое такое ? Серия x86 наверное самая примитивная, и и перенести на другой процессор можно даже без переделки сорсов, автоматически. Цитата impik777 @ Си, например, создавали как переносимый ассемблер ![]() Цитата impik777 @ Ну макросами на СИ то же можно многое понаписать (а ведь ранее так и делали) А ты не задумывался почему их сейчас не рекомендуют использовать? Цитата impik777 @ содранные енумы Если уж на то пошло, то енумы появились задолго до Си ![]() |
Сообщ.
#385
,
|
|
|
Цитата impik777 @ да на Джаве шаблонов нет Уже давно есть со времен выхода Java 5 |
Сообщ.
#386
,
|
|
|
Ну, дабы тебе не быть голословным, приглашаю тебя вот в эту тему: Строка->Число и жду от тебя варианта на асме (или форте), "уделывающего" уже предложенные варианты по производительности. Дабы, так сказать, познать человеческий фактор во всей его красе. Цитата AndNot @ А что, в С++ можно синтаксис менять? В определенном смысле. |
Сообщ.
#387
,
|
|
|
Цитата Си создавали как замену асму PDP. В нем очень много осталось от того динозавра хм.. кстати DEC PDP - был (да и остаёться) весьма шикарным процессором с восьмю 16-ти битными регистрами. Помню его по БК0011, с которого начинал азы низкоуровнего-программирования (да и ломания игрух). Восьмеричные машинны коды очень легко читались (без всякого дизасма), и даже порой посещала идея сделать байт код, что ли, используя подобную архитектуру. |
Сообщ.
#388
,
|
|
|
Цитата Flex Ferrum @ и жду от тебя варианта на асме (или форте), "уделывающего" уже предложенные варианты по производительности. Дабы, так сказать, познать человеческий фактор во всей его красе. После завра гляну. Интересно даже будет посмотреть Форт ![]() Цитата Flex Ferrum @ В определенном смысле. Это ты про что? Цитата mICRo @ хм.. кстати DEC PDP - был (да и остаёться) весьма шикарным процессором с восьмю 16-ти битными регистрами. Вот и хрен то что был. Увы ![]() |
Сообщ.
#389
,
|
|
|
Цитата AndNot @ Это ты про что? Ну, например про превращение С++ в средство для описания LL-грамматик (boost::spirit), в средство для описания конечных автоматов (boost::statechart), ну и т. п. Знаю, что С++ превращали в Lisp. |
Сообщ.
#390
,
|
|
|
Цитата linuxfan @ Уже давно есть со времен выхода Java 5 Там генерики. От шаблонов отличия существенные. |