The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Проект Mozilla представил релиз компилятора для языка програ..., opennews (??), 24-Янв-12, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


25. "Проект Mozilla представил релиз компилятора для языка програ..."  +3 +/
Сообщение от анонимус (??), 24-Янв-12, 13:09 
Ваня такой Ваня...
Ответить | Правка | Наверх | Cообщить модератору

28. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Ваня (??), 24-Янв-12, 13:19 
А теперь объясни мне "на пальцах" что из себя представляет "бинарная совместимость со структур данных двух разных языков программирования".
Ответить | Правка | Наверх | Cообщить модератору

35. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 13:29 
> А теперь объясни мне "на пальцах" что из себя представляет "бинарная совместимость
> со структур данных двух разных языков программирования".

Существуют конвенции о том, как должны выглядеть структуры данных после компиляции. Так, struct {int_8_t a; long b int_32_t} может в целом занимать как пять байт, так и шестьдесят четыре, если не придерживаться какой-то конкретной конвенции выравнивания (т.е. b может находиться по смещению +4, так и по смещению +1). Однако если её не придерживаться, между собой не будут совместимы не только обьектные файлы разных языков, но и обьектные файлы одного языка, скомпилированные разными компиляторами. Поскольку основная часть библиотек написана на Си, совместимость с Си важна для любого языка. Так понятно?

Ответить | Правка | Наверх | Cообщить модератору

36. "Проект Mozilla представил релиз компилятора для языка програ..."  –3 +/
Сообщение от Ваня (??), 24-Янв-12, 13:33 
Открываю вам Америку: структуры АБСОЛЮТНО ВСЕХ языков программирования "бинарно совместимы".
Ответить | Правка | Наверх | Cообщить модератору

39. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 13:44 
> Открываю вам Америку: структуры АБСОЛЮТНО ВСЕХ языков программирования "бинарно совместимы".

Ловлю на слове и жду демонстрации использования структур из Си в питоне. Или в яве. Или, если уж на то пошло, перловских хешей в паскале.

Ответить | Правка | Наверх | Cообщить модератору

40. "Проект Mozilla представил релиз компилятора для языка програ..."  –4 +/
Сообщение от Ваня (??), 24-Янв-12, 13:48 
Формат объектных файлов один? Значит могут использоваться.

Формат файлов (.obj в т.ч.) один для всех ЯП и всех компиляторов.

Сморозили глупость, уже который пост отмазываетесь.

Ответить | Правка | Наверх | Cообщить модератору

43. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 13:56 
> Формат файлов (.obj в т.ч.) один для всех ЯП и всех компиляторов.

There are many different object file formats (http://en.wikipedia.org/wiki/Object_file)
> Сморозили глупость, уже который пост отмазываетесь.

Возвращаю. Почему Вы решили, что у АБСОЛЮТНО ВСЕХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ™ один и тот же формат обьектных файлов?

Ответить | Правка | Наверх | Cообщить модератору

49. "Проект Mozilla представил релиз компилятора для языка програ..."  –3 +/
Сообщение от Ваня (??), 24-Янв-12, 14:04 
Ещё раз:

> Формат файлов (.obj в т.ч.) один для всех ЯП и всех компиляторов.

А теперь с пояснениями для женщин, обезьян, и детей младшей группы: {формат файлов} один для {всех ЯП и всех компиляторов}. Я не говорил что все объектные файлы имеют один формат. Я сказал что каждый конкретный формат объектного файла одинаков для всех ЯП и всех компиляторов.

> Почему Вы решили, что у АБСОЛЮТНО ВСЕХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ™ один и тот же формат обьектных файлов?

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

Ответить | Правка | Наверх | Cообщить модератору

53. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 14:10 
> Хмм... Странный вопрос. Нигде в описании формата файла не встречал ссылку на
> язык программирования. Ни разу не видел фразы вида "файл может быть
> прочитан лишь кодом, изначально написанным на Паскале". И вряд ли когда-нибудь увижу.

Скажи, чувак, а тебя не смущает что например COFF и ELF - разные форматы? И оба могут хранить промежуточный объектный код. А у старины Воланда^W Борланда так и вовсе какой-то самопальный формат объектников был. При том еще и разный для паскакаля и сей, в сях объектники и .lib в каком-то собственном формате, а в паскале юниты, в каком-то еще более ином формате.

p.s. это ж надо быть таким самоуверенным дураком и с таким нахрапом нести полную чушь...

Ответить | Правка | Наверх | Cообщить модератору

55. "Проект Mozilla представил релиз компилятора для языка програ..."  –1 +/
Сообщение от Ваня (??), 24-Янв-12, 14:12 
> Скажи, чувак, а тебя не смущает что например COFF и ELF - разные форматы? И оба могут хранить промежуточный объектный код.

Вы из милиции :). Нужно было сказать сразу, я бы повторил дважды:

А теперь с пояснениями для женщин, обезьян, и детей младшей группы: {формат файлов} один для {всех ЯП и всех компиляторов}. Я не говорил что все объектные файлы имеют один формат. Я сказал что каждый конкретный формат объектного файла одинаков для всех ЯП и всех компиляторов.

Ответить | Правка | Наверх | Cообщить модератору

67. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 14:51 
> Вы из милиции :). Нужно было сказать сразу, я бы повторил дважды:

Если б ты не был эпическим тормозом то заметил бы что уже как несколько месяцев нет никакой милиции, поэтому я ну никак не могу оттуда быть. За отсутствием такой "бинарной структуры" :)

> что все объектные файлы имеют один формат. Я сказал что каждый
> конкретный формат объектного файла одинаков для всех ЯП и всех компиляторов.

Покажи мне формат файла объектника для допустим JS в инкарнации гугловского v8? Как бы в понятие "все ЯП" указанный яваскрипт вполне попадает, да? А если ты такой эпичный тормоз что даже элементарные логические условия сам себе подогнать в своей фразе не можешь, я что, виноват чтоли?

Ответить | Правка | Наверх | Cообщить модератору

70. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Ваня (??), 24-Янв-12, 15:00 
> Покажи мне формат файла объектника для допустим JS в инкарнации гугловского v8

Сами же ответили на свой вопрос - "Покажи мне формат файла объектника". Если объектный файл существует, у него есть формат. В этом был ваш вопрос?

Оскорбления и глупости вместо аргументов... Что ж, по причине отсутствия аргументация у оппонента продолжать не имеет смысла.

Ответить | Правка | К родителю #67 | Наверх | Cообщить модератору

83. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 15:28 
> Если объектный файл существует, у него есть формат.

Прикол состоит в том что у JS нет никаких объектных файлов. Ну вот как-то не предусмотрели в дизайне такую сущность.

Получается что ты логически обосрался - ты заявлял про ВСЕ ЯП, JS в это множество, очевидно входит, раз уж ВСЕ. А объектники в рамках JS - просто несуществующая сущность.

> Что ж, по причине отсутствия аргументация у оппонента продолжать не имеет смысла.

Я бы сказал - по причине одноклеточности оппонента. И вообще, после такого сухого корма пить хочется.

Ответить | Правка | К родителю #70 | Наверх | Cообщить модератору

50. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 14:05 
> Формат файлов (.obj в т.ч.) один для всех ЯП и всех компиляторов.

А еще 640 килобайтов хватит всем, да? Не, ну ты бы ради приличия посмотрел чтоли в гугле насчет форматов объектников, тебя ждало бы большое обломинго на этот счет.

> Сморозил глупость в очередной раз

//fixed...

Ответить | Правка | К родителю #40 | Наверх | Cообщить модератору

54. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Ваня (??), 24-Янв-12, 14:11 
А теперь с пояснениями для женщин, обезьян, и детей младшей группы: {формат файлов} один для {всех ЯП и всех компиляторов}. Я не говорил что все объектные файлы имеют один формат. Я сказал что каждый конкретный формат объектного файла одинаков для всех ЯП и всех компиляторов.
Ответить | Правка | Наверх | Cообщить модератору

60. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 14:40 
> А теперь с пояснениями для женщин, обезьян, и детей младшей группы: {формат
> файлов} один для {всех ЯП и всех компиляторов}.

Так я не понял, а ты к какой из этих категорий относишься? Ко всем сразу? (учитывая тупизну и наглость - довольно правдоподобно).

Для амеб поясняю: в мире есть более 1 формата объектных файлов. Более того, чисто для лулзов посмотри сколько форматов объектников жрет гнутый binutils. И да, эти форматы ни разу не одинаковые между различными компилерами, а произвольно взятый компилер вовсе не обязан жрать произвольно взятый формат файла. Например, в лине форматом объектников может являться ELF. Как бы удачи тебе в подсовывании ELF`а вьюжлстудии, было б интересно на это посмотреть.
// #include <trollface.jpg>

> Я не говорил что все объектные файлы имеют один формат. Я сказал что каждый
> конкретный формат объектного файла одинаков для всех ЯП и всех компиляторов.

Что это за юления начались? Если уж на то пошло, ВСЕ яп и компилеры не обязаны поддерживать ВСЕ форматы объектников или реализовывать их одинаково. Более того, у некоторых ЯП вообще нет такого понятия, как минимум в некоторых инкарнациях. А что такое объектный файл применительно допустим к JS работаюшем в браузере?

Объектные файлы - промежуточная техническая сущность этапа компиляции, характерная для си и еще нескольких компилируемых ЯПов. Их переносимость - довольно мизерная, когда был такой бред как бинарные 3rd party библиотеки, они таскали около дюжины форматов объектников под разные компилеры. Например: http://www.ibsensoftware.com/files/aPLib-1.01.zip - wtf? Всего 7 разных вариантов формата бинарных файлов этой библиотеки? Ну да, тяжела жизнь проприетарщика... :))

Ответить | Правка | Наверх | Cообщить модератору

64. "Проект Mozilla представил релиз компилятора для языка програ..."  –1 +/
Сообщение от Ваня (??), 24-Янв-12, 14:47 
Я ни говорил ничего из того, что вы опровергаете. Если вам нравится высказывать мысль, приписывать её другому, и опровергать - ваш путь лежит в дурку. Но мне всё равно.
Ответить | Правка | Наверх | Cообщить модератору

82. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 15:24 
> Я ни говорил ничего из того, что вы опровергаете.

Ну да, а вон там выше - чего?

Ответить | Правка | Наверх | Cообщить модератору

93. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от Аноним (-), 24-Янв-12, 16:06 
Ваня, ты неадекват. Это же твоя фраза - "Формат объектных файлов один? Значит могут использоваться." (см. выше, точно твоя фраза, не вру). Поголовно все русскоязычные должны понять это изречение как то, что других форматов объектных файлов, кроме какого-то единственного, не существует. А на самом деле форматов объектных файлов много. Или ты просто не силен в русском языке или ты просто дятел. Или тролль, что более всего вероятно. Поясню для обезьян и кого ты там еще упомянул - на простой вопрос "Формат объектных файлов один?" должен следовать ответ "Нет, их много всяких разных для всяких разных языков и платформ программирования". Но ты сам отвечаешь "да" неявно на этот вопрос и сам же делаешь вывод "... Значит могут использоваться.". Типа доказал.
"
- Аргументируй!
- Аргументирую.
- Чем аргументируешь?
- АргУментом
" (с) не помню из какого фильма
Ответить | Правка | К родителю #54 | Наверх | Cообщить модератору

95. "Проект Mozilla представил релиз компилятора для языка програ..."  –2 +/
Сообщение от Ваня (??), 24-Янв-12, 16:31 
- Формат объектных файлов один?

- У Си и Rust формат объектных файлов один?

Что там "поголовно все русские должны понять"?

Ответить | Правка | Наверх | Cообщить модератору

103. "Проект Mozilla представил релиз компилятора для языка програ..."  +3 +/
Сообщение от Аноним (-), 24-Янв-12, 17:06 
> - Формат объектных файлов один?

Так и скажи: "да, я дебил и не понимаю разницы между форматом данных в памяти и объектником". Это по крайней мере будет честно.

Ответить | Правка | Наверх | Cообщить модератору

107. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от Ваня (??), 24-Янв-12, 17:13 
Нет, я это к тому что слова, предложения и абзацы нужно читать целиком, а не выдирать слова из контекста, наделяя их своим смыслом.
Ответить | Правка | К родителю #103 | Наверх | Cообщить модератору

136. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от 1 (??), 24-Янв-12, 19:41 
лол) ну вот кто бы говорил)
Ответить | Правка | К родителю #107 | Наверх | Cообщить модератору

202. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 26-Янв-12, 20:01 
Ваня, уже даже как-то неудобно тебя опускать, даже стыдно немного, как-будто над убогим смеемся: сам тот контекст пересмотри? Что там выдрано? Вот все слова, предложения и абзацы, на который последовал тот ответ:
"
Ваня:
    Открываю вам Америку: структуры АБСОЛЮТНО ВСЕХ языков программирования "бинарно совместимы".
    
Аноним:
    Ловлю на слове и жду демонстрации использования структур из Си в питоне. Или в яве. Или, если уж на то пошло, перловских хешей в паскале.
    
Ваня:
    Формат объектных файлов один? Значит могут использоваться.
    Формат файлов (.obj в т.ч.) один для всех ЯП и всех компиляторов.
    Сморозили глупость, уже который пост отмазываетесь.
"
где там просто про Си и Раст? Там говорится про ВСЕ языки! Для тебя Си и Раст - все языки?
Ответить | Правка | К родителю #107 | Наверх | Cообщить модератору

47. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от Аноним (-), 24-Янв-12, 14:01 
> Открываю вам Америку: структуры АБСОЛЮТНО ВСЕХ языков программирования "бинарно совместимы".

Размечтался. Попробуй в яваскрипте отпарсить "массив байтов", заведомо адресуя его как именно байты, а не абстрактные символы в вакууме. Тебя будет ждать немало интересных открытий насчет того какой ты все-таки ламер.

Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

51. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Ваня (??), 24-Янв-12, 14:07 
А попробуй в Прологе работать с бинарным деревом, созданным в С++.

Зачем бред писать?

Ответить | Правка | Наверх | Cообщить модератору

58. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 14:26 
> А попробуй в Прологе работать с бинарным деревом, созданным в С++.

Так если по твоему мнению структуры бинарно одинаковые - фигня вопрос, должно быть можно.

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

> Зачем бред писать?

Ну тебе наверное виднее зачем. Да, с такими как ты MS точно будет в заслуженном месте :)

Ответить | Правка | Наверх | Cообщить модератору

94. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 16:10 
скорее всего он сам троль и есть. Пытается вывести всех из себя. Надо просто Ваню игнорировать, пусть сам с собою разговаривает
Ответить | Правка | Наверх | Cообщить модератору

105. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 17:09 
> скорее всего он сам троль и есть

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

Ответить | Правка | Наверх | Cообщить модератору

59. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от анонимус (??), 24-Янв-12, 14:29 
Бред ты, Ванюш, пишешь...
Тебе как бы все вокруг намекают, что значит совместимые на бинарном уровне структуры. Не важно в каком объектном формате хранятся функции и данные, важно что после загрузки этих функций в память на выполение, результат функции написанной на одном языке программирования мог быть обработан в другой функции, написанной на другом языке программирования без использования костылей. Спецификация этого языка утверждает, что если я объявляю в Rust объект некоторой структуры, то в Си я без заморочек могу определить практически копи-пасте одноименный тип и через вызовы функций обмениваться данными между модулями не заметив разницы - если в некоторое поле А я записываю некоторое значение, то из другого модуля я прочитав это поле А получаю это же значение.
Ответить | Правка | К родителю #51 | Наверх | Cообщить модератору

63. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Ваня (??), 24-Янв-12, 14:46 
Rust и С - языки программирования. Толпа анонимов утверждает что "бинарно совместимые языки" означают что бинарник, созданный из скомпиленного кода на Rust можно прочитать из бинарника, скомпиленного из кода на С.

Я утверждаю что это выполняется для любых языков программирования и компиляторов. Со мной спорят, но аргументы какие-то левые... Напр. ваши:

"если я объявляю в Rust объект некоторой структуры, то в Си я без заморочек могу ... через вызовы функций обмениваться данными между модулями не заметив разницы"

Возьмите два любых других языка - будет аналогично.

Ответить | Правка | Наверх | Cообщить модератору

75. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от Аноним (-), 24-Янв-12, 15:13 
> Я утверждаю что это выполняется для любых языков программирования и компиляторов.

Изначально ты утверждал какой-то булшит насчет форматов объектников. При том совершенно бредовый. То что ты туп, не владеешь терминологией и сам загнал себя в логическую ж!@у, никто тебе не виноват.

> Возьмите два любых других языка - будет аналогично.

Не будет. А попробуй между модулями одной программы напрямую паскакалю сишную строку передать. Или сям паскакалевскую. Тебя будет ждать очень интересный сюрприз. Кстати по этому поводу юзеж паскалеобразных языков в операционках писанных на си являет собой ту еще попаболь. Конвертить форматы строк в сишные при передаче их функциям ОС и наоборот при получении результатов - довольно утомительное и невкусное начинание :P.

Ответить | Правка | Наверх | Cообщить модератору

65. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Crazy Alex (??), 24-Янв-12, 14:49 
Вы либо идиот, либо не знаете, к чему прицепиться. И то и другое выглядит, мягко говоря, не очень.

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

Другими словами, если отдать в C-библиотеку адрес структуры, созданной в Rust, то там с ней можно будет работать без дополнительных плясок с бубном, определив аналогичную по типам полей и порядку их следования структуру.

Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

69. "Проект Mozilla представил релиз компилятора для языка програ..."  –1 +/
Сообщение от Ваня (??), 24-Янв-12, 14:55 
Свои оскорбления оставьте при себе.

struct xxx
{
float f: 1;
int i: 1;
char c: 7;
}

Хорошая такая структура для С. Размер = 9 бит.

Аналогичную можно построить в любом языке программирования. Хотя выглядеть её определение будет, видимо, немного иначе.

Ваша "БИНАРНАЯ совместимость" это одинаковый синтаксис? Тогда это не бинарная. Или возможность получить доступ? Тогда это бинарный, но тогда все языки бинарно совместимы.

Ответить | Правка | Наверх | Cообщить модератору

74. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Crazy Alex (??), 24-Янв-12, 15:12 
моя "бинарная совместимость" - это возможность сунуть рустовскую
type point = {x: float, y: float};
в сишную функцию

typedef struct point {
float x;
float y;
} point;

float minCoord(struct point p) {

}

в сях определить

Ответить | Правка | Наверх | Cообщить модератору

76. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Crazy Alex (??), 24-Янв-12, 15:14 
моя "бинарная совместимость" - это возможность сунуть рустовскую
type point = {x: float, y: float};
в сишную функцию

typedef struct point {
float x;
float y;
} point;

float minCoord(struct point p) {
   return (p.x < p.y)? p.x :p.y
}

без каких-либо преобразований.

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

Ответить | Правка | Наверх | Cообщить модератору

91. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от xxx (??), 24-Янв-12, 15:45 
Эт конечно хорошо, однако как быть с так часто используемыми расширениями в Си как упакованные струтуры и хитрыми битовыми полями. В этом Rust хость ввели на уровень языка, что-нибудь подобное?
Ответить | Правка | Наверх | Cообщить модератору

96. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Ваня (??), 24-Янв-12, 16:47 
Оставь. Он пишет о чём-то своём, игнорируя всё что ему говорят. Пример с битовыми полями и структурой размером 9 бит я ему привёл, а в ответ...

Ладно, не буду портить хороший день :)

Ответить | Правка | Наверх | Cообщить модератору

97. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Ваня (??), 24-Янв-12, 16:50 
Я уж не говорю про union и пр. сяшные заморочки.

typedef struct _OVERLAPPED {
ULONG_PTR Internal;
ULONG_PTR InternalHigh;
union {
struct {
DWORD Offset;
DWORD OffsetHigh;
};
PVOID Pointer;
};
HANDLE hEvent;
} OVERLAPPED, *LPOVERLAPPED;

А если включить внутрь ссылку на класс, то будет ли итог "бинарно совместимым" и можно ли будет обратиться к функциями этого класса? Хрен!

Ответить | Правка | К родителю #91 | Наверх | Cообщить модератору

104. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 17:08 
>[оверквотинг удален]
>  struct {
>  DWORD Offset;
>  DWORD OffsetHigh;
>  };
>  PVOID Pointer;
>  };
>  HANDLE hEvent;
>  } OVERLAPPED, *LPOVERLAPPED;
> А если включить внутрь ссылку на класс, то будет ли итог "бинарно
> совместимым" и можно ли будет обратиться к функциями этого класса? Хрен!

В Си нету никаких классов, и ссылок тоже нет, одни указатели. Вас жестоко обманули. И да, в разных компиляторах С++ (а иногда даже разных версиях одного компилятора) проблемы с именами методов разных классов решаются по-разному, в силу чего С++ бинарно несовместим сам с собой(http://en.wikipedia.org/wiki/Name_mangling#Name_mangling_in_...). И Вы всё еще утверждаете, что АБСОЛЮТНО ВСЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ™ бинарно совместимы?

Ответить | Правка | Наверх | Cообщить модератору

109. "Проект Mozilla представил релиз компилятора для языка програ..."  –2 +/
Сообщение от Ваня (??), 24-Янв-12, 17:16 
struct
{
int x;
int func(int y){return x+y;}
}

Хоть С, хоть С++, но когда мне было нужно ЭТО скомпилить - у меня ЭТО компилилось.

Ответить | Правка | К родителю #104 | Наверх | Cообщить модератору

113. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 17:26 
> struct
> {
>  int x;
>  int func(int y){return x+y;}
> }
> Хоть С, хоть С++, но когда мне было нужно ЭТО скомпилить -
> у меня ЭТО компилилось.


$ cat temp.c
#include <stdio.h>
struct
{
int x;
int func(int y){return x+y;}
} my_struct;
int main(){
  my_struct.x = 1;
  printf ("%d\n", my_struct.func(2) );
  return 0;
}
$ gcc temp.c
temp.c:5:16: ошибка: expected «:», «,», «;», «}» or «__attribute__» before «{» token
temp.c: В функции «main»:
temp.c:9:28: ошибка: «struct <anonymous>» не содержит элемента с именем «func»

Ответить | Правка | К родителю #109 | Наверх | Cообщить модератору

128. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 17:57 
> Никогда в жизни не пользовался GCC и никогда в жизни не планирую.
> Упаси Бог от этого удолбища.

А, ну конечно. В качестве примеров языков программирования следует приводить лишь включённые в состав Visual Studio, а остальные вы и за языки не считаете, так? Каюсь, был неправ.

Ответить | Правка | Наверх | Cообщить модератору

150. "Проект Mozilla представил релиз компилятора для языка..."  +/
Сообщение от arisu (ok), 25-Янв-12, 02:14 
> Упаси Бог от этого удолбища.

то ли дело няшный m$vc. как там дела с поддержкой C99? что, всё по-прежнему? ах, ну да: C99 не нужен, потому что не поддерживается в m$vc. я верно догадался?

Ответить | Правка | Наверх | Cообщить модератору

137. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от 1 (??), 24-Янв-12, 19:48 
> struct
> {
>  int x;
>  int func(int y){return x+y;}
> }
> Хоть С, хоть С++, но когда мне было нужно ЭТО скомпилить -
> у меня ЭТО компилилось.

А ты это писал в файлик с расширением ".c" или ".cpp". попробуй файлик с расширением ".c". Тогда твоя студия запустит именно компилятор для С, а не C++.

Ответить | Правка | К родителю #109 | Наверх | Cообщить модератору

139. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от 1 (??), 24-Янв-12, 19:51 
> struct
> {
>  int x;
>  int func(int y){return x+y;}
> }
> Хоть С, хоть С++, но когда мне было нужно ЭТО скомпилить -
> у меня ЭТО компилилось.

А ты это писал в файлик с расширением ".c" или ".cpp". попробуй файлик с расширением ".c". Тогда твоя студия запустит именно компилятор для С, а не C++. И тогда такая конструкция нифига не скомпилится.

Ответить | Правка | К родителю #109 | Наверх | Cообщить модератору

111. "Проект Mozilla представил релиз компилятора для языка програ..."  –2 +/
Сообщение от Ваня (??), 24-Янв-12, 17:19 
> И Вы всё еще утверждаете, что АБСОЛЮТНО ВСЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ™ бинарно совместимы?

Ещё раз поднимите глаза где я это утверждал и прочтите 2 раза. Если не поймёте о чём я - 3, 5, 10. Как поймёте осознаете как вы ошибались :)

Ответить | Правка | К родителю #104 | Наверх | Cообщить модератору

114. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 17:29 
>> И Вы всё еще утверждаете, что АБСОЛЮТНО ВСЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ™ бинарно совместимы?
> Ещё раз поднимите глаза где я это утверждал и прочтите 2 раза.
> Если не поймёте о чём я - 3, 5, 10. Как
> поймёте осознаете как вы ошибались :)

Утверждали Вы:

>Открываю вам Америку: структуры АБСОЛЮТНО ВСЕХ языков программирования "бинарно совместимы"

Так вот, открываю Вам Америку: структура данных — довольно общее понятие, которое включает в себя в том числе и классы. Бинарная несовместимость классов неизбежно свидетельствует о бинарной несовместимости структур.

Ответить | Правка | К родителю #111 | Наверх | Cообщить модератору

115. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Ваня (??), 24-Янв-12, 17:32 
А теперь ещё выше, ответом на что были мои слова. Даю подсказку: я спросил что такое "бинарно совместимые" языки программирования и мне дали ответ. Ответом на ответ была приведённая цитата.

Повторяю второй раз: не нужно вырывать слова из контекста и наделять их своим смыслом.

Ответить | Правка | К родителю #114 | Наверх | Cообщить модератору

120. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 17:41 
> А теперь ещё выше, ответом на что были мои слова. Даю подсказку:
> я спросил что такое "бинарно совместимые" языки программирования и мне дали
> ответ. Ответом на ответ была приведённая цитата.
> Повторяю второй раз: не нужно вырывать слова из контекста и наделять их
> своим смыслом.

Еще раз поднимите глаза к своему вопросу про бинарную совместимость и прочтите 2 раза. Если не поймёте о чём я - 3, 5, 10. Как поймёте осознаете как вы ошибались :)

подсказка: бинарная совместимость структур данных разных ЯП != бинарная совместимость ЯП.
Вы спрашивали именно про структуры данных — вы получили ответ про структуры данных, а так же то, как бинарная несовместимость структур данных может случиться на примере сишных struct. Пример был разжёван и предельно понятен — но увы, Вами он был недопонят.

Ответить | Правка | К родителю #115 | Наверх | Cообщить модератору

124. "Проект Mozilla представил релиз компилятора для языка програ..."  –2 +/
Сообщение от Ваня (??), 24-Янв-12, 17:46 
Вот уж не знал что в скомпилированном коде структуры живут своей отдельной жизнью :)
Ответить | Правка | К родителю #120 | Наверх | Cообщить модератору

126. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 17:51 
Теперь вы вообще высасываете выводы из пальца или еще из какого-то органа. Прочитать комментарий что, не судьба? При чем здесь отдельная жизнь?
Ответить | Правка | К родителю #124 | Наверх | Cообщить модератору

143. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от xxx (??), 24-Янв-12, 22:57 
>[оверквотинг удален]
>ULONG_PTR InternalHigh;
>union {
>struct {
>DWORD Offset;
>DWORD OffsetHigh;
>};
>PVOID Pointer;
>};
>HANDLE hEvent;
>} OVERLAPPED, *LPOVERLAPPED;

Это строки из той самой известной "Божественной комедии" Данте? Теперь я кажется знаю что такое Ад.

Ответить | Правка | Наверх | Cообщить модератору

166. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Ваня (??), 25-Янв-12, 12:12 
Вовсе нет... 8-байтный указатель сохранили как верхнюю и нижнюю часть чтобы не писать в коде макросы, теперь:

Без этого ухищерения пришлось бы писать конструкции вида:

// запись
s.Pointer = (s.Pointer & 0xFFFFFFFF) | low;
s.Pointer = (s.Pointer & 0xFFFFFFFF00000000) | (high << 32);

// чтение
low = s.Pointer & 0xFFFFFFFF;
high = (s.Pointer & 0xFFFFFFFF00000000) >> 32;

А так получаем элегантный код:
s.offset = low;
s.offsetHi=high;

low=s.offset;
high=s.offsetHi;

Какое решение нравится вам? Мне второе, с использованием union.

Ответить | Правка | К родителю #143 | Наверх | Cообщить модератору

169. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от xxx (??), 25-Янв-12, 12:36 
> Вовсе нет... 8-байтный указатель сохранили как верхнюю и нижнюю часть чтобы не
> писать в коде макросы, теперь:
> Без этого ухищерения пришлось бы писать конструкции вида:

Эт, понятно и нормально.

> Какое решение нравится вам?

Мне больше нравится не писать с использованием так называемой венгерской нотации. Хотя при использовании WinAPI видимо приходится смиряться.


Ответить | Правка | К родителю #166 | Наверх | Cообщить модератору

175. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Ваня (??), 25-Янв-12, 13:33 
Вы пожаловались на ад, я объяснил нормальность и услышал "это понятно и нормально". Зачем было жаловаться?

Я спросил какое из решений: с использованием union или без него нравится лично вам, а в ответ узнал что вам не нравится венгерская нотация в WinAPI.

У вас, случайно, не разделение личности? Утром вы одна, вечером другая (с) Шрек.

Ответить | Правка | К родителю #169 | Наверх | Cообщить модератору

176. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 25-Янв-12, 13:36 
> Какое решение нравится вам? Мне второе, с использованием union.

А мне нравится решение, в котором ваш код окружён строчками:


#if sizeof(void*) == 8
/* здесь находятся обьединения, включающие в себя структуры */
#endif

Ибо не факт, что Ваш код будет компилироваться для 64хбитной системы.
Да и тот факт, что элементы структуры выравниваются по границе 4 байт, а не 8ми, сомнителен. Во втором случае Ваш s.Pointer будет содержать какой-то совершенно левый указатель, а s.offsetHi окажется не у дел. Вот и выходит, что

// запись
s.Pointer = (s.Pointer & 0xFFFFFFFF) | low;
s.Pointer = (s.Pointer & 0xFFFFFFFF00000000) | (high << 32);

// чтение
low = s.Pointer & 0xFFFFFFFF;
high = (s.Pointer & 0xFFFFFFFF00000000) >> 32;


хоть и менее элегантно, но зато гарантированно работает.
Ответить | Правка | К родителю #166 | Наверх | Cообщить модератору

183. "Проект Mozilla представил релиз компилятора для языка програ..."  –1 +/
Сообщение от Ваня (??), 25-Янв-12, 14:25 
Вы в шаг от моего любимого:

a=b+c;
if(a<>b+c){...}

:)

Ответить | Правка | К родителю #176 | Наверх | Cообщить модератору

77. "Проект Mozilla представил релиз компилятора для языка програ..."  +2 +/
Сообщение от Аноним (-), 24-Янв-12, 15:15 
> Размер = 9 бит.

Чуров нервно покуривает в сторонке...

Ответить | Правка | К родителю #69 | Наверх | Cообщить модератору

98. "Проект Mozilla представил релиз компилятора для языка програ..."  –2 +/
Сообщение от Ваня (??), 24-Янв-12, 16:52 
В сях вы ещё девственны. Ох, как много вам ещё предстоит узнать...
Ответить | Правка | Наверх | Cообщить модератору

106. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от Аноним (-), 24-Янв-12, 17:09 
> В сях вы ещё девственны. Ох, как много вам ещё предстоит узнать...

Угу, особенно про побитное выравнивание данных в памяти.

Ответить | Правка | Наверх | Cообщить модератору

108. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 17:14 
> В сях вы ещё девственны. Ох, как много вам ещё предстоит узнать...

Да, загнать столько данных в 9 битов - даже волшебнику Чурову слабо! :)

Ответить | Правка | К родителю #98 | Наверх | Cообщить модератору

131. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от XPEHemail (?), 24-Янв-12, 18:45 
>> В сях вы ещё девственны. Ох, как много вам ещё предстоит узнать...
> Да, загнать столько данных в 9 битов - даже волшебнику Чурову слабо!
> :)

Особенно радует однобитный float.

Ответить | Правка | Наверх | Cообщить модератору

151. "Проект Mozilla представил релиз компилятора для языка..."  +/
Сообщение от arisu (ok), 25-Янв-12, 02:17 
> Особенно радует однобитный float.

ыыыыыы! а я сразу-то и не приметил! да ванюша просто мегаотжигает сегодня!

Ответить | Правка | Наверх | Cообщить модератору

167. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Ваня (??), 25-Янв-12, 12:13 
Просто пример. Возможности языка это позволяют.
Ответить | Правка | Наверх | Cообщить модератору

177. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 25-Янв-12, 13:38 
> Просто пример. Возможности языка это позволяют.

Угу, только выравнивания адресов по границе N байт в памяти никто не отменял. Напоминяю, минимально адресуемая единица информации в любом процессоре — байт; в современных процессорах байт всегда равен октету битов; эрго, хоть Ваша структура и выглядит 9тибитной, но меньше двух байт занимать не может.

Ответить | Правка | К родителю #167 | Наверх | Cообщить модератору

184. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Ваня (??), 25-Янв-12, 14:33 
Хмм... Язык Си может использоваться для написания программ только на процессорах где в 1 байте 8 бит и только на компьютерах где выравнивание по 1 байту?
Ответить | Правка | К родителю #177 | Наверх | Cообщить модератору

196. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 25-Янв-12, 23:01 
Язык Си может использоваться для написания программ только на процессорах, для которых предусмотрен компилятор. Так уж получилось, что во ВСЕХ процессорах в 1 байте по 8 бит. Выравнивание не во всех компьютерах по 1 байту — чаще по 4 или 8, однако именно кратно байту — во ВСЕХ процессорах. Так что — да, в данный момент (25 января 2012 года) Си может использоваться для написания программ только на процессорах где в 1 байте 8 бит и только на компьютерах где выравнивание по (целое число) байт.
Ответить | Правка | К родителю #184 | Наверх | Cообщить модератору

199. "Проект Mozilla представил релиз компилятора для языка програ..."  –1 +/
Сообщение от Ваня (??), 26-Янв-12, 11:02 
> Язык Си может использоваться для написания программ только на процессорах, для которых предусмотрен компилятор
> Си может использоваться для написания программ только на процессорах где в 1 байте 8 бит и только на компьютерах где выравнивание по (целое число) байт.

Можно написать программу для процессора в котором 10 бит - да, можно скомпилировать - сейчас нет. Но вы, почему то, утверждаете что даже написать такую программу нельзя. Обманываете.

> Выравнивание не во всех компьютерах по 1 байту — чаще по 4 или 8

Вы не знаете что такое выравнивание, для чего оно служит и как работает.

Ответить | Правка | К родителю #196 | Наверх | Cообщить модератору

182. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от XPEHemail (?), 25-Янв-12, 14:17 
Очередной пример вашего невежества, да.
Ответить | Правка | К родителю #167 | Наверх | Cообщить модератору

92. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от анонимус (??), 24-Янв-12, 16:00 
Нет, не все. К примеру, для высокопроизводительных числодробилок можно написать реализацию языка, который бы для массивов структур делал несколько массивов для каждого поля в структуре.
Ответить | Правка | К родителю #69 | Наверх | Cообщить модератору

100. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Ваня (??), 24-Янв-12, 16:56 
Поправлюсь: если возможности языка это позволяют. Сути это не меняет: бинарные данные могут быть прочитаны программой, на каком бы языке эта программа не была написана.
Ответить | Правка | Наверх | Cообщить модератору

110. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 17:19 
> Поправлюсь: если возможности языка это позволяют. Сути это не меняет: бинарные данные
> могут быть прочитаны программой, на каком бы языке эта программа не
> была написана.

А вот хрен. Возьмите к примеру сишную строку. Её размер не известен заранее и может занимать хоть всю доступную память, посему паскаль, в котором array[0..7]of char и array[0..65535]of char — разные типы (и даже array[0..7]of char и array[1..8]of char), с сишной библиотекой обработки строк общаться не сможет, особенно в случаях, когда сишная функция возвращает строку.

Ответить | Правка | Наверх | Cообщить модератору

112. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Ваня (??), 24-Янв-12, 17:23 
Строка не "сишная", а ASCII-Z. Это просто формат. Вам знакомо слово "формат"? И после этого вы удивляетесь что данные одного формата не могут быть обработы функцией, предназначенной для обработки данных другого формата?
Ответить | Правка | Наверх | Cообщить модератору

118. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 17:36 
> Строка не "сишная", а ASCII-Z. Это просто формат. Вам знакомо слово "формат"?
> И после этого вы удивляетесь что данные одного формата не могут
> быть обработы функцией, предназначенной для обработки данных другого формата?

В данном случае, дражайший, строка — это тип. Сишной функции strcat МОЖНО дать то, что строкой называют в паскале (при условии соблюдения того самого формата — 0 в конце строки). Тем не менее возвращённая этой функцией строка не будет совместима с паскалем — паскаль, будучи [неоправданно]строго типизированным, ожидает, что тип возвращаемой функцией значения заранее известен, где в тип для него входит размер возвращаемого значения. Это и есть то, что называется бинарной совместимостью: строку, в которой > 256 символов, паскаль не проглотит.

Ответить | Правка | Наверх | Cообщить модератору

121. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от Ваня (??), 24-Янв-12, 17:43 
В Си нет типа строка. Этим он отличается от многих ЯВУ, и максимально приближен к ассемблерам и аппаратуре. Есть тип "символ" (char), строки хранятся в формате (ФОРМАТЕ), который определил программист. Функции библиотеки string.h оперируют ASCII-Z строками.

При серьёзном академическом изучении Паскаля, как и других ЯП, на этом также акцентируют внимание.

Ответить | Правка | К родителю #118 | Наверх | Cообщить модератору

125. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 17:48 
> В Си нет типа строка. Этим он отличается от многих ЯВУ, и
> максимально приближен к ассемблерам и аппаратуре. Есть тип "символ" (char), строки
> хранятся в формате (ФОРМАТЕ), который определил программист. Функции библиотеки string.h
> оперируют ASCII-Z строками.
> При серьёзном академическом изучении Паскаля, как и других ЯП, на этом также
> акцентируют внимание.
> В Си нет типа строка.

Зато он есть в паскале. В си есть тип "указатель на символ", посредством которого реализованы строки переменной длины — наш пример структуры данных. В паскале строк переменной длины нет и реализовать их не выйдет — эрго, имеем бинарную несовместимость структур данных. Дальше разжёвывать или сам проглотишь?

Ответить | Правка | К родителю #121 | Наверх | Cообщить модератору

127. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Ваня (??), 24-Янв-12, 17:56 
Вообще то в Паскале никто не запрещает создать динамический массив типа СИМВОЛ.

char *s=new char[500];
strcpy(s,"long string\0"); // явный ноль-терминатор

int len=0;
while(s[i])len++;

Никто не мешает повторить это с паскалевским синтаксисом. Не нужно лениться.

Ответить | Правка | К родителю #125 | Наверх | Cообщить модератору

129. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 24-Янв-12, 18:05 
>Никто не мешает повторить это с паскалевским синтаксисом. Не нужно лениться.

Proof or GTFO.

Ответить | Правка | К родителю #127 | Наверх | Cообщить модератору

133. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от анонимус (??), 24-Янв-12, 19:04 
Я понять не могу, вы чего к паскалевской строке докопались - вы можете создать указатель на массив символов, даже в турбо-паскале:
var str type ^pchar;
как-то так
Ответить | Правка | К родителю #129 | Наверх | Cообщить модератору

161. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 25-Янв-12, 09:41 
А адресную арифметику потом использовать?
И да, Pascal <> Object Pascal. Так и сам Вирт сказал. В оригинальном паскале ни указателей, ни адресной арифметики нет.
Ответить | Правка | К родителю #133 | Наверх | Cообщить модератору

156. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от anonymous vulgaris (?), 25-Янв-12, 02:40 
>В си есть тип "указатель на символ",  посредством которого реализованы строки переменной длины — наш пример структуры  данных. В паскале строк переменной длины нет и реализовать их не  выйдет — эрго, имеем бинарную несовместимость структур данных. Дальше разжёвывать или сам проглотишь?

Вы бы почитали что ли про паскаль что нибудь, ну там где про указатели пишут чтоле, заодно задумались бы как это апи функции в паскаль программах на раз-два вызываются и к любым ц библиотекам обертки написаны, я уж не предлагаю про новые строки которым всего лет 20 почитать а то шаблон разорвется.

Ответить | Правка | К родителю #125 | Наверх | Cообщить модератору

163. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 25-Янв-12, 09:44 
В Pascal нет указателей. Вообще. Спросите хоть Никлауса Вирта. А всякие монстры франкенштейна из мира языков программирования, имеющие в названии слово "Pascal", с паскалем имеют мало общего.
Ответить | Правка | К родителю #156 | Наверх | Cообщить модератору

168. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от Ваня (??), 25-Янв-12, 12:15 
В советском самоучителе Паскаля 1976 года указатели уже были.
Ответить | Правка | К родителю #163 | Наверх | Cообщить модератору

178. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (-), 25-Янв-12, 13:39 
Ну, советскому самоучителю явно лучше знать, чем тому, кто этот язык создал.
Ответить | Правка | К родителю #168 | Наверх | Cообщить модератору

186. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от userd (ok), 25-Янв-12, 15:23 
> В советском самоучителе Паскаля 1976 года указатели уже были.

У меня нет такого самоучителя, но могу предположить, что адресной арифметики не было.
Наверное, можно как-нибуть "непереносимо" (в обоих смыслах) выкрутиться. А new()/dispose() не слишком удобны в случае манипуляций ASCIIZ

Ответить | Правка | К родителю #168 | Наверх | Cообщить модератору

187. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Ваня (??), 25-Янв-12, 15:54 
Ну уж не знаю... В Си мне new/delete (они же malloc/free) для манипуляции ASCII-Z хватало.
Ответить | Правка | К родителю #186 | Наверх | Cообщить модератору

188. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от userd (ok), 25-Янв-12, 18:00 
Наверное, давно это было.
В C нет new/delete (это в C++), только malloc/free
Но в С у malloc вы можете запрашивать произвольный объём данных,
а pascal-евские new()/dispose() не так гибки - они выделяют память только под один элемент.

Если вы напишете
var p: PChar;
...

new(p);

то из кучи будет выделен 1 байт.

в turbo pascal есть procedure GetMem(Var P : Pointer; Size : Word); и FreeMem ей в пару,
но ваш старинный самоучитель может о такой и не знать.

Ответить | Правка | К родителю #187 | Наверх | Cообщить модератору

200. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Ваня (??), 26-Янв-12, 11:06 
Я открою вам Америку:
1. программа в конечном счёте будет выполняться в среде ОС. И вызовы new/malloc/.. в конечном счёте сведутся к вызову функции выделения памяти в ОС, в случае Windows ей станет HeapAlloc. Если ваш компилятор вас настолько ограничивает - используйте функции ОС напрямую.
2. если вы будете продолжать оперировать компиляторами 60-х и 70-х годов прошлого века, то наш разговор не сложится. Любой язык живой, он изменяется согласно изменяющимся реалиям жизни. И в современных реализациях языка Паскаль можно выделить блок памяти любого размера.
Ответить | Правка | К родителю #188 | Наверх | Cообщить модератору

201. "Проект Mozilla представил релиз компилятора для языка..."  +/
Сообщение от arisu (ok), 26-Янв-12, 11:09 
> в случае Windows ей станет HeapAlloc

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

хинт: в хипаллок попадём далеко не всегда. может, и вовсе не попадём.

Ответить | Правка | К родителю #200 | Наверх | Cообщить модератору

190. "Проект Mozilla представил релиз компилятора для языка..."  +1 +/
Сообщение от arisu (ok), 25-Янв-12, 19:50 
> В Си мне new/delete (они же malloc/free)

«Мария Колыванова, она же Манька Облигация», ага. мало того, что в C нет ни new, ни delete: ванюша у нас считает, что new — аналог malloc, а delete — аналог free…

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

Ответить | Правка | К родителю #187 | Наверх | Cообщить модератору

155. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от anonymous vulgaris (?), 25-Янв-12, 02:32 
> посему паскаль, ... с сишной библиотекой обработки строк общаться  не сможет, особенно в случаях, когда сишная функция возвращает строку.

20 лет анабиоза, я бы тоже так хотел

Delphi strings are a complete replacement for Pascal strings. They have a 4-byte length field (i.e. they can hold 2Gb, or until you run out of memory, whichever comes first), are always null-terminated for easy use with OS functions, and have reference counting with copy-on-write.

Ответить | Правка | К родителю #110 | Наверх | Cообщить модератору

157. "Проект Mozilla представил релиз компилятора для языка..."  +1 +/
Сообщение от arisu (ok), 25-Янв-12, 03:45 
> 20 лет анабиоза, я бы тоже так хотел

так у тебя и… Delphi — не паскаль, а Delphi.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру