User Tag List

Страница 42 из 91 ПерваяПервая ... 383940414243444546 ... ПоследняяПоследняя
Показано с 411 по 420 из 907

Тема: Мощная среда ZXDev для разработки НА ПЯТИ ЯЗЫКАХ для ZX готова к тестированию

  1. #411

    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Это будет нарушением одного из освновополагающих принципов С/С++ - ты не платишь за то, что не используешь.
    ну и договорились, в с++ нет нормального RTTI

    Цитата Сообщение от Vitamin Посмотреть сообщение
    А разве в C#/Java он встроенный?
    да

    Цитата Сообщение от Vitamin Посмотреть сообщение
    И где такое в делфях?
    когда с ссылками на объекты работаешь, деталей уже не помню честно, 10 лет назад на дельфи программировал, подзабылось, суть если не напутал, при копированни ссылки счетчик увеличивается, при выходе из области компилятор finally вставляет втихую и вызывает уменьшение счетчика ссылок, как то так
    Цитата Сообщение от Vitamin Посмотреть сообщение
    В плюсах - читать про std::shared_ptr.
    да я понимаю что в с++ можно все что в дельфи сделать, но там это встроенное в crt либо сахаром на уровне компилятора + crt
    Цитата Сообщение от Vitamin Посмотреть сообщение
    И где это определение? Ссылочку, пожалста.
    блин потерял все свои 20томов определений, тут логики достаточно, какой это полиморфизм, если оно все упадет если подсунуть собраную где то за углом библиотеку с типом наследником от известного типа.

  2. #412

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от s_kosorev Посмотреть сообщение
    да
    Тогда почему он является вполне себе производным классом, живущим в стороннем пакете, а не в синтаксисе языка как int/long/char?


    Цитата Сообщение от s_kosorev Посмотреть сообщение
    когда с ссылками на объекты работаешь, деталей уже не помню честно, 10 лет назад на дельфи программировал, подзабылось, суть если не напутал, при копированни ссылки счетчик увеличивается, при выходе из области компилятор finally вставляет втихую и вызывает уменьшение счетчика ссылок, как то так
    Это справедливо только для СОМ-объектов. Что суть мегакостыль, в отличие от С++, где автоматические деструкторы вызываются всегда. Что и позволяет сделать любой вариант подсчета ссылок.

    Цитата Сообщение от s_kosorev Посмотреть сообщение
    блин потерял все свои 20томов определений, тут логики достаточно, какой это полиморфизм, если оно все упадет если подсунуть собраную где то за углом библиотеку с типом наследником от известного типа.
    И с чего оно должно падать?
    Runtime полиморфизм: внешний код живет в стороннем бинарнике, но должен обеспечивать определенный интерфейс (т.е. быть его наследником). Так можно сделать плагинную систему. Проблемы могут быть только в различных ABI компиляторов.
    Compile-time полиморфизм: внешний код доступен в виде исходников, обеспечивающих требуемый интерфейс (набор полей и/или методов).

    В чем проблема?

  3. #413

    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Тогда почему он является вполне себе производным классом, живущим в стороннем пакете, а не в синтаксисе языка как int/long/char?
    что бы однообразный интерфейс был, в яве/шарпе к value типам еще много чего довешено в нагрузку, и это не определение типов а хаки, алиасы на внутренние типы
    Цитата Сообщение от Vitamin Посмотреть сообщение
    то суть мегакостыль, в отличие от С++, где автоматические деструкторы вызываются всегда.
    да пусть и костыль, согласен, сборщик на голову выше, но в том данном случае замарачиваться не надо было хоть изредка, та же ситуация с динамическими массивами


    Цитата Сообщение от Vitamin Посмотреть сообщение
    Compile-time полиморфизм:
    это вообще костыль, я хочу бинарные библиотеки продавать

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Так можно сделать плагинную систему. Проблемы могут быть только в различных ABI компиляторов.
    то биш нихрена нет в C++, а слишком много если, они на то и "если"

    C# скомкомпиленая mono будет кушать и не подавится библиотеками скомпилеными любой версией MS компилятора, даже dotGNU или Roslyn, delphi, foxpro все побоку, так как есть спецификация на методанные
    Последний раз редактировалось s_kosorev; 28.09.2015 в 17:04.

  4. #414

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,716
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от s_kosorev Посмотреть сообщение
    если не ошибаюсь, на данный момент самый большой сборник библиотек это z88dk
    Не ошибаетесь. Но я имел в виду ZX-библиотек для работы из SDCC, что и обозначил. SDCC имеет лучшую кодогенерацию из всех открытых компиляторов для Z80.

    Цитата Сообщение от msm Посмотреть сообщение
    Самая большая проблема, которую я вижу - необходимость объявлять переменные и константы в отдельном блоке, а не максимально близко к месту использования.
    А вот тут я конкретно не соглашусь. Традиция модульных языков - это отделение декларативной секции от императивной, и это имеет свои преимущества - видно все переменные, которые используются в процедуре, они имеют единообразный стиль порождения, что помогает избегать *****кода в духе { int i; bla-bla-bla { int i; ... }}. По поводу многословности паскалеподобных языков много говорилось, и проблема надумана восприятием сишников, которые прощают своему любимому Си описания типа const a = 1; const b = 5; (const 2 раза!) extern int a; static char b; void fn(int a, int b, int c, int d) (int 4 раза! в Паскале можно было бы a, b, c, d: INTEGER ), но отчаянно при этом хают паскалевские секции CONST и VAR. Как по мне - Паскаль явно не поощряет *****кодить, я даже на себе ловил не раз, что на Паскале хочется чище оформлять исходники, хотя, возможно, это и психологический фактор, не буду спорить.

    Владислав Фольц внедрил в Оберон расширение - объявление переменной по месту - в компиляторе Оберон-07 для js. В том-то и прелесть, Оберон не статичен, делается под задачи. И под вкусовщину конечно наверно тоже можно.

  5. #415

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от s_kosorev Посмотреть сообщение
    что бы однообразный интерфейс был, в яве/шарпе к value типам еще много чего довешено в нагрузку, и это не определение типов а хаки, алиасы на внутренние типы
    Почему же алиасы? Вполне себе полноценные врапперы вокруг примитивных типов. Но они не в языке опять же, равно как и String.
    Так что не грузи про отсутствие строк в С++.

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

    Цитата Сообщение от s_kosorev Посмотреть сообщение
    это вообще костыль, я хочу бинарные библиотеки продавать
    От твоей хотелки это полиморфизмом быть не перестает. Просто тебе не подходит, вот и все.

    Цитата Сообщение от s_kosorev Посмотреть сообщение
    C# скомкомпиленая mono будет кушать и не подавится библиотеками скомпилеными любой версией MS компилятора, даже dotGNU или Roslyn, delphi, foxpro все побоку, так как есть спецификация на методанные
    И что тебе мешает поддержать эту спецификацию для бинарных библиотек на С++?

  6. #416

    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    видно все переменные, которые используются в процедуре, они имеют единообразный стиль порождения,
    тут тоже вопрос, я по стилю программирования люблю очень много временных переменных с осмысленными именами, может быть банально 20 переменных в процедуре

    Например (C#)

    var projectFiles = FileService.SearchProjectFiles(solutionRoot);
    var parseResult = ProjectService.AddFiles(projectFiles);

    if (parseResult.Any())
    {
    var errorMsg = ErrorLogingService.CreateFormattedErrorList(parseR esult);
    ErrorWin.Show(errorMsg);
    }

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

    тем более формальный тип который скрывается под var, без выведения типов, может быть примерно такой

    ProjectName.Backend.Solution.Modules.SolutionLoade r.Services.SolutionLoaderBase

    ---------- Post added at 18:16 ---------- Previous post was at 18:00 ----------

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Но они не в языке опять же, равно как и String.
    ну я тебе доктор, выдумал себе что то и доказываешь, еще раз, тип string в .net это buildin тип, что бы с ним как то можо работать, хаками сделали интерфейс как будто string это обычный класс. пруф? на http://referencesource.microsoft.com...stem/string.cs
    найди там указатели, работу с байтами или еще что то. Если совсем интересно станет можно в CIL посмотреть еще.
    Цитата Сообщение от Vitamin Посмотреть сообщение
    В таком случае, в С++ тоже есть "частично" автоматическое управление памятью.
    Ну я раз за С++
    Цитата Сообщение от Vitamin Посмотреть сообщение
    От твоей хотелки это полиморфизмом быть не перестает. Просто тебе не подходит, вот и все.
    Полиморфизм он или есть или нет, а не от версии ABI зависит, от версии компилятора, он параметров командной строки итд, то что может работать в каких либо тепличных условиях, это так, только для галочки
    Цитата Сообщение от Vitamin Посмотреть сообщение
    И что тебе мешает поддержать эту спецификацию для бинарных библиотек на С++?
    Потому что C++ не описывает специфики бинарных файлов хотя бы, да и вообще это тянет на библиотеку эмулирующиую дотнет, так можно сказать что C# может 1C код нативно выполнять
    Последний раз редактировалось s_kosorev; 28.09.2015 в 18:20.

  7. #417

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от s_kosorev Посмотреть сообщение
    найди там указатели, работу с байтами или еще что то. Если совсем интересно станет можно в CIL посмотреть еще.
    Не обязательно. Даже несмотря на мое полное профанство в шарпе, прекрасно понимаю код:
    Код:
            unsafe public char[] ToCharArray() {
                // <STRIP> huge performance improvement for short strings by doing this </STRIP>
                int length = Length;
                char[] chars = new char[length];
                if (length > 0)
                {
                    fixed (char* src = &this.m_firstChar)
                        fixed (char* dest = chars) {
                            wstrcpy(dest, src, length);
                        }
                }
                return chars;
            }
    Поле m_firstChar - первый символ строки. Так что std::string тоже можно считать встроенным в С++. О чем, собственно, и написано в msdn, раз уж ссылки на него:

    Цитата Сообщение от https://msdn.microsoft.com/ru-ru/library/hh279663.aspx
    Строго говоря, в языке C++ отсутствует встроенный строковый тип; в типах char и wchar_t хранятся отдельные символы — для имитации строки необходимо объявить массив этих типов, добавив конечное значение NULL (например, ASCII ‘\0’) к элементу массива за последним знаком (также называется "строкой в стиле C"). Строки в стиле C требовали написания гораздо большего объема кода или использования внешних библиотек служебных функций. Однако в современном C++ имеются стандартные библиотечные типы std::string (для 8-разрядных символьных строк типа char) или std::wstring (для 16-разрядных символьных строк типа wchar_t). Эти контейнеры STL можно рассматривать как собственные строковые типы, поскольку они являются частью стандартных библиотек, имеющихся в любой совместимой среде сборки C++.
    Полиморфизм он или есть или нет, а не от версии ABI зависит, от версии компилятора, он параметров командной строки итд, то что может работать в каких либо тепличных условиях, это так, только для галочки
    Еще раз для тех, кто на бронепоезде: от ABI зависит исключительно бинарная совместимость, а не возможность использования полиморфизма как такового.
    Тебя же не удивляет невозможность использовать компоненты с измененным интерфейсом (и версией) в старом окружении?
    Да, для С++ этот самый ABI не стандартизирован - такова цена за свободу его реализации. Повторюсь, к полиморфизму это никоим боком.

  8. #418

    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Не обязательно. Даже несмотря на мое полное профанство в шарпе, прекрасно понимаю код:
    что его понимать, он на порядок чище с++, и опять же, тут идет копирование из одного встроенного типа в другой.

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Еще раз для тех, кто на бронепоезде: от ABI зависит исключительно бинарная совместимость, а не возможность использования полиморфизма как такового.
    Блин, ты или тролишь так или я хз, иди матчасть что ли учи, когда поймешь разницу между обобщенным программированием и параметрическим полиморфизмом, тогда продолжим, меня умиляют ++программеры, они думаю познали плюсы значит познали мир, на все накладывают плюсы как эталон. Не стоит думать что все что похоже на ++ было скопировано и переиначено, есть много других моделей.

  9. #419

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от s_kosorev Посмотреть сообщение
    что его понимать, он на порядок чище с++
    Трудно сравнивать- библиотеки это вообще темный лес в плане всякого наверченного. А то что на шарпе меньше деталей приходится писать, чем на плюсах - это очевидно, он все же повыше уровнем, да и помоложе. Иначе бы нафиг не нужен был.

    Цитата Сообщение от s_kosorev Посмотреть сообщение
    , и опять же, тут идет копирование из одного встроенного типа в другой.
    Ага. Одним встроенным типом является неявный массив, другим- явный.

    Цитата Сообщение от s_kosorev Посмотреть сообщение
    Блин, ты или тролишь так или я хз, иди матчасть что ли учи, когда поймешь разницу между обобщенным программированием и параметрическим полиморфизмом, тогда продолжим
    Не троллю. А говорю, что в С++ параметрический полиморфизм обычно реализуется с помощью обобщенного программирования. О чем, собственно, говорит википедия


    Цитата Сообщение от s_kosorev Посмотреть сообщение
    меня умиляют ++программеры, они думаю познали плюсы значит познали мир, на все накладывают плюсы как эталон. Не стоит думать что все что похоже на ++ было скопировано и переиначено, есть много других моделей.
    А меня умиляют такие как ты, не знающие тех же плюсов, но активно с ними сравнивающие и подтасовывающие факты.

  10. #420

    Регистрация
    10.07.2009
    Адрес
    Санкт-Петербург
    Сообщений
    121
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Т.е. проблема только в отсутствии единомышленников ? Я знаю как минимум одного: http://rsdn.ru/forum/flame/1214478

    В этом треде не менее эпично раскатывают С/С++ в блин, авторитетно обьясняя преимущества Оберона. Думаю, Сергей бы проникся ZXDev и влился в стройные ряды разработчиков.
    ATM-Turbo1 512k
    ATM-Turbo2 1024k + TSFM
    Pentagon 128к
    Sinclair ZX-Spectrum 48+ (1шт), 128+ (1шт), +2А (2шт), +3 (3шт)

Страница 42 из 91 ПерваяПервая ... 383940414243444546 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. мощная игрушка
    от ZEman в разделе Игры
    Ответов: 128
    Последнее: 23.03.2024, 17:05
  2. Ответов: 5
    Последнее: 20.06.2011, 03:18
  3. Видеоконтроллер из пяти микросхем
    от zx-kit в разделе Изображение
    Ответов: 20
    Последнее: 31.03.2011, 14:48

Метки этой темы

Ваши права

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