ti-enxame.com

Operadores lógicos

Uma típica programação de cinta encaracolada tem dois tipos de e ou: lógico e bit a bit. && e || para ops lógicos e & e | para bit a ops. Ops lógicas são mais comumente usados ​​do que o Bitwise Ops, por que os ops lógicos são mais longos para digitar? Você acha que eles devem ser trocados?

4
Ming-Tang

Respondendo a última parte da sua pergunta: Você acha que eles devem ser trocados? Eu tenho que assumir que porque você não perguntou "se eu estou criando uma nova língua ..." isso significa para os idiomas existentes.

NÃO NÃO NÃO NÃO NÃO NÃO NÃO NÃO NÃO NÃO NÃO NÃO NÃO NÃO NÃO NÃO NÃO

Se isso fosse alternado em uma linguagem existente, eu nem queria começar a pensar nos insetos que ocorreria ... significaria que cada linha de cada aplicativo que é portada precisa ser explicitamente por um desenvolvedor.

Se você está construindo um idioma querida se livrar de && e ||, então use símbolos completamente diferentes para bitwise e não switch = eles. Mesmo parado, eu deixaria sozinho ou usará símbolos de dificuldade para todos eles. Alguns de nós precisam ir entre as línguas;)

2
MIA

Se projetar uma linguagem do zero hoje em dia e sem qualquer bagagem legada para se preocupar então, sim, provavelmente faria mais sentido usar & e | para operações lógicas e && e | para operações bit a bit. Mas tentar alterá-los agora para os idiomas existentes seriam loucos (como iria quebrar todos os softwares existentes) e provavelmente seria muito confuso para usá-los para novas línguas, uma vez que os programadores existentes se acostumaram com seu significado atual.

0
Dan Diplo

As opções bitwise estavam por aí antes dos idiomas de alto nível, ou seja, eles fazem parte da maioria dos conjuntos de instruções básicos da CPU (como e ou OR instruções sobre registros ou memória). & E | Apenas se tornou taquigrafia para eles em C e alguns outros idiomas de alto nível.

Há um ponto de seqüência após os operadores lógicos && e || (ou seja, o operando esquerdo é completamente avaliado antes do operando direito). Eles não são inerentemente parte do conjunto de instruções da CPU. Então eu acho que é apropriado que eles tenham o símbolo duplo.

0
tcrosley

Toda a discussão sobre a qual se veio primeiro é além do ponto. Eles são operações completamente diferentes. Só porque a língua não tem um booleano nomeado não significa que os designers não recebiam o conceito. '&' é para operar em bits, '&&' é para operar em estados verdadeiros/falsos (onde a verdade é definida como diferente de zero). Há uma boa razão que 1 e 2! = 1 && 2.

0
AShelly