Prioridad de operaciones

La secuencia de operaciones en programación es la secuencia de operaciones (o la dirección de cálculo)  establecida por la sintaxis de un determinado lenguaje de programación, que se implementa cuando las operaciones tienen la misma prioridad y no existe una indicación explícita (entre paréntesis) de la orden en que se realizan. Asociatividad (del lat. associatio ) - una propiedad de las operaciones que le permite restaurar la secuencia de su ejecución en ausencia de indicaciones explícitas del orden con igual prioridad; al mismo tiempo, existe una diferencia entre la asociatividad por la izquierda , en la que la expresión se evalúa de izquierda a derecha, y la asociatividad por la derecha asociatividad - de derecha a izquierda. Los operadores correspondientes se denominan asociativo por la izquierda y asociativo por la derecha.

Por ejemplo, en Python , la mayoría de las operaciones son asociativas por la izquierda, mientras que la exponenciación es asociativa por la derecha:

Asociatividad derecha (evaluación de la expresión de derecha a izquierda), exponenciación en Python:

x ** y ** z == x ** ( y ** z ) 2 ** 2 ** 3 == 2 ** ( 2 ** 3 ) == 256 ( 2 ** 2 ) ** 3 == 64

Asociatividad izquierda (evaluación de la expresión de izquierda a derecha), desplazamiento bit a bit en Python:

x << y << z == ( x << y ) << z 2 << 2 << 3 == ( 2 << 2 ) << 3 == 64 2 << ( 2 << 3 ) == 2 << 16 == 131072

En C#, todas las operaciones binarias, excepto la asignación, se dejan asociativas:

8 / 4 / 2 == ( 8 / 4 ) / 2

Véase también