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

 WASM Phorum —› WASM.HEAP —› Ваше мнение...

<< . 1 . 2 . 3 .

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


Дата: Окт 16, 2004 01:47:19

volodya
Какой-то автор сказал, что самый лучший способ выучить язык начать писать на нём программы, с асм'ом этот способ вполне прокатил, посмотрим что получится с высокоуровневыми, сейчас пишу(пытаюсь) проги и на С/C++ и Delphi %)


Дата: Окт 16, 2004 08:28:57

delphi не востребован. На этом берегу океана он просто никому не нужен. Я не говорю, что настолько крут, что готов обозреть все софтверное поле канады ;) Я просто говорю, что слышал достаточно и видел достаточно. ;)


Дата: Окт 17, 2004 09:03:54

Хех, есть ляпсус, признаю.
Однако, для меня та фраза не более чем убеждение. А оно, как известно, субъективно.
На самом деле, сравнивать 2GL и 4, 5GL - это ... (сами догадаетесь).


Дата: Окт 20, 2004 02:57:36

ElvisInterrupt
1. Классы и структуры(как их представить человеку имеющего только опыт низкого уровня)
2. Их реализация на низком уровне
3. Работа компиляторы когда он видит такие вещи
можно также виртуалные функции!

Можно я тоже отвечу?

P.S. Я здесь, наверное, самый нетипичный. Я в детстве (80-е) прочитал несколько книг с обзором языков Бейсик, Це и Фортран, где писалось, что на Бейсике сложную программу не напишешь, на Це запутаешься и будешь долго отлаживать, а Фортран мёртв. Потом я в школе изучал Паскаль, а затем нашёл книги по асму. Потом появился компьютер и было много асма. А серьёзное программирование на ЯВУ появилось после. То есть путь снизу вверх.


Дата: Окт 20, 2004 03:01:44

Володе

Я на Делфи не писал (почему - отдельный рассказ), при этом считаю Паскаль идеальным языком для написания небольших программ. На Паскале я писал как раз маленькие программы. Если оставить в стороне коммерческую пригодность, то почему ты на Делфи так взъелся? (я помню, ты и раньше высказывался о нём плохо)


Дата: Окт 20, 2004 04:42:07

„Если оставить в стороне коммерческую пригодность, то почему ты на Делфи так взъелся? (я помню, ты и раньше высказывался о нём плохо)“
Дык Володя сказал же, что делфи нигде, кроме как в снг не котируеся.


Дата: Окт 20, 2004 05:29:15

Совершенно верно. Программируй на дельфи, бог в помощь. Хоть на паскале, хоть на алголе, хоть на аде. Хоть вообще в маш. кодах. Но работы не найдешь и пойдешь класть булочки на конвеер. Потому что эти языки спросом не пользуются. Вот и все. Индустрия сама сделала выбор, какие языки использовать. Что кто бы по поводу С/С++/Perl/Java/PHP не говорил - это стандарт. C# - да. VB - хуже, но тоже ничего. Ассемблер для системщиков. PLC. Обо всем остальном и близко ничего не слышал. Что важнее, не только я ничего не слышал, все мои ничего не слышали.


Дата: Окт 20, 2004 09:40:07

masquer
> Дык Володя сказал же, что делфи нигде, кроме как в снг не котируеся.

Замечательно! Видимо у маркетологов Borland крышу снесло раз они продвигают сей продукт ;-) , да ещё и так шустро развивают :-) наверно это потому что он исключительно СНГ и нужен ;-)


Дата: Окт 20, 2004 18:25:05

Короче, мне надоели эти споры. Разумеется, я не представляю себе ситуацию в америке. Могу говорить лишь за часть канады. Пиши хоть ручкой на дисплее.


Дата: Окт 20, 2004 18:46:08

Foamplast

У меня именно так снизу в верх, то бишь интеловская совместимость. :))) Но блин, привык уже к ячейкам памяти, регистрам и т.д. Даже порты родные, и если встречу че- нить вроде "B8 08 21" испугаюсь меньше чем от класса. Так как я знаю что это! Блин помню теорию автоматов, как мы там на элементах шеффера и стрелках пирса и инверторах такие вещи с помощью К155 серии творили просто диву даешься.
А тут какой то класс, а когда чела который уже год кодит спрашиваешь, а что это такое? он репу чешит и чето мычит, а когда меняешь "class" на "struct" и все работает у него волосы чуть ли не выпадают, а у меня ответы вопросы так и не исчерпываются!


Дата: Окт 21, 2004 01:18:05

Володе
Ну вот и разъяснил. Просто я думал, что тебе сам язык чем-то не нравится. Я придерживаюсь такого же мнения по поводу стандартов индустрии программирования. Только Бейсик не люблю, хотя за последние 15 лет он сильно изменился. Действительно мне кроме FASM/C++/VB/PHP/JavaScript ещё ничего реально не понадобилось.


Дата: Окт 21, 2004 02:09:26 · Поправил: Foamplast

ООП

ООП (объектно-ориентированное программирование) - полезный метод планирования и структуризации программ. Описано с использованием несуществующего объектно-ориентированного ассемблера FASM++. В первой части основы даны весьма упрощённо. Знатоков ООП просьба это учитывать.

Концепция такова:

Есть объекты. Есть классы объектов. Класс и объект (также можно сказать экземпляр класса) соотносятся между собой как тип данных и переменная. Например, имея тип DWORD можно создать переменную dwSize этого типа, а имея класс MYCOOLCLASS можно создать объект AnObject этого типа.

То есть объекты можно рассматривать как переменные. Они могут быть глобальные, локальные и всякие другие. Их, как и переменные, можно размещать в обычной памяти и в стеке.Классы состоят из членов. Членами могут быть данные и функции. Например, у класса "окно" могут быть членами-данными х, у, ширина и высота, а членами-функциями Показать() и Спрятать(). Классы - это на самом деле структуры, состоящие из членов-данных.

Предположим, у нас есть следующий класс:
класс ОКНО{

  ; члены-данные

  hwnd rd 1
  x rd 1
  y rd 1
  ширина rd 1
  высота rd 1

  ; члены-функции

  Создать()
  {
    Push 0
    Call [GetModuleHandle]
    
    Push 0
    Push Eax
    Push 0
    Push 0
    Push 0
    Push 0
    Push 0
    Push 0
    Push WS_VISIBLE
    Push 0
    Push szWindowClassName
    Call [CreateWindow]
   
    Mov  [hwnd], Eax
  }

  Показать()
  {
    Push 1
    Push [hwnd]
    Call [ShowWindow]
  }
  
  Спрятать()
  {
    Push 0
    Push [hwnd]
    Call [ShowWindow]
  }
  
}


Что произойдёт, если мы где-то в программе напишем следущее:
section .code

  ; ...
  
  AWindow.Показать()

  ; ...

section .data

  szWindowClassName  db  "EDIT", 0

section .bss

  AWindow  ОКНО


А вот что: следом за строкой szWindowClassName, сразу после нуля, будут зарезервированы 5 двойных слов (под hwnd, х, у, ширину и высоту, соответственно). Также будет определена метка AWindow, значением которой будет являться адрес первого из двойных слов (в данном случае - hwnd). Также будут определены метки ОКНО.Создать, ОКНО.Показать и ОКНО.Спрятать, которые будут указывать на начало кода функций ОКНО.Создать(), ОКНО.Показать() и ОКНО.Спрятать(),соответственно.

Строка AWindow.Показать() в отладчике превратится в
  Mov  Ecx, AWindow
  Call ОКНО.Показать


То есть классы - это структуры, которые состоят из данных и функций. При создании экземпляра класса (объекта) создаётся структура, состоящая из членов-данных. Члены-функции ассемблируются один раз и являются общими для всех экземпляров. При вызове метода класса в регистр Есх помещается смещение данных объекта, чтобы функция-член знала, с какими данными работать. В нашем примере функция ОКНО.Показать ассемблируется в
ОКНО.Показать:
  
  Push 1
  Push [Ecx + ОКНО.hwnd]
  Call [ShowWindow]
  
  Ret



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


Дата: Ноя 4, 2004 03:38:54

Блин, этот топик, что, вообще не читают? Я тогда дальше писать не буду.


Дата: Ноя 4, 2004 04:34:17

Foamplast
Я вот читаю ;-) Т.к. для меня ООП тоже чуждый и непонятный элемент/метод программирования. Может тебе статью написать, типа "Введение в ООП" c ещё более подробным изложением..


Дата: Ноя 4, 2004 05:41:08

Foamplast
основы даны весьма упрощённо ... вообще не читают? Я тогда дальше писать не буду
Например, я жду, когда дойдешь до наследования и виртуальных функций?

Asterix
Может тебе статью написать
Imho в эфире обсуждать не удобно.

<< . 1 . 2 . 3 .


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