LINUX.ORG.RU

Sun's processor news


0

0

Уважаемые коллеги!

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

1. Чуть больше года назад, в феврале 2003 года, Sun объявил о своей новой стратегии в области процессорных и серверных разработок: Throughput Computing (обработка больших потоков данных). Одним из ключевых элементов этой стратегии явилась процессорная технология Chip Multithreading, CMT (многопотоковость на кристалле). Тогда же было заявлено, что это станет нашим магистральным направлением развития в области процессорных технологий.

2. В рамках стратегии CMT (Chip Multithreading) в то время уже шли разработки радикально новых процессоров с запланированным скачком производительности в 15-30 раз по сравнению с существующими процессорами. Эти проекты носят названия Niagara (процессор для работы с сетевыми потоками, 8 ядер, 32 потока) и Rock (процессор для обработки данных, 30-кратный рост производительности по сравнению с UltraSPARC-III).

3. Как любая компания, занимающаяся исследованиями и разработками, Sun ведет несколько параллельных проектов (в области процессорных технологий их было 12). В частности, шла работа над проектом Millenium, который считался "будущим UltraSPARC V" и проектом Gemini (2 двухпотоковых ядра, основанных на ядре UltraSPARC-II). Эти проекты в настоящее время доведены до стадии "taped out", то есть разработка и верификация завершены, проекты готовы к передаче в производство.

4. Принимая во внимание значительное продвижение в проектах Rock и Niagara и желая сконцентрировать ресурсы на наиболее перспективных направлениях, руководство компании приняло решение в разработке будущих систем использовать именно эти процессоры с технологией CMT и с радикальным скачком производительности. Наработки, сделанные в проектах Millenium и Gemini, будут использованы в новых процессорах, инженеры, работавшие в этих проектах, будут переведены в группы Niagara и Rock.

5. Новые процессоры, как и все предыдущие, будут использовать архитектуру SPARC и будут полностью бинарно совместимы со всеми предыдущими процессорами.

6. Выпуск процессоров проекта Niagara запланирован на начало 2006 года, процессоров проекта Rock - 2006-2007 год. До этого времени планируется выпустить несколько обновлений семейства UltraSPARC IV, которые поднимут производительность существующих систем Sun Fire еще в два раза (4-х кратный рост по сравнению с UltraSPARC III).

Более подробно, из первых рук, о нашей процессорной стратегии можно узнать из интервью Дэвида Йена (David Yen), опубликованного в Infoworld:

>>> Подробности

anonymous

Проверено: maxcom

Ответ на: комментарий от svu

> Итого остались asm,C,C++.

>Это потрясающе! Авторы "краткого курса истории ВКПб" отдыхают! Так надругаться над историей языков. Даже если брать попсовые языки (что в корне неправильно!) - куда-то делись тот же пролог, васик, паскаль, ада, кобол, жабка, шарп. Т.е в этом месте я действительно ROTFL...

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

>Скриптовый языкчок для жабских приложений.

Ну тогда он фикция. Во-первых он производная липса, а производная псевдоязыка есть псевдоязык. Во-вторых он реализован на псевдоязыке джава, а псевдоязык реализованный на псевдоязыке есть фикция.

skywalker
()
Ответ на: комментарий от skywalker

Да, я сам доктринер. Но таких доктринеров я еще не встречал. Т.е. это ж клеймит как общественный обвинитель на открытом процессе:

> o-малое, т.е. псевдоязыки заведомо уводящие в неправильном направлении

"Врагов народа - к ответу!" Почему "псевдо"? Почему "заведомо"? Почему "в неправильном" (и кто определил, какое "правильное". И почему "о-малое"?

> производная псевдоязыка есть псевдоязык. ... псевдоязык реализованный на псевдоязыке есть фикция.

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

svu ★★★★★
()
Ответ на: комментарий от skywalker

>> а многие gui на виндовс на вижуал бейсике пишут. Встроенные системы это вообще специфика, их не грех и на ассемблере пописать. А читабельность форта еще меньше чем липса и умрет он раньше.

какие мы нетерпеливые :)))
кстати, чем народ сейчас пользуется для написания/отладки forth-программ? я лет сто назад вкурил этот язык, а сейчас хочется вернуться и попробовать еще раз... opensource естественно

HellAngel ★★
()
Ответ на: комментарий от skywalker

>> Подгонка под языки там поскольку-постольку она сочетается с обратной записью операций и работой со стеком.

ты на нем что-нибудь и когда-нибудь писал? я помню что написать программу-типа_калькулятор, где применялась не постфиксная форма записи, а инфиксная было довольно просто. так же как и все остальное. исключитеьлно адаптивный язык. и перегрузка слов стопроцентная. так что - в биореактор! :))

HellAngel ★★
()
Ответ на: комментарий от skywalker

кажется это клиника... тебя не дима зовут? тогда можешь принимать поздравления - у тебя прогресс с пунктуацией :))

HellAngel ★★
()
Ответ на: комментарий от svu

>Есть такая Ассоциация ИИ в России (была еще в СССР). Вот они этим делом и балуются. Во главе с этим академиком.

то-то и оно что балуются :(

>На самом деле, ИИ действительно за последнее время никаких "прорывов" не совершило

А разве не очевидно почему? Все талантливые программеры у нас давно работают на дядю Сэма или еще какого дядю. Я просто в курсе какое болото из себя представляет Российский Институт Искусственного Интеллекта (та еще шаражкина контора) во главе с Нариньяни.

skywalker
()
Ответ на: комментарий от skywalker

> Какого рожна я должен писать + * как префиксные операции, это очень удобно и читабельно?

> (+ (* x (+ y 1)) 1) вместо x*(y+1)+1

> охрененно читабельно.

http://physics.syr.edu/~sorkin/lisp.library/bibliotek.macros.el

Макрос называется arith-to-lisp.

P.S. Дух Маниту - страшной силы весчь.

anonymous
()
Ответ на: комментарий от svu

>"Врагов народа - к ответу!" Почему "псевдо"? Почему "заведомо"? Почему "в неправильном" (и кто определил, какое "правильное". И почему "о-малое"?

псевдо и заведомо потому что в программировании за последние 30-лет ничего умного сделано не было

>Вот для завершающего аккорда еще "псевдофикции" не хватает. "Псевдореализованной".

псевдофиксия есть фикция, это уже тривиальный случай, зачем наводить псевдоязыки и псевдофикции высших порядков

>Коллега, я искренне надеюсь, что Вы шутите

да в-общем-то нет

skywalker
()
Ответ на: комментарий от HellAngel

>ты на нем что-нибудь и когда-нибудь писал? я помню что написать программу-типа_калькулятор, где применялась не постфиксная форма

не приходилось

> исключитеьлно адаптивный язык. и перегрузка слов стопроцентная. так что - в биореактор! :))

что есть 100% перегрузка слов

skywalker
()
Ответ на: комментарий от anonymous

>> Какого рожна я должен писать + * как префиксные операции, это очень удобно и читабельно? >> (+ (* x (+ y 1)) 1) вместо x*(y+1)+1

>> охрененно читабельно.

>http://physics.syr.edu/~sorkin/lisp.library/bibliotek.macros.el

>Макрос называется arith-to-lisp.

O, да в липсе макросы есть! А если у меня синтаксис еррор будет в выражении на страницу она мне правильно покажет место где ошибка?

skywalker
()
Ответ на: комментарий от skywalker

примерно то же самое, что "перегрузка операторов" в более других языках. только там операторы словами назывались (если за последние 15 лет терминалогия не поменялась).
и такой вопрос: чем тебе постфиксная форма не нравится? привыкаешь в лёт

HellAngel ★★
()
Ответ на: комментарий от skywalker

> O, да в липсе макросы есть!

:)

> А если у меня синтаксис еррор будет

Почему будет? Какой ещё "синтаксис еррор"? Синтаксиса-то ведь нет.

> в выражении на страницу она мне правильно покажет место где ошибка?

В голове, очевидно. Тут можно и не указывать.

anonymous
()
Ответ на: комментарий от HellAngel

>примерно то же самое, что "перегрузка операторов" в более других языках. только там операторы словами назывались (если за последние 15 лет терминалогия не поменялась).

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

> такой вопрос: чем тебе постфиксная форма не нравится? привыкаешь в лёт

не хочу я ни к чему привыкать, я уже со школы привык что сумма чисел есть x+y а не x y +, а приоритет у умножения больше чем у суммы. я хочу писать x*y+z как x*y+z а не как z x y * +

skywalker
()
Ответ на: комментарий от skywalker

> я уже со школы привык что сумма чисел есть x+y а не x y +,

Да, давно уже назрела необходимость что-то изменить в системе образования. После школы должно быть привычным (+ x y).

> а приоритет у умножения больше чем у суммы.

Ага, и держать в голове все эти приоритеты. Это будет покруче, чем помнить стек или считать скобки.

anonymous
()
Ответ на: комментарий от anonymous

>> А если у меня синтаксис еррор будет

>почему будет? Какой ещё "синтаксис еррор"? Синтаксиса-то ведь нет.

как это у вас нет синтаксиса, а вы программу пишите случайным набором слов? почему вы пишите "(+ 1 2)" a не "1 ) ( 2 +" ?

что будет если я подам на вход (+ 1 2))) ? не синтаксис еррор ? cool. удобно.

>> в выражении на страницу она мне правильно покажет место где ошибка? >В голове, очевидно. Тут можно и не указывать.

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

skywalker
()
Ответ на: комментарий от skywalker

> как это у вас нет синтаксиса,

Так это. Ну нету у _меня_ синтаксиса. Я же не ЯП.

> а вы программу пишите случайным набором слов?

Не случайным, а любым удобным.

> что будет если я подам на вход (+ 1 2)))

Только что проверил. Будет 3.

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

Научи это делать компилятор. Он это умеет. Только объясни ему, что ты считаешь ошибками.

anonymous
()
Ответ на: комментарий от skywalker

я подробностей тебе не расскажу - давно уже забыл все. только в общих чертах
словарей там несколько, да и стек не один. а вот пространств имен нет (не было), но можно было явно указывать словарь, с которым работаешь. а перегрузка вообще элементарно осуществлялась - словарь тоже представляет собой что-то вроде стека. т.е. последнее помещенное определение находится первым.
как делался этот калькулятор тоже не набрасаю - забыл все давно. но это не гон, можешь не сомневаться. по гибкости и изменяемости очень много возможностей в форте. можно например ассемблерный словарь создать и использовать (хотя этот пример плох из-за непереносимости) инлайн. и это ничем не будет отличаться от использования слов ядра языка.
компактное ядро, высокая скорость работы... только при желании можно такой код написать, что стоны отдельных товарищей про нечитаемость перла покажутся просто шепотом :))
производители железок (ты наверное в курсе) жалуют его. openboot & openfirmware например.

HellAngel ★★
()
Ответ на: комментарий от skywalker

да, сила привычки - страшная вещь. ты вспомни еще чему в школе на русском языке учат и как это потом в ВУЗах помогает

HellAngel ★★
()
Ответ на: комментарий от skywalker

Кстати, а как выглядят сообщения об ошибках в вашем любимм С++? Как "Ошибка: невозможно преобразовать тип ERROR_blah_blah_blah в тип CompileTimeChecker<false>"?

anonymous
()
Ответ на: комментарий от anonymous

>Так это. Ну нету у _меня_ синтаксиса. Я же не ЯП.

ясно, аргументы у тебя уже закончились. ну ты ж и не функция зачем тебе аргументы

>> что будет если я подам на вход (+ 1 2)))

>Только что проверил. Будет 3.

устойчивость к ошибкам это cool

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

>Научи это делать компилятор. Он это умеет. Только объясни ему, что ты считаешь ошибками.

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

skywalker
()
Ответ на: комментарий от anonymous

>Кстати, а как выглядят сообщения об ошибках в вашем любимм С++? Как "Ошибка: невозможно преобразовать тип ERROR_blah_blah_blah в тип CompileTimeChecker<false>"?

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

skywalker
()
Ответ на: комментарий от skywalker

> ясно, аргументы у тебя уже закончились. ну ты ж и не функция зачем тебе аргументы

Аргументы у меня еще и не начинались.

> устойчивость к ошибкам это cool

Что такое этот cool?

> вопрос был - если у вас (у липса) есть макросы и если я захочу воспользоваться вашим макросом и допущу там синтаксическую ошибку (а у вас же нет синтаксиса)

Нет синтаксиса - значит и синтаксическую ошибку не допустишь.

> опечатку, то покажет ли мне ваш умный интрепретатор устойчивый к ошибкам точное место этой "опечатки"

Если ты объяснишь этому интертрепатору что ты подразумеваешь под очепяткой.

> Я не хочу не кого учить делать чтобы то нибыло.

"И мне хочется неизмеримого богатства."

anonymous
()
Ответ на: комментарий от skywalker

> да примерно так. только еще и строка в которой этой произошло,

Сказки.

> как во всех нормальных инструментах.

Например?

anonymous
()
Ответ на: комментарий от anonymous

> Что такое этот cool?

это слово такое из английского языка

>Нет синтаксиса - значит и синтаксическую ошибку не допустишь.

ясно... у тебя нет синтаксиса или уже у липса? Заодно со словом cool посмотри в толковом словаре значение слова syntax.

skywalker
()
Ответ на: комментарий от skywalker

> это слово такое из английского языка

И чем оно примечательно?

> ясно... у тебя нет синтаксиса или уже у липса?

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

> Заодно со словом cool посмотри в толковом словаре

Я нихочу смотреть невкакие словари.

> значение слова syntax.

Это слово? И у него есть значение? Надо же ...

anonymous
()
Ответ на: комментарий от skywalker

> псевдо и заведомо потому что в программировании за последние 30-лет ничего умного сделано не было

Тогда занесите С++ в список "псевдо". Я не знаю там ничего существенного, чего не было бы раньше. И занесите в список "непсевдо" действительно первый ОО язык.

Кстати, кобол - достаточно древний. Я с ним практически не знаком, но подозреваю, что он тоже в свое время был новаторским. Может, тоже не "псевдо"?

И вообще - Вы сможете однозначно определить, является ли язык принципиально новым - или просто компиляцией старых идей? А даже если компиляцией - как быть с законом перехода количества в качество - ведь некоторое кол-во "старых" идей в новом языке могут давать некий новый эффект, в принципе?

Мне очень жаль, что Вы не шутите...

svu ★★★★★
()
Ответ на: комментарий от skywalker

>...
> По-определению, языки в послед-ти {asm,C,C++} расположены в порядке увеличения масштабируемости.
>...
> ибо джава это не язык (тк отсутствует в перечне выше).
>...

Про Жабу - это зря, я вот порой со своего мобильника (SiemensM50), через HTML-бравзер на Java написанный поглядываю на тот-же LOR, который тоже весь на жабе. Моя мобила - что-то около 50MHz проц, 150kb RAM, 228Kb Flash-ка для приложений итп, сервер LOR-овский на порядки мощнее чем моя мобилка, и все-таки и там и там - Java. Разве не пример масштабируемости? :)
А тормоза, прожорливость - это отдельный разговор.

quarck
()
Ответ на: комментарий от svu

>Да, я совсем забыл главную область применения - AI. В Штатах там, типа, именно лисп выруливает (в Европах - пролог). Вы думаете - случайно Столман в таких любвях с лиспом?

Что Столман тоже бот?

2 skywalker

спасибо за 15 минут здорового смеха

zim
()
Ответ на: комментарий от zim

> Что Столман тоже бот?

А то!:) Нет, он просто из МИТовских хакеров. А ИИ в Штатах тоже с МИТовскими корнями.

> спасибо за 15 минут здорового смеха

А вдруг он серьезно? Спасать же человека надо!

svu ★★★★★
()
Ответ на: комментарий от skywalker

> ну может и написали его на липсе съехавшие с катушек "программеры-хиппи золотой эры развития AI на липсе" и что? Сейчас марсоходы тоже на липсе программят ?

марсоходы сейчас програмят на C (может C++), Java и Perl под WindRiver-орвской осью. про перл меня вообще убило. чем может быть мотивирован такой выбор языков я не понимаю

anonymous
()
Ответ на: комментарий от skywalker

> Как бы странно ибо липс функциональный, а пролог логический и это две разные штуки.

запомни: современный лисп не функциональный язык, а мультипарадигмный. а в каком стиле в нём программировать (функциональном, императивном. объектном и т.п.) выбирает программист.

anonymous
()
Ответ на: комментарий от svu

> Да, я совсем забыл главную область применения - AI. В Штатах там, типа, именно лисп выруливает (в Европах - пролог). Вы думаете - случайно Столман в таких любвях с лиспом?

откуда у Вас такие м-м-м недостоверные сведения? посмотрите на comp.lang.lisp и на проекты на лиспе, лисп вполне популярен в Швеции, Норвегии, Германии, Бельгии.

anonymous
()
Ответ на: комментарий от skywalker

2skywalker (*)
>> примерно то же самое, что "перегрузка операторов" в более других языках. только там операторы словами назывались (если за последние 15 лет терминалогия не поменялась). 

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

Gforth 0.6.2, Copyright (C) 1995-2003 Free Software Foundation, Inc.

2 2 + . 4  ok
: 2 3 ;  ok
2 2 + . 6  ok

ЧИТАБЕЛЬНОСТЬ(фрагмент, можно и элегантнее, но чтоб ты узнавал конструкции):

: "да" true ;
: "нет" false ;
: да? = ;
: нет? <> ;
: узнать @ ;
: запомнить swap ! ;
... 

constant спереди 0
constant сзади 180
constant справа 90
constant слева -90 ( по-часовой :)
 
variable удачно
: удачно? удачно узнать ;
: удачно! удачно "да" запомнить ;
: неудачно! удачно "нет" запомнить ;

variable направление
: куда? направление узнать ;
: вперёд направление спереди запомнить ;
: назад направление сзади запомнить ;
: направо направление справа запомнить ;
: налево направление слева запомнить ;
: сменить-направление куда? вправо да? тогда направление влево запомнить иначе направление вправо запомнить далее ;
 
: шаг 1 сек двигаться ;
: препятствие? спереди сенсорный датчик касание? ;
: повернуться куда? град поворот ;

: пробовать повернуться удачно! препятствие? тогда неудачно! далее ;
: обойти
  налево  пробовать удачно?
  тогда шаг направо повернуться
  иначе направо пробовать удачно?
     тогда шаг налево повернуться
     иначе назад пробовать удачно?
       тогда шаг далее
     далее
   далее ;

: идти повторять{ шаг препятствие? тогда обойти далее цель-достигнута? }достаточно ;


P.S. На каком языке ты сможешь писать также?

anonymous
()
Ответ на: комментарий от anonymous

> : сменить-направление куда? вправо да? тогда направление влево запомнить иначе направление вправо запомнить далее ;

: сменить-направление куда? справа да? тогда направление слева запомнить иначе направление справа запомнить далее ;

в общем, в таком духе... :)

anonymous
()
Ответ на: комментарий от anonymous

От французов:) Я не сказал, что лисп не любят в Европе. Просто из того, что я слышал, следует, что пролог (европейского происхождения) более популярен в Европе, чем в Штатах. А лисп - наоборот.

svu ★★★★★
()
Ответ на: комментарий от anonymous

Используя bison, можно вообще определить свой язык :)

input:    /* пусто */
        | input line
;

line:     '\n'
        | exp '\n'  { printf ("\t%.10g\n", $1); }
;

exp:      NUM             { $$ = $1;         }
        | exp exp '+'     { $$ = $1 + $2;    }
        | exp exp '-'     { $$ = $1 - $2;    }
        | exp exp '*'     { $$ = $1 * $2;    }
        | exp exp '/'     { $$ = $1 / $2;    }
      /* возведение в степень */
        | exp exp '^'     { $$ = pow ($1, $2); }
      /* унарный минус        */
        | exp 'n'         { $$ = -$1;        }
;
%%

Это кулькулятор.

Sun-ch
()
Ответ на: комментарий от skywalker

> O, да в липсе макросы есть! А если у меня синтаксис еррор будет в выражении на страницу она мне правильно покажет место где ошибка?

а давайте Вы мне для начала изобразите макрос возведения в квадрат (sqr(x) -> x^2) на С.

anonymous
()
Ответ на: комментарий от anonymous

А кому это нужно??? Это же типический пример ПЛОХОГО применения макросов. Функция это должна быть. Инлайновая, возможно.

svu ★★★★★
()
Ответ на: комментарий от Sun-ch

> Используя bison, можно вообще определить свой язык :)

Sun-ch, как ты думаешь, а чем, по-сути, занимается Forth-программист?

Можно конструировать любые типы данных, управляющие конструкции, и т.д. и т.п.

Код программы Forth может считывать с любого источника. Итерактивность, как, например, у Python. Шитый код, как например, у Java. Инкапсуляцию, наследование и полиморфизм имеет с рождения, хотя, старше Pascal, но младше С, а С++ тогда, даже, в проекте не было.

Кстати, о размерах: например, существуют реализации Forth размером в 5 Кб (под DOS), со всеми этими свойствами.

anonymous
()
Ответ на: комментарий от svu

> А кому это нужно??? Это же типический пример ПЛОХОГО применения мне нужно. товарищ skywalker съязвив "O, да в липсе макросы есть!", видимо усомнился в том, что в лиспе есть макросы. я точно знаю, что в лиспе они есть. но сильно сомневаюсь, что они есть [в пригодном для употребления виде] в С/С++.

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

anonymous
()
Ответ на: комментарий от svu

> А где бы найти внятный tutor по бизону?

Он один и тот же последний десяток лет.

info bison

Очень внятно, может понять любой ПТУ-шник (по себе сужу).

anonymous
()
Ответ на: комментарий от anonymous

> а мне пожалуйста макрос вычисления квадрата на С.

Чаво подставляишься?

#define sqrt(x) ((x) * (x))

Ты попроси префиксную нотацию на макросах Си изобразить.

anonymous
()
Ответ на: комментарий от Sun-ch

И1 2 Саныч (a.k.a. И2)

"Это нечитаемо средним программистом на Си"

anonymous
()
Ответ на: комментарий от svu

> А Вы зачем подставляетесь? У Вас же x два раза вычисляется!

Ну так просили же _макрос_. Кстати в lisp макросы тоже не "гигиенические".

Ну а как правильно это записать ... ну а про нововведения C99 вы и без меня знаете.

anonymous
()
Ответ на: комментарий от anonymous

>> а мне пожалуйста макрос вычисления квадрата на С.

> Чаво подставляишься? ась?

> #define sqrt(x) ((x) * (x)) во-первых вычисление квадрата - это sqr (от square), sqrt - это квадратный корень (от square root).

во-вторых, что приведенный макрос навычисляет при вызове sqr(rand(), rand())?

а теперь я всё же попрошу привести мне корректную реализацию макроса вычисления квадрата на С.

> Ты попроси префиксную нотацию на макросах Си изобразить.

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

anonymous
()
Ответ на: комментарий от anonymous

>> #define sqrt(x) ((x) * (x))

> во-первых вычисление квадрата - это sqr (от square), sqrt - это квадратный корень (от square root).

> во-вторых, что приведенный макрос навычисляет при вызове sqr(rand(), rand())?

опечаточка вышла. я имел в виду вызов

sqr(rand());

вместо rand() можете подставить любую функцию с побочным эффектом

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.