информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаСтрашный баг в WindowsГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 С наступающим 
 libmdbx => MithrilDB 
 700 с лишним git-серверов пострадало... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / miscellaneous
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Для непосвященных - объекты это структуры. 27.10.05 15:19  Число просмотров: 1478
Автор: Den <Денис Т.> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
> Структуры это структуры. Объекты это объекты. Связь только
> в том, что и то и то занимает память.

Разница между объектами и структурами лишь в том, что первый член структуры объекта - указатель на таблицу виртуальных методов, а обычные методы объекта вообще компилируются, как самые обыкновенные функции без всякой информации о привязке к конкретному объекту. Всякие там префиксы типа public, private и т.д. работают лишь на этапе компиляции (прошу не тыкать пальцем в сторону .NET и говорить что там все по другому).

> Вот как раз об эмуляции инкапсуляции, полиморфизма и
> наследования.

Это не эмуляция, а полноценная низкоуровневая поддержка (реализация). Эмуляция - это как раз использование макросов для создания подобия объектов.

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

Да, это именно эмуляция, а то, что "выше" - реализация.

> http://en.wikipedia.org/wiki/Assembly_language
> Assembly language or simply assembly is a
> human-readable notation for the machine language that a
> specific computer architecture uses. Machine language, a
> pattern of bits encoding machine operations, is made
> readable by replacing the raw values with symbols called
> mnemonics.


Не вижу противоречий с тем, что я написал выше.
Ключевое слово - human-readable
По твоим словам, так ассемблер должен соответствовать машинным кодам с точностью до префиксов адресации и операндов машинных кодов. Это абсурд! Вот несколько примеров:
1. Даже в старых версиях masm'а под DOS во многих случаях не обязательно указывать размерность операнда, т.к. компилятор и сам может это определить и скомпилировать верную последовательность машинных кодов.
2. Очень многие компиляторы ассемблера понимают директивы компиляции EVEN и ALIGN для выравнивания кода или данных на указанную границу, при этом для кода компилируется последовательность "пустых" машинных кодов типа NOP или пустого ADD, а для данных 0x0. Эти директивы тоже не должны восприниматься компиляторами ассемблера? Я уже не говорю о директивах сегментации...
3. "Поддержка" коментариев в исходнике. (без комментариев)
4. Условные директивы компиляции тоже не относятся к машинным кодам.
Список можно продолжить, но для начала хватит.

К слову о "human-readable": в masm'е есть что-то типа встроенного макроса под названием invoke, позволяющего программисту вызывать функцию по указанному в заголовке программы соглашению без написания кучи push и call - invoke все это делает сам при компиляции. И это уже не эмуляция, а полноценная реализация - полезная возможность для программиста.

> А про "реализацию инструментария" это вообще что-то с
> чем-то. Компилятор ЛЮБОГО языка программирования является
> таким инструментарием, тем не менее все эти языки не
> являются ассемблерами.

Ну и? Microsoft C++ и Borland С++ перестали быть "Си" от того, что каждый производитель привнес что-то своё? Сишный ассемблер перестанет называться ассемблером, если ты начнешь использовать в нем сишные типы данных?

> Когда в C появились объекты его честно назвали сначала
> Objective-C, а потом и C++, когда в Caml появились объекты
> его честно назвали другим именем OCaml, когда в Pascal
> появились объекты его честно назвали другим именем Object
> Pascal, а потом и Delphi. Это все разные языки и только
> ассемблеру по фига, что он уже не имеет ничего общего с тем
> названием которое носит?

Программы называют не столько по их содержимому, сколько руководствуясь маркетинговой политикой.
Смысл называть компилятор ассемблера Borland Object TASM или Microsoft Object MASM32???
<miscellaneous>
Эта... Есть повод для флейма... 21.10.05 14:17   [amirul, Den, J'JF]
Автор: Fighter <Vladimir> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
На одном сайте натолкнулся на вопрос:
"с какого языка начинать учить азбуку программировния - с PASCAL (DELPHI) или идти путем Си (Java)?"
И несколько ответов:
с Бэйсика
с Паскаля
с любого структурированого, но лучше с Паскаля
по-любому лучше с Бэйсика.

Предлагаю обсудить эту тему. На мой взгляд лучше Паскаль.
Че-то отвлеклись все. Может пора закрывать ветку? Или не надо? 27.10.05 18:01  
Автор: Fighter <Vladimir> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
Честно говоря, надоел уже этот флейм. Да и тема себя вроде как исчерпала. 27.10.05 18:17  
Автор: Den <Денис Т.> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Так ветка может и в книгу рекордов Гинеса попасть. 27.10.05 18:36  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Угу. Ну, ладно, подожду до вечера и закрою, если возражений нет. 28.10.05 13:14  
Автор: Fighter <Vladimir> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
Да нет, в принципе забавно :) 27.10.05 19:56  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
Жалко только что про яву мало спорят. Я очень люблю когда при мне говорят слово "кроссплатформенный". У меня сразу слюноотделение резко повышается и может родимчик приключиться. Не знаю почему.
Потом z0 проснулся неожиданно - тоже хорошо. Когда ж мы в баню-то пойдем, родное сердце?! Как раз снежок выпал, сейчас самое милое дело на фонари залиться и выскакивать из парилки в сугроб во дворе :)

