The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Проект Mozilla представил релиз компилятора для языка програ..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от opennews (??) on 24-Янв-12, 11:56 
Разработчики проекта Mozilla представили (https://mail.mozilla.org/pipermail/rust-dev/2012-January/001...) первый релиз компилятора и инструментария для языка программирования Rust (http://www.rust-lang.org/). Версия 0.1 позиционируется как релиз альфа-качества, пригодный для начального ознакомления с языком. API ещё полностью не сформирован и будет расширяться и изменяться, также предстоит большая работа по оптимизации производительности, которая пока оставляет желать лучшего. Исходные тексты проекта распространяются (https://github.com/mozilla/rust/) в рамках лицензии MIT. Компилятор поддерживает сборку для платформ Linux (x86 и x86_64), Mac OS X (x86 и x86_64) и Windows (x86), включая возможность кросс-компиляции и сборки сразу для нескольких целевых платформ.


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

URL: https://mail.mozilla.org/pipermail/rust-dev/2012-January/001...
Новость: http://www.opennet.ru/opennews/art.shtml?num=32876

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

Оглавление

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


1. "Проект Mozilla представил релиз компилятора для языка програ..."  +3 +/
Сообщение от Аноним (??) on 24-Янв-12, 11:56 
"Ржавейка"! Отличное название! :)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

14. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от YetAnotherOnanym on 24-Янв-12, 12:54 
Скорее "ржа" :)
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

205. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (??) on 29-Янв-12, 11:22 
Я в курсях, спасибо. Я вспомнил мульт "Тачки" просто. Там было Rusteze, евжли память мне не врет. :)
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

2. "Проект Mozilla представил релиз компилятора для языка програ..."  +3 +/
Сообщение от Аноним (??) on 24-Янв-12, 12:07 
по описанию выглядит круто, хорошо бы, чтоб из него получилось что-то путное.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Проект Mozilla представил релиз компилятора для языка програ..."  –4 +/
Сообщение от Anonus on 24-Янв-12, 12:25 
а результирующие бинарники будут жестко завязаны на libxul и libxpcom, да?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

20. "Проект Mozilla представил релиз компилятора для языка програ..."  –2 +/
Сообщение от oWeRQ (ok) on 24-Янв-12, 13:03 
Учитывая что libxul и libxpcom возможно будут частично на rust, да, они будут завязаны.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Проект Mozilla представил релиз компилятора для языка програ..."  +3 +/
Сообщение от terr0rist (ok) on 24-Янв-12, 12:37 
Продолжаем строить вавилонскую башню? Стопицот языков с одинаковыми возможностями, разница только в том, как писать слово function или fn или func или def или "мнепофигкакэтоназватьглавноечтобработало"?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

Разрушать. ;)

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

80. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним239 on 24-Янв-12, 15:19 
В моем пишется как ->
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

206. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (??) on 29-Янв-12, 11:22 
> Продолжаем строить вавилонскую башню? Стопицот языков с одинаковыми возможностями, разница
> только в том, как писать слово function или fn или func
> или def или "мнепофигкакэтоназватьглавноечтобработало"?

Фатальный недостаток же. Оно написано не нами.

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

8. "Проект Mozilla представил релиз компилятора для языка програ..."  –4 +/
Сообщение от Ваня (??) on 24-Янв-12, 12:42 
Ориентация на безопасность и отсутствие типов данных. Это как?

И что будет если "i=ptr[0]"? Не зная размера?

Это вообщене понял: "никаких нулевых и потерянных указателей. Автоматическое управление памятью".

ptr = malloc();
free(ptr);

И чему будет равен ptr?

А вообще, ещё один бесполезный язык, ещё один С/С++, коих уже пару сотен, а то и тысяч.

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

10. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от Аноним (??) on 24-Янв-12, 12:47 
> ptr = malloc();

Никаких malloc и free.

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

15. "Проект Mozilla представил релиз компилятора для языка програ..."  –6 +/
Сообщение от Ваня (??) on 24-Янв-12, 12:57 
Т.е. живём без динамической памяти? Без списков, деревьев и дин.массивов?
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

24. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от rain87 on 24-Янв-12, 13:09 
ну почему же. с ними, просто память под них будет выделяться и освобождаться автоматически, а не вручную программистом
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

30. "Проект Mozilla представил релиз компилятора для языка програ..."  –2 +/
Сообщение от Ваня (??) on 24-Янв-12, 13:21 
Если есть указатели, динамическая память и функция её освобождения, то я могу указатель сделать невалидным.

Без явного контроля над освобождением памяти ни о какой эффективности речь не идёт.

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

32. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (??) on 24-Янв-12, 13:25 
> и функция её освобождения

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

Очередная анонимная икспертиза. Конечно же без пруфов.

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

34. "Проект Mozilla представил релиз компилятора для языка програ..."  –2 +/
Сообщение от Ваня (??) on 24-Янв-12, 13:28 
Я комментирую статью. И высказываю свою точку зрения. Мне на этот язык начхать, как и всем собственно.
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

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

А я думал что ты кормишь троллей сухим кормом, путем просто сказочного торможения, невладения терминологией и просто общим дебилизмом. Да, будущее MS в надежных руках - счастливой отладки, суки :)

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

61. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от тоже Аноним (ok) on 24-Янв-12, 14:42 
Ждем примера с превращением std::tr1::shared_ptr в невалидный.
Это возможно, конечно.
Но только на более низком уровне, который в Rust'е, очевидно, будет недоступен.
Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

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

Функцию free прошу заменить на функцию освобождения дин.памяти.

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

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

73. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Crazy Alex (??) on 24-Янв-12, 15:09 
Будет доступен в unsafe-блоке. Да, в нём можно начудить, а можно получить хорошую эффективность. И это правильно, товарищи.
Ответить | Правка | ^ к родителю #66 | Наверх | Cообщить модератору

117. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от тоже Аноним (ok) on 24-Янв-12, 17:36 
Осталось объяснить, с какого перепугу в этот язык кто-то будет вводить функции освобождения динамической памяти.
Даже на С++ их непосредственное использование давно стало дурным тоном, поскольку для одних и тех же задач куда безопаснее применять не "сырые" указатели, а ссылки и "умные" указатели. Чуть менее эффективно, но это отнюдь не критично.
Ответить | Правка | ^ к родителю #66 | Наверх | Cообщить модератору

119. "Проект Mozilla представил релиз компилятора для языка програ..."  –1 +/
Сообщение от Ваня (??) on 24-Янв-12, 17:38 
> Я: Если есть указатели, динамическая память и функция её освобождения, то я могу указатель сделать невалидным
> Вы: Ждем примера с превращением std::tr1::shared_ptr в невалидный
> Вы: Осталось объяснить, с какого перепугу в этот язык кто-то будет вводить функции освобождения динамической памяти.

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

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

122. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (??) on 24-Янв-12, 17:45 
>> Я: Если есть указатели, динамическая память и функция её освобождения, то я могу указатель сделать невалидным
>> Вы: Ждем примера с превращением std::tr1::shared_ptr в невалидный
>> Вы: Осталось объяснить, с какого перепугу в этот язык кто-то будет вводить функции освобождения динамической памяти.
> Повторюсь ещё раз: если есть указатели, динамическая память и функция её освобождения,
> то я могу указатель сделать невалидным.

Тебе человеческим языком сказано, что НЕТ функции освобождения памяти, а есть автоматическое управление памяти — то бишь без участия программиста. Какие еще могут быть "если"?

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

153. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от anonymous vulgaris on 25-Янв-12, 02:22 
> Даже на С++ их непосредственное использование давно стало дурным тоном, поскольку для  одних и тех же задач куда безопаснее применять не "сырые" указатели, а ссылки и "умные" указатели.

Ну вот тут недавно был отчет о том как в firefox борются с утечками памяти, можете там про умных с хорошими тонами почитать

>НЕТ функции освобождения памяти, а есть автоматическое управление памяти — то бишь без участия программиста. Какие еще могут быть "если"?

никаких если, да зравствует жаба-ц# ясное дело!

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

164. "Проект Mozilla представил релиз компилятора для языка програ..."  +2 +/
Сообщение от Аноним (??) on 25-Янв-12, 10:55 
Жаба и ц#? Увольте. Лисп — наше всё!
Ответить | Правка | ^ к родителю #153 | Наверх | Cообщить модератору

42. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от all_glory_to_the_hypnotoad (ok) on 24-Янв-12, 13:55 
будет очередной gc, почти как в яве с её гемором сборщика.
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

195. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от gknrenmds on 25-Янв-12, 20:52 
И мозилла станет жрать еще больше памяти...
Ответить | Правка | ^ к родителю #42 | Наверх | Cообщить модератору

12. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Crazy Alex (ok) on 24-Янв-12, 12:48 
типы есть
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

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

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

"Rust является языком со строгой типизацией, сфокусированным на безопасной работе с памятью и обеспечении высокого параллелизма выполнения заданий", вообще-то.
"нет номинальных типов или иерархии типов" значит всего лишь, что не получится использовать long int и short int в одном выражении. (http://en.wikipedia.org/wiki/Nominative_type_system)

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

33. "Проект Mozilla представил релиз компилятора для языка програ..."  –1 +/
Сообщение от Ваня (??) on 24-Янв-12, 13:26 
Под типами данных (базовыми, стандартными, номинальными, типовыми, ..) всю жизнь подразумевал как раз эти самые char, int, float, ..

long, short, signed, unsigned, .. - всю жизнь называл модификаторами.

Ну да ладно, вопрос терминологии.

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

45. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от all_glory_to_the_hypnotoad (ok) on 24-Янв-12, 13:58 
модификаторы здесь разве что signed/unsigned
Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

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

int - целое число.

long int - целое число с бОльшим количеством значений
signed int - знаковое целое число

Было целое число и осталось целое число.

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

81. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от Аноним239 on 24-Янв-12, 15:22 
'a' -целое число?


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

87. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от all_glory_to_the_hypnotoad (ok) on 24-Янв-12, 15:33 
ага, была переменная, и осталась переменной. В общем, существует только один тип - переменная.
Ответить | Правка | ^ к родителю #57 | Наверх | Cообщить модератору

162. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от шифер on 25-Янв-12, 09:42 
Слежу за дискуссией и не понимаю. Вот парень вроде какое-то отношение имеет к программированию, но бля неужели у такого эпического долбоёба получалось хоть что-то когда-то накодячить?

А пишу я for the great justice, у меня собственно вопрос:

> int - целое число.
> long int - целое число с бОльшим количеством значений

Что у тебя за компилятор такой, что у тебя long int длиннее int? Запости мне пожалуйста, что выведет printf("%d %d\n", sizeof(int), sizeof(long int));

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

165. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Ваня (??) on 25-Янв-12, 11:48 
Хмм... Вот мне тоже вас оскорблять, обвинять в непрофессионализме и грязно ругаться?

И вообще, интересно было бы посмотреть ваши ответы на задаваемые мне вопросы. Как со стороны, то каждый герой.

Насколько я помню, sizeof(long)=8, sizeof(int)=4, sizeof(short)=2, но я на С/С++ писал давно и возвращаться в обозримом будущем не планирую, а потому эти заморочки не критичны. "long" - значит должен быть длиннее, "short" - значит короче; тип int не предусматривает хранение в виде 2e5, поэтому всё остальное личная шиза разработчиков языка, ломающая привычную логику. Таких граблей везде хватает и запоминать их уже подустал.

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

172. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (??) on 25-Янв-12, 13:25 
> "long" - значит должен быть длиннее, "short" -
> значит короче; тип int не предусматривает хранение в виде 2e5, поэтому
> всё остальное личная шиза разработчиков языка, ломающая привычную логику. Таких граблей
> везде хватает и запоминать их уже подустал.

"long" - значит должен быть не короче , "short" - значит не длиннее. Так гласит спецификация языка. В отдельных реализациях компилятора размер int равен размеру short, в других — размеру long. Более того, компилятор, для которого размер short равен размеру long, тоже имеет право на существование (размер int в таком случае будет точно таким же). Поэтому полагаться на различия между размером типов long,int,short — моветон. Используйте типы intN_t и uintN_t — cтардарт С99 их включает (см. http://en.wikipedia.org/wiki/C_data_types#Fixed_width_intege...)

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

174. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Ваня (??) on 25-Янв-12, 13:30 
Как я не люблю сам себя цитировать...

Я не пишу на С/С++ и полагаться ни на что не собираюсь.

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

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

179. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (??) on 25-Янв-12, 13:43 
Поправьте, если я правильно понял. Общечеловеческая логика диктует Вам, что запоминать наизусть размер типов char,short,int,long,long long для каждого отдельного компилятора проще, чем обращаться к типам, в которых размер указан непосредственно — т.е. int8_t, int16_t, int32_t и int64_t? Серьезно?
Ответить | Правка | ^ к родителю #174 | Наверх | Cообщить модератору

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

Какое из слов этой фразы вам непонятно??????

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

193. "Проект Mozilla представил релиз компилятора для языка..."  +1 +/
Сообщение от arisu (ok) on 25-Янв-12, 19:59 
ну не мучай ванюшу, ну что ты, право… он же тебе уже намекнул, что окончательно распростился с мечтами работать программистом и смирился с должностью разносчика кофе.
Ответить | Правка | ^ к родителю #179 | Наверх | Cообщить модератору

191. "Проект Mozilla представил релиз компилятора для языка..."  +1 +/
Сообщение от arisu (ok) on 25-Янв-12, 19:53 
> Так гласит спецификация языка.

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

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

192. "Проект Mozilla представил релиз компилятора для языка..."  +1 +/
Сообщение от arisu (ok) on 25-Янв-12, 19:55 
> я на С/С++ писал давно и возвращаться в обозримом будущем не планирую

тебя таки окончательно выгнали с должности стажёра и перевели в вечные дежурные по аэродрому?

ванюша, так открой нам тайну, разреши вопрос: что стреляет в анус, попадает в нос^w^w^w^w^w^w^w на чём же пишет сейчас такой титан мысли и светоч знаний, как ты?

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

145. "Проект Mozilla представил релиз компилятора для языка..."  +/
Сообщение от arisu (ok) on 25-Янв-12, 00:58 
> модификаторы здесь разве что signed/unsigned

у ванюши всё, что с пробелом — «модификатор». то, что название типа может быть более, чем в одно слово — в череп не помещается.

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

159. "Проект Mozilla представил релиз компилятора для языка..."  +/
Сообщение от www2 (??) on 25-Янв-12, 07:25 
> у ванюши всё, что с пробелом — «модификатор». то, что название типа
> может быть более, чем в одно слово — в череп не
> помещается.

Ну вообще-то, long и short - это и в самом деле модификаторы типа int, так же как signed и unsigned.

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

160. "Проект Mozilla представил релиз компилятора для языка..."  +1 +/
Сообщение от arisu (ok) on 25-Янв-12, 07:39 
> Ну вообще-то, long и short - это и в самом деле модификаторы
> типа int, так же как signed и unsigned.

вопрос достаточно спорный, конечно: трактовать можно и так, и иначе. я бы, всё-таки, рассматривал это как разные типы, просто с похожими названиями.

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

170. "Проект Mozilla представил релиз компилятора для языка..."  +/
Сообщение от Ваня (??) on 25-Янв-12, 12:48 
Спецификации языка программирования (С99 и более поздние) больше не авторитет? Теперь "вы" решаете что является типом, а что нет? Странная избирательность...
Ответить | Правка | ^ к родителю #160 | Наверх | Cообщить модератору

171. "Проект Mozilla представил релиз компилятора для языка..."  +/
Сообщение от Аноним (??) on 25-Янв-12, 13:15 
> Спецификации языка программирования (С99 и более поздние) больше не авторитет? Теперь "вы"
> решаете что является типом, а что нет? Странная избирательность...

Теория типов уже не авторитет? Теперь спецификации отдельных языков программирования решают, что является типом, а что нет? Странная избирательность…

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

173. "Проект Mozilla представил релиз компилятора для языка..."  +/
Сообщение от Ваня (??) on 25-Янв-12, 13:28 
Для компилятора языка программирования Си спецификация (практическая реализация теории) языка программирования Си выше любых теорий.

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

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

180. "Проект Mozilla представил релиз компилятора для языка..."  +/
Сообщение от Аноним (??) on 25-Янв-12, 13:48 
> Для компилятора языка программирования Си спецификация (практическая реализация теории)
> языка программирования Си выше любых теорий.
> Не так давно данный персонаж мультов как раз писал что я, дескать,
> спецификаций не читаю. И вот, на тебе, в лужу сел.

Если спецификация, скажем, паскаля начнёт утверждать, что комплексные числа — это всегда запись из двух 42хбитных. Когда речь идёт только о гипотетическом паскале с комплексными числами, терминологию можно и даже нужно брать из спецификации; но когда обсуждаются НЕСКОЛЬКО языков, размахивать спецификацией одного из них, как флагом, и кричать, что только эту терминологию нужно использовать — глупость.

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

189. "Проект Mozilla представил релиз компилятора для языка..."  +1 +/
Сообщение от arisu (ok) on 25-Янв-12, 19:40 
> Не так давно данный персонаж мультов как раз писал что я, дескать,
> спецификаций не читаю.

что, книжку по ассемблеру отобрали?

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

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

62. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Crazy Alex (??) on 24-Янв-12, 14:44 
Сорри, погорячился, оно таки инопланетное. То есть может за многими рещениями и есть толковые обоснования, но их тогда надо было описать на сайте. Я всего лишь кратенько пробежался по описанию типов - и слегка очумел. Как минимум, конструкция alt для биндинга переменных к членам структуры и отсутствие нормального доступа через точку вызывают сомнения. Также как и требование явного боксинга для объектов при преедаче в функцию, принимающую итерфейс. Из замеченного -  ещё угловые скобки для параметров шаблонов - им что, проблем плюсов с парсингом хочется?

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

72. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Crazy Alex (??) on 24-Янв-12, 15:07 
так, что-то я сегодня туплю. Можно там через точку обращаться, это меня конструкция alt с толку сбила. И в общем язык довольно забавный - эдакий конкурент D, авторы явно много чему научились на дишном опыте и стараются не наступать на грабли (находя, впрочем другие).

Хотя кое-где явная чушь. Допустим, что им мешает immutable shared boxes гонять между тасками - я не понимаю. Но они для таких случаем используют зачем-то unique boxes,  которые в один момент могут быть доступны только одному таску. Всё, что можно предположить - что это артефакт подсчета ссылок, который между потоками работает откровенно паршиво.

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

9. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от anon8 (ok) on 24-Янв-12, 12:47 
«Ржавчина». Обнадеживающее название, ага.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

13. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Crazy Alex (ok) on 24-Янв-12, 12:50 
судя по описанию - язык довольно адекватный, начиная с бинарной совместимости структур с сишными
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

17. "Проект Mozilla представил релиз компилятора для языка програ..."  –2 +/
Сообщение от Ваня (??) on 24-Янв-12, 13:00 
"бинарной совместимости структур с сишными"

Это как?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

//fixed...

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

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

60. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (??) on 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 разных вариантов формата бинарных файлов этой библиотеки? Ну да, тяжела жизнь проприетарщика... :))

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

float minCoord(struct point p) {

}

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

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

76. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Crazy Alex (??) on 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
}

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

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

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

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

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

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

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

97. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Ваня (??) on 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 представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (??) on 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_...). И Вы всё еще утверждаете, что АБСОЛЮТНО ВСЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ™ бинарно совместимы?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

176. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (??) on 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 +/
Сообщение от Ваня (??) on 25-Янв-12, 14:25 
Вы в шаг от моего любимого:

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

:)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Proof or GTFO.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

155. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от anonymous vulgaris on 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) on 25-Янв-12, 03:45 
> 20 лет анабиоза, я бы тоже так хотел

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

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

19. "Проект Mozilla представил релиз компилятора для языка програ..."  +2 +/
Сообщение от Аноним (??) on 24-Янв-12, 13:01 
А чем их vala не устроила?
И безопасность, а автоуправление памятью, и распараллеливание - всё есть.
И не нужно ждать пока оптимизатор допилят - вала компилируется в С, для которого всё уже заоптимизировано по самое не балуйся :)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

23. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от Ищавин (ok) on 24-Янв-12, 13:08 
Наверное потому, что Вала отдает Джавой и пошарпанным Си.
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

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

71. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от Ищавин (ok) on 24-Янв-12, 15:01 
Это значит пока хардкорной оптимизации и невероятно сложное прогнозирование скорости исполнения кода.
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

38. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от namefields on 24-Янв-12, 13:41 
Потому что профиль dova (без glib) так и не доведён до рабочей альфы.
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

208. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (??) on 29-Янв-12, 11:30 
> Наверное потому, что Вала отдает Джавой и пошарпанным Си.

Она просто не ими написана :D:D:D:D:D

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

44. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от all_glory_to_the_hypnotoad (ok) on 24-Янв-12, 13:56 
в вале вроде полное ООП головного мозга? Это как бы не очень хорошо.
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

48. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от Аноним (??) on 24-Янв-12, 14:02 
> А чем их vala не устроила?

NIH. Каждая команда должна написать свою операционку, браузер и язык программирования. Даже если половина из них будут нафиг никому не нужны :)

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

209. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Аноним (??) on 29-Янв-12, 11:30 
>> А чем их vala не устроила?
> NIH. Каждая команда должна написать свою операционку, браузер и язык программирования.
> Даже если половина из них будут нафиг никому не нужны :)

Фатальный недостаток же :D:D:D:D

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

86. "Проект Mozilla представил релиз компилятора для языка програ..."  +2 +/
Сообщение от Crazy Alex (??) on 24-Янв-12, 15:33 
Лучше скажите, чем их D не устроил. Тут же соврешенно явно по мотивам написано, и сложность не меньше. С другой стороны - язык, в общем-то, инетересный. После того как понаступают на грабли и выпустят следующую версию (как у D  и было, и как бывает у любого языка с кучей экспериментальных фич) - может оказаться вполне рабочим. И даже если нет - это полигон дя обкатки этих самых фич, а особенно - их взаимодействия, на которое и приходится 90% проблем. Так что как ни крути - хорошо, что делают.
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

130. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от netch (ok) on 24-Янв-12, 18:27 
> А чем их vala не устроила?
> И безопасность, а автоуправление памятью, и распараллеливание - всё есть.
> И не нужно ждать пока оптимизатор допилят - вала компилируется в С,
> для которого всё уже заоптимизировано по самое не балуйся :)

Rust, Vala, D, Go, ещё десяток других...
Я думаю, просто дошли до того уровня технологий, когда такой язык (и переводчик из него в Си, чтобы не мучаться с глубинным уровнем компиляции и взять готовые средства) способен написать любой продвинутый студент. И теперь идёт борьба вариантов.

Я бы апеллировал в этой возне за Go, если бы он не был таким эстетически уродливым (чисто на мой вкус), а за 0 как префикс восьмеричной константы в XXI веке и прочие раритеты я бы просто расстреливал на месте. В Rust хоть этого нет - чуть лучше умеют чиститься от прошлых гадостей. Но надо смотреть и на другие особенности.

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

52. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от qwerty (??) on 24-Янв-12, 14:08 
Вот зачем в определении функции добавлять fn, с ним синтаксис выглядит как-то коряво.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

68. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Crazy Alex (??) on 24-Янв-12, 14:54 
Там у них этого "зачем" - талмуд написать можно. А еще больше будет, когда попытаются со всем этим взлететь. Уже то, что тип  структуры определяется её полями, а не именем, создаст им массу проблем вида "суммируем груши с чемоданами".
Ответить | Правка | ^ к родителю #52 | Наверх | Cообщить модератору

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

И получаем чемодан груш. Вроде все логично :)

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

85. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Crazy Alex (??) on 24-Янв-12, 15:30 
Это если код ожидал, что получит груши и чемоданы. А тут скорее получим чемоданогрушу... ну или грушечемодан, как больше нравится.
Ответить | Правка | ^ к родителю #79 | Наверх | Cообщить модератору

89. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от all_glory_to_the_hypnotoad (ok) on 24-Янв-12, 15:35 
чемодан груш, это, очевидно, чемодан умноженный на грушу, а не сумма.
Ответить | Правка | ^ к родителю #79 | Наверх | Cообщить модератору

123. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от userd (ok) on 24-Янв-12, 17:46 
Однако, груши с чемоданами сложатся только тогда, когда их программист сложит.
Ослабление статического контроля типов, конечно, может показаться регрессом по сравнению со многими другими языками. Нужно смотреть, что такой ценой "покупается".
Ответить | Правка | ^ к родителю #68 | Наверх | Cообщить модератору

138. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от mf (ok) on 24-Янв-12, 19:48 
>Уже то, что тип  структуры определяется её полями, а не именем...

Для библиотек на динамических языках это норма и называется duck typing, может для этого.

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

101. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от userd (ok) on 24-Янв-12, 17:04 
> Вот зачем в определении функции добавлять fn, с ним синтаксис выглядит как-то коряво.

Вероятно, для грамматики LL(1).
Довольно полезное свойство для ускорения компиляции и формирования понятных сообщений.

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

144. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от Crazy Alex (ok) on 25-Янв-12, 00:04 
И поэтому они сделали шаблоны через <>...
Ответить | Правка | ^ к родителю #101 | Наверх | Cообщить модератору

154. "Проект Mozilla представил релиз компилятора для языка..."  +/
Сообщение от arisu (ok) on 25-Янв-12, 02:25 
> И поэтому они сделали шаблоны через <>…

а это уже потому, что: «а? как? что? можно и по-другому? ёлы-палы… алё! пацаны! срочно всё переделываем, тут малява пришла, что шаблоны можно делать и не так, как в C++!»

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

185. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от userd (ok) on 25-Янв-12, 14:51 
Если рассматривать шаблон как своего рода функцию, то использование круглых скобок было бы предпочтительнее. Но автор решил использовать <>, и написал подходящую LL(1) грамматику. Очевидно, автор не собирается параметризовать шаблоны произвольными выражениями, а только именами типов. Поэтому затруднений подобных затруднениям при компиляции шаблонов в C++ нет.

Право слово, на практике применялись языки с более серьёзными заморочками в синтаксисе.
Вспомните PL/I или Pick BASIC. В первоначальном варианте языка C были операторы типа =+, которые потом заменились на +=. А тут версия 0.1, всё ещё может измениться.

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

194. "Проект Mozilla представил релиз компилятора для языка..."  +/
Сообщение от arisu (ok) on 25-Янв-12, 20:35 
на самом деле всё выглядит намного проще: дизайном языка никто не занимался. собралась Могучая Кучка и решила, что вместо нормального дизайна вполне покатит солянка из фич. не то, чтобы это было очень плохо, но всё-таки…
Ответить | Правка | ^ к родителю #185 | Наверх | Cообщить модератору

197. "Проект Mozilla представил релиз компилятора для языка..."  +/
Сообщение от Crazy Alex (ok) on 26-Янв-12, 04:28 
Ага, у меня такое же впечатление собралось. Это не просто не плохо - это очень полезно - в отличие от тщательно разработанной системы такая солянка даёт довольно свободно добавлять/удалять/менять фичи, так что в смысле наработки опыта создания языков тут очень много выгод. А взлетит/не взлетит - от качества языка, конечно зависит - но весьма слабо. Чего стоит только веб - подавляющее большинство серверов - PHP, а на клиентах застрял JS (и эти люди называют Перл write-only языком!). На их фоне проблемы какого-нибудь D или Rust - детские игры. Хотя PHP сейчас сильно окультурили, конечно - вон, даже типизацию тихой сапой вводят.
Ответить | Правка | ^ к родителю #194 | Наверх | Cообщить модератору

198. "Проект Mozilla представил релиз компилятора для языка..."  +/
Сообщение от arisu (ok) on 26-Янв-12, 04:36 
js нормальный вполне, хоть и корявый немного.

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

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

152. "Проект Mozilla представил релиз компилятора для языка програ..."  +1 +/
Сообщение от Аноним (??) on 25-Янв-12, 02:19 
Я не знаю как популярен станет этот язык,
но название реализации от МикроСофт должно начинатся с приставки Пидо
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

204. "Проект Mozilla представил релиз компилятора для языка програ..."  +/
Сообщение от eigrad (ok) on 27-Янв-12, 06:33 
во, неужели наконец альтернатива так и не взлетевшему D нарисовалась?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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




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

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