Индусские программисты и индусский код

8K
Уже с Приветом
Posts: 5538
Joined: 20 Mar 2001 10:01
Location: SFBA

Re: Индусские программисты и индусский код

Post by 8K »

АццкоМото wrote: Я туплю или код неверный?
UPD. Да, туплю.
Да нет, не тупишь. Код, очевидно неверный, поскольку не зовет A.

Хотя, возможно, в их предметной области побочных эффектов не бывает.
Last edited by 8K on 29 Jan 2013 22:44, edited 1 time in total.
Увидев друга, Портос вскрикнул от радости...
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Индусские программисты и индусский код

Post by АццкоМото »

Интеррапт wrote:Быть такого просто не может.
Ну да, перезагрузка Эклипса вернула представления на те же позиции, что и с утра :)
Но, тогда, я все равно придерусь. Изначально было A&&B. А такое в джаве с интами тоже не проходит. Так что return B вполне сойдет
Мат на форуме запрещен, блдж!
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Индусские программисты и индусский код

Post by АццкоМото »

8K wrote:
АццкоМото wrote: Я туплю или код неверный?
UPD. Да, туплю.
Да нет, не тупишь. Код, очевидно неверный, поскольку не зовет A.
Не, туплю :)
Там все верно было. Просто понять, что было нужно и зачем - мне, например, тяжко. Хотя сама проблема тривиальна как утюг
Мат на форуме запрещен, блдж!
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Индусские программисты и индусский код

Post by Интеррапт »

АццкоМото wrote:
Интеррапт wrote:Быть такого просто не может.
Ну да, перезагрузка Эклипса вернула представления на те же позиции, что и с утра :)
Но, тогда, я все равно придерусь. Изначально было A&&B. А такое в джаве с интами тоже не проходит. Так что return B вполне сойдет
Да, ес-но, Джава уже была потом добавлена, слегка не по делу. Но своих позиций по поводу возвращения булевых значений в Си - не сдам! :umnik1:
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Индусские программисты и индусский код

Post by АццкоМото »

Интеррапт wrote: Но своих позиций по поводу возвращения булевых значений в Си - не сдам! :umnik1:
Шо, и какой-нибудь strcmp() перепишешь??? :shock:
Мат на форуме запрещен, блдж!
User avatar
Dweller
Уже с Приветом
Posts: 12257
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: Индусские программисты и индусский код

Post by Dweller »

8K wrote:
АццкоМото wrote: Я туплю или код неверный?
UPD. Да, туплю.
Да нет, не тупишь. Код, очевидно неверный, поскольку не зовет A.
Хотя, возможно, в их предметной области побочных эффектов не бывает.
каких эффектов? засирания локального стека другим thread'ом? :)
или имеется в виду многопоточная ходьба по decision tree с одними и теми же входными А,В,С?
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Индусские программисты и индусский код

Post by АццкоМото »

Dweller wrote:
8K wrote:
АццкоМото wrote: Я туплю или код неверный?
UPD. Да, туплю.
Да нет, не тупишь. Код, очевидно неверный, поскольку не зовет A.
Хотя, возможно, в их предметной области побочных эффектов не бывает.
каких эффектов? засирания локального стека другим thread'ом? :)
или имеется в виду многопоточная ходьба по decision tree с одними и теми же входными А,В,С?
Видимо, имелось в виду, что А может изменить значение В
т.е. если А это
bool A () {
b=false;
return a;
}
и B это
bool B() {
return b;
}

то Ваша перестановка некорректна для большинства йызыков. другой вопрос, что несложно догадаться, что ничего подобного не имелось в виду
Мат на форуме запрещен, блдж!
User avatar
Dweller
Уже с Приветом
Posts: 12257
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: Индусские программисты и индусский код

Post by Dweller »

АццкоМото wrote:
Dweller wrote:
8K wrote:
АццкоМото wrote: Я туплю или код неверный?
UPD. Да, туплю.
Да нет, не тупишь. Код, очевидно неверный, поскольку не зовет A.
Хотя, возможно, в их предметной области побочных эффектов не бывает.
каких эффектов? засирания локального стека другим thread'ом? :)
или имеется в виду многопоточная ходьба по decision tree с одними и теми же входными А,В,С?
Видимо, имелось в виду, что А может изменить значение В
т.е. если А это
bool A () {
b=false;
return a;
}
и B это
bool B() {
return b;
}

то Ваша перестановка некорректна для большинства йызыков. другой вопрос, что несложно догадаться, что ничего подобного не имелось в виду
С таким ходом мысли не к нам а куда-нибудь в другой отдел. Не то чтобы он плох или неправилен, просто когда стоит задача сделать что-то простое как можно быстрее, надо именно это и делать а не искать подвохи, тем более что кандидату заранее было объявлено об их отсутствии.
8K
Уже с Приветом
Posts: 5538
Joined: 20 Mar 2001 10:01
Location: SFBA

Re: Индусские программисты и индусский код

Post by 8K »

Dweller wrote:
8K wrote:Код, очевидно неверный, поскольку не зовет A.
каких эффектов? засирания локального стека другим thread'ом? :)
или имеется в виду многопоточная ходьба по decision tree с одними и теми же входными А,В,С?
Я не знаю про decision tree.

А гавкнул про неэквивалентное преобразование (зависит от языка, некоторые вычисляют все операнды заранее), поскольку A в общем случае может иметь side effects. "A and false" не то же самое, что "false and A". Коммутативность не всегда доступна.

За десять лет насмотрелся на такие невинные с виду перестановки, из-за которых потом неделями ищут, почему программа стала иногда левую ногу приволакивать.
Увидев друга, Портос вскрикнул от радости...
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Индусские программисты и индусский код

Post by АццкоМото »

Dweller wrote: С таким ходом мысли не к нам а куда-нибудь в другой отдел. Не то чтобы он плох или неправилен, просто когда стоит задача сделать что-то простое как можно быстрее, надо именно это и делать а не искать подвохи, тем более что кандидату заранее было объявлено об их отсутствии.
Ну вообще говоря иметь представление о порядке вычисления логических выражений было бы неплохо.
А если Вам нужно решить простое быстро, а не искать подвохи, то вот ответ:
return (A||(!B))&&(B||C); // Вас же он не устраивает, не так ли?
Вы же придумали элементарную, но отнюдь неочевидную задачу, распарсировать которую - отдельная задача, а все ее implications - вообще повод для трехчасовой беседы
Мат на форуме запрещен, блдж!
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Индусские программисты и индусский код

Post by Интеррапт »

АццкоМото wrote:
Интеррапт wrote: Но своих позиций по поводу возвращения булевых значений в Си - не сдам! :umnik1:
Шо, и какой-нибудь strcmp() перепишешь??? :shock:
Так strcmp не возвращает булево значение, а описывает отношение между строками, т.е. возвращает >0, =0, <0
зачем же его переписывать?
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Индусские программисты и индусский код

Post by АццкоМото »

Интеррапт wrote:
АццкоМото wrote:
Интеррапт wrote: Но своих позиций по поводу возвращения булевых значений в Си - не сдам! :umnik1:
Шо, и какой-нибудь strcmp() перепишешь??? :shock:
Так strcmp не возвращает булево значение, а возвращает >0, =0, <0
зачем же его переписывать?
Ну прежде всего он возвращает "равно или неравно", что нечто вроде булевого значения
А если важно больше/меньше, то что-то типа tribool. Т.е. по аналогии нужно возжелать 1,0,-1 и никак иначе
(кстати, x==y всю жизнь работал ровно также, как и strcmp() - по знаку результата можно было определить, что больше, а не только равны ли они)
Мат на форуме запрещен, блдж!
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Индусские программисты и индусский код

Post by Интеррапт »

АццкоМото wrote: Ну прежде всего он возвращает "равно или неравно", что нечто вроде булевого значения
Не-а, оно именно возвращает отношения строк, а уж 0 - это просто частный случай.
АццкоМото wrote: А если важно больше/меньше, то что-то типа tribool. Т.е. по аналогии нужно возжелать 1,0,-1 и никак иначе
(кстати, x==y всю жизнь работал ровно также, как и strcmp() - по знаку результата можно было определить, что больше, а не только равны ли они)
Почему это? У этой функции есть четко определенные значения, что она должна возвращать. Вот, что говорит C99:
C99, 7.21.4 wrote: The sign of a nonzero value returned by the comparison functions memcmp, strcmp, and strncmp is determined by the sign of the difference between the values of the first pair of characters (both interpreted as unsigned char) that differ in the objects being compared.
Об чем спор, если есть четкое определение в стандарте? :)
User avatar
Dweller
Уже с Приветом
Posts: 12257
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: Индусские программисты и индусский код

Post by Dweller »

АццкоМото wrote:
Dweller wrote: С таким ходом мысли не к нам а куда-нибудь в другой отдел. Не то чтобы он плох или неправилен, просто когда стоит задача сделать что-то простое как можно быстрее, надо именно это и делать а не искать подвохи, тем более что кандидату заранее было объявлено об их отсутствии.
Ну вообще говоря иметь представление о порядке вычисления логических выражений было бы неплохо.
А если Вам нужно решить простое быстро, а не искать подвохи, то вот ответ:
return (A||(!B))&&(B||C); // Вас же он не устраивает, не так ли?
Вы же придумали элементарную, но отнюдь неочевидную задачу, распарсировать которую - отдельная задача, а все ее implications - вообще повод для трехчасовой беседы
Опять же, все дело в контексте. А он у нас связан с простейшим decision tree.
Если бы я хотел многопоточника, я бы спросил что нибудь типа:

X = Y = 0 and X and Y are both shared by both threads

Thread 1
X = 1
if(Y == 1)
print "Y = 1"
else
print "Y = 0"

Thread 2
Y = 1
if(X == 1)
print "X = 1"
else
print "X = 0"

Какие результаты и на какого типа машинах можно получить?
(атомарность операций присвоения и сравнения гарантирована)
Last edited by Dweller on 30 Jan 2013 01:13, edited 1 time in total.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Индусские программисты и индусский код

Post by crypto5 »

Dweller wrote:
АццкоМото wrote:
Dweller wrote: С таким ходом мысли не к нам а куда-нибудь в другой отдел. Не то чтобы он плох или неправилен, просто когда стоит задача сделать что-то простое как можно быстрее, надо именно это и делать а не искать подвохи, тем более что кандидату заранее было объявлено об их отсутствии.
Ну вообще говоря иметь представление о порядке вычисления логических выражений было бы неплохо.
А если Вам нужно решить простое быстро, а не искать подвохи, то вот ответ:
return (A||(!B))&&(B||C); // Вас же он не устраивает, не так ли?
Вы же придумали элементарную, но отнюдь неочевидную задачу, распарсировать которую - отдельная задача, а все ее implications - вообще повод для трехчасовой беседы
Опять же, все дело в контексте. А он у нас связан с простейшим decision tree.
Если бы я хотел многопоточника, я бы спросил что нибудь типа:

X = Y = 0 and X and Y are both shared by both threads

Thread 1
X = 1
if(Y == 1)
print "Y = 1"
else
print "Y = 0"

Thread 2
Y = 1
if(X == 1)
print "X = 1"
else
print "X = 0"

Какие результаты и на какого типа машинах можно получить?
А какой ответ про "типы машин"?
In vino Veritas!
User avatar
Dweller
Уже с Приветом
Posts: 12257
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: Индусские программисты и индусский код

Post by Dweller »

crypto5 wrote:А какой ответ про "типы машин"?
имеются в виду разные архитектуры процессора
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Индусские программисты и индусский код

Post by crypto5 »

Dweller wrote:
crypto5 wrote:А какой ответ про "типы машин"?
имеются в виду разные архитектуры процессора
Предположим. И какая бывает разница?
In vino Veritas!
User avatar
Dweller
Уже с Приветом
Posts: 12257
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: Индусские программисты и индусский код

Post by Dweller »

crypto5 wrote:
Dweller wrote:
crypto5 wrote:А какой ответ про "типы машин"?
имеются в виду разные архитектуры процессора
Предположим. И какая бывает разница?
и все же дам интересующимся возможность пообсуждать
8K
Уже с Приветом
Posts: 5538
Joined: 20 Mar 2001 10:01
Location: SFBA

Re: Индусские программисты и индусский код

Post by 8K »

Интереснее было бы присваивать -1 вместо 1 (а нолики оставить). Я думаю, тогда бы чудеса и начались. Никто же не обещает целое число обновлять на счет раз.
Увидев друга, Портос вскрикнул от радости...
User avatar
Dweller
Уже с Приветом
Posts: 12257
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: Индусские программисты и индусский код

Post by Dweller »

8K wrote:Интереснее было бы присваивать -1 вместо 1 (а нолики оставить). Я думаю, тогда бы чудеса и начались. Никто же не обещает целое число обновлять на счет раз.
все же процессор это не телек с черезстрочной разверткой, минимальная атомарность не на уровне битов
8K
Уже с Приветом
Posts: 5538
Joined: 20 Mar 2001 10:01
Location: SFBA

Re: Индусские программисты и индусский код

Post by 8K »

Dweller wrote:минимальная атомарность не на уровне битов
Тем не менее, в примере, который бы проверял значение на 0 и затем печатал не фиксированное сообщение, а то, что лежит в X и Y, я бы ожидал увидеть (в том числе и) промежуточные значения, где часть байтов целого еще не успела обновиться.

Железячники, конечно, знают наверняка, как оно там все устроено. Мы же, с софтовою планидой, исключительно руками водим и на кофейной гуще гадаем.
Увидев друга, Портос вскрикнул от радости...
User avatar
Dweller
Уже с Приветом
Posts: 12257
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: Индусские программисты и индусский код

Post by Dweller »

в железках тоже софт есть, причем непростой
User avatar
SVK
Уже с Приветом
Posts: 8241
Joined: 23 Jul 2003 03:53
Location: SPb - KW - NY - CT - MD

Re: Индусские программисты и индусский код

Post by SVK »

8K wrote:и затем печатал не фиксированное сообщение, а то, что лежит в X и Y, я бы ожидал увидеть (в том числе и) промежуточные значения, где часть байтов целого еще не успела обновиться.
Да, тогда интересная должна быть разница между процессорами, где байты целого обновляются от старших к младшим, и где - наоборот! :mrgreen: :great:
LG - Life's good.
But good life is much better.
User avatar
Dweller
Уже с Приветом
Posts: 12257
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: Индусские программисты и индусский код

Post by Dweller »

SVK wrote:
8K wrote:и затем печатал не фиксированное сообщение, а то, что лежит в X и Y, я бы ожидал увидеть (в том числе и) промежуточные значения, где часть байтов целого еще не успела обновиться.
Да, тогда интересная должна быть разница между процессорами, где байты целого обновляются от старших к младшим, и где - наоборот! :mrgreen: :great:
Добавил к условию задачи: атомарность операций присвоения и сравнения гарантирована
Чтобы немного сузить область "тыков в небо" :)
agrippina
Уже с Приветом
Posts: 366
Joined: 06 Jan 2006 23:21

Re: Индусские программисты и индусский код

Post by agrippina »

Dweller wrote:в железках тоже софт есть, причем непростой
Неужели тоже хадуп?

Return to “Работа и Карьера в IT”