Где-то на 3-й странице рассказывают разницу между объектами и структурами - всюду жизнь!
"призрак видел все!"(с) 28.10.05 14:31  
Автор: z0 <z0> Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
это не ты разве убеждал недавно петруху что в баню надо ходить общаться а не за гигиеной тела?
Гыг 27.10.05 20:12  
Автор: Den <Денис Т.> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Мыж вроде как все вместе хотели пыво пить в ГСМе, азарт прошел?
Неудобно читать стало 27.10.05 13:24  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
Предлагаю отсечь ветки бессмысленного флейма, где не обсуждается вопрос корневого поста: "С какого языка лучше начинать учить программированию".
100% точный ответ. [upd] 26.10.05 14:31  
Автор: Den <Денис Т.> Статус: The Elderman
Отредактировано 26.10.05 15:15  Количество правок: 2
<"чистая" ссылка> <обсуждение закрыто>
Начинать надо с блок-схем алгоритмов!
Кто-то не согласен?

Знаю, знаю... Я, как всегда, испортил флейм. :))
100% -е согласие! 27.10.05 05:06  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
никогда не рисовал блок-схем 26.10.05 15:28  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
Ты что в институте не учился? :-) 26.10.05 15:29  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Рисовать то я рисовал, но только для отчетности (на некоторых лабораторных в отчете надо было привести блок-схему). Сначала программа, а потом по этой программе - блок-схема :-)
Ту дык и с чего бегинерсу лучше начать? С Си или блок-схем? 26.10.05 15:46  
Автор: Den <Денис Т.> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Как по мне блок-схемы вообще надо выкинуть на свалку истории. 26.10.05 16:53  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Не видел ни одной уважаемой книжки по программированию, где были бы нарисованы эти уродцы. Книжки с UML видел, хотя он мне и не особо нравится, а вот с блок-схемами - нет.
На свалку Истории? 26.10.05 17:03  
Автор: Den <Денис Т.> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Они морально устарели? Принципы блок-схем перестали соответсвовать ныне используемым языкам?
Блок-схемы или некоторое их подобие перестали использовать при разработке больших проектов на этапе проектирования для связи между компонентами и модулями программ?
учился 26.10.05 15:39  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
Но на физика. Из программухи были только численные методы. Сдавали проги, объясняя устно как все работает.
а функциональные языки лучше вобще не учить или просто начинать с них не стоит?? 25.10.05 21:55  
Автор: zelych Статус: Member
Отредактировано 25.10.05 21:55  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
Начинать не стоит [update] 26.10.05 11:17  
Автор: amirul <Serge> Статус: The Elderman
Отредактировано 26.10.05 14:28  Количество правок: 2
<"чистая" ссылка> <обсуждение закрыто>
Но так как язык определяет вещи о которых ты способен ДУМАТЬ (не помню как назывался опыт, но для естественных языков это доказанный факт), то лучше выучить как можно больше языков и желательно с поддержкой как можно большего числа парадигм

--------------

Только что подумал, что ты мог неправильно употребить выражение функциональные языки (где то там внизу уже встречалось такое неправильно употребление). Функциональные языки это Lisp, Haskel, ML (OCaml, SML). Функиональную парадигму в той или иной мере поддерживают также мультипарадигменные языки типа python, tcl, ruby, perl

C/C++ и Pascal/Delphi никак нельзя назвать функциональными языками (хотя я встречал библиотеку темплейтов для C++, которая добавляет поддержку функциональной парадигмы в C++ - intelib называется)

Если же имелись в виду процедурные языки (не ООП), то учить их конечно тоже стоит. Если сильно хочется можно и начинать с них же.
Начинать надо с того, что ближе к машине 27.10.05 05:15  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
Тем более, что ты ведь не знаешь, какие задачи жизнь тебе подсунет. Зачем загружать себя предметно-ориентированной лабуой, котоая, возможно, никогда не понадобится? Надо знать, как эта лабуда (компилеры) функционирует и пишется, тогда, при необхоимости легко осоишь любой язык, или создашь новый под конкретную задачу.

В этом смысле С - разумный компромисс между машинным и человеческим. Он уже понятен человеку, но на нем еще можно сделать все, что угодно. Другие языки позволяют делать только то, для чего они предназначены.
1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |  10 >>  »    »»




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach