https://foro.gambas-es.org/viewtopic.php?f=1&t=6042
-----------------------------------
Shell
Lunes, 12 Diciembre 2016, 09:46

Azúcar Sintáctico De Un Programa
-----------------------------------
Buenas!.

Cuidado con los dulces!.  :twisted: 
¿ Sabéis lo que es el "azúcar sintáctico" cuando nos referimos a una aplicación ?.

[quote]
En informática, el azúcar sintáctico es un término acuñado por Peter J. Landin en 1964 para referirse a los añadidos a la sintaxis de 
un lenguaje de programación diseñados para hacer algunas construcciones más fáciles de leer o expresar.
[/quote]

[youtube]Ypgw-TgT70I[/youtube]

Pues parece que tambien existe la sal sintáctica.  :mryellow:

[youtube]Klt-JnVaHIc[/youtube]

Tanto el azúcar como la sal en exceso es perjudicial.  :twisted: 

Saludos


-----------------------------------
Shell
Lunes, 12 Diciembre 2016, 09:54

Re: Azúcar Sintáctico De Un Programa
-----------------------------------
Y ahora que ya conocen el significado de este termino:

¿ Son ustedes "golosos" o "resalados" ?.  :twisted: 

Saludos


-----------------------------------
vuott
Lunes, 12 Diciembre 2016, 17:06

Re: Azúcar Sintáctico De Un Programa
-----------------------------------
[quote user="Shell" post="36192"]¿ Son ustedes "golosos" o "resalados" ?[/quote]
........golosos de... que ?    :???:


-----------------------------------
Shell
Martes, 13 Diciembre 2016, 00:36

Re: Azúcar Sintáctico De Un Programa
-----------------------------------
Vuott:

[quote]
........golosos de... que ?
[/quote]

Aaaah, ya veo por donde vas. Esta vez, aunque sea una excepción, no estoy hablando de mujeres.
Goloso es la persona que come muchos dulces. Los que comen mucho de todo, son "tragones, zampones...".  :mrorange: 

Mezclo el concepto del "azúcar sintáctico" con el del azúcar real.
Con la intención de saber si vosotros usáis mucho esa técnica en la programación.

Saludos


-----------------------------------
tincho
Martes, 13 Diciembre 2016, 01:49

Re: Azúcar Sintáctico De Un Programa
-----------------------------------
Bueno, en mi caso particular por el momento paso un poco de estas cosas, pero mas adelante cuando este en un nivel mas avanzado (que optimista que soy  :roll: ) seguramente le prestare atención.
Ahora estoy mas enfocado en que los programas que hago funcionen bien y que sean eficientes si el código tiene tabuladores espacios o es azucarado o salado o agrio o amargo o etc. no me importa demasiado.
Trato de seguir unas normas para que me resulte facil leer el codigo dentro de un tiempo cuando no me acuerde de como lo hice  :evil:

Saludos.


-----------------------------------
Shell
Martes, 13 Diciembre 2016, 11:35

Re: Azúcar Sintáctico De Un Programa
-----------------------------------
Tincho:

[quote]
Trato de seguir unas normas para que me resulte facil leer el codigo dentro de un tiempo cuando no me acuerde de como lo hice
[/quote]

Si te acostumbras a una forma de hacer los programas, no te será difícil recordarlo.
El único problema es pasar un tiempo sin programar y olvidar.

La forma en como aprovechamos las posibilidades que nos ofrece un lenguaje y reducimos el código gracias
a unas instrucciones, puede no ser comprendida por todos los programadores que lean un código y ellos prefieran
hacer el código más sencillo, aunque el número de instrucciones sera mayor.

Cada cual tiene su estilo. Las instrucciones están ahí. Al principio habrá que desmenuzar la expresión. El que está
acostumbrado lo ve rápidamente.

Saludos


-----------------------------------
tincho
Martes, 13 Diciembre 2016, 13:38

Re: Azúcar Sintáctico De Un Programa
-----------------------------------
Si te soy sincero, vi los dos videos de azúcar y sal sintácticos, pero no había un caso practico para comprender bien sobre el terreno digamos.
Para comprender mejor el tema ¿Podrías poner unos ejemplos aplicados a gambas?

Saludos.


-----------------------------------
Shell
Martes, 13 Diciembre 2016, 14:42

Re: Azúcar Sintáctico De Un Programa
-----------------------------------
Un ejemplo básico de azúcar sintáctico lo tenemos con:

i += 1

i = i + 1

Son formas de ir abreviando. Sinceramente lo hacemos sin pensar, casi como un acto reflejo. 
En el grupo de sentencias asociadas con las de estructura y de control de flujo de un programa, 
tenemos varias y otras similares

De Select Case, tenemos Choose. Del If tradicional pasamos al IIF.
No es que sean exactamente igual, pero hay momentos que podemos usarlas y conseguir abreviar el código,
si encontramos la similitud.

Todo depende del lenguaje. Por ejemplo, en Python, puedes hacer un intercambio de los valores de una variable con una sola instrucción.
a , b = b, a

Pero Gambas tiene algo parecido, "Swap". En este caso, solo dos variables.
Nuestro problema es que como no son cosas que usamos  a diario, olvidamos. 
Y es que lo que olvidamos principalmente es la palabra "inglesa" de intercambiar.
Y es muy útil, pero...¿ la recordamos ?.

Son funciones que vamos incorporando para reducir el número de líneas de código,
hay que conocerlas, no siempre hay que reinventar la rueda.

Aunque el autor se refiere más en concreto a operadores. Tales como el de la primera línea. +=, por ejemplo

Más que azúcar sintáctico, yo diría que el azúcar es la propia magia o destreza del programador de usar en los momentos
adecuados, las funciones más precisas. Pero todo eso se consigue con la practica y el uso de las mismas, ya no digo experiencia.
A veces somos muy cerrados y trabajamos de la misma forma, nuestro estilo va cambiando, vamos aprendiendo, pero sin la practica
y el conocimiento de otras formas, maneras y métodos volveremos a repetir nuestra forma de trabajar.

Los que ya tenemos un tiempo con Gambas, deberíamos de aprender a usar en los momentos precisos, correctamente "el azúcar",
o la magia que los años de experiencia con Gambas nos ha dado. Debemos aprender más allá de lo de siempre. Hay que practicar
las funciones que nos facilitan la creación de código de una forma más rápida para nosotros y nunca olvidar que hay otras personas
que leerán nuestro código y pueden que nos necesiten para que ellos tambien aprendan esa "magia" que todos debemos saber usar.

Saludos


-----------------------------------
tincho
Martes, 13 Diciembre 2016, 15:12

Re: Azúcar Sintáctico De Un Programa
-----------------------------------
[quote user="Shell" post="36226"]Un ejemplo básico de azúcar sintáctico lo tenemos con: i += 1...[/quote]
Bueno he creado un articulo en el wikilibro de gambas con estos temas.
Tal vez sea util para entender mejor el código de otros.
http://wiki.gambas-es.org/doku.php/modificaciones_de_la_sintaxis#modificaciones_azucaradas
Si tenes sugerencias comentalas por este hilo y vamos mejorando el articulo.

Saludos.


-----------------------------------
Shell
Miercoles, 14 Diciembre 2016, 10:17

Re: Azúcar Sintáctico De Un Programa
-----------------------------------
Tincho:

[quote]
Si tenes sugerencias comentalas por este hilo y vamos mejorando el articulo.
[/quote]

Ok, lo que vaya viendo de Python y si tiene posibilidad de implementarse en Gambas, 
lo comento en este hilo.

Vuott, puede hacer lo mismo con C. ;-)

Saludos


-----------------------------------
shordi
Miercoles, 14 Diciembre 2016, 11:29

Re: Azúcar Sintáctico De Un Programa
-----------------------------------
He mirado el wiki, pero hay una cosa que no entiendo: ¿if -> iif?
if es una estructura de control de flujo, iif es una función. No es lo mismo ni sirven para lo mismo... por mucha azúcar que les pongas  :mryellow:  :mryellow:


-----------------------------------
tincho
Miercoles, 14 Diciembre 2016, 12:19

Re: Azúcar Sintáctico De Un Programa
-----------------------------------
[quote user="shordi" post="36262"]He mirado el wiki, pero hay una cosa que no entiendo: ¿if -> iif?
if es una estructura de control de flujo, iif es una función. No es lo mismo ni sirven para lo mismo... por mucha azúcar que les pongas  :mryellow:  :mryellow:[/quote]
si, bueno el wiki es un comienzo, un esbozo, no uso la funcion IIF, vi que por ejemplo tu la usas en tus códigos.
Shell comento que IIF era una especie de AS IF y por eso la puse pero. Mi intensión es que los que tengan claro este tipo de funciones las comenten para que las pongamos en el articulo del wiki.

IF talcosa = talotra then
Print "OK"
then
Print "Error"
Endif

IFF ..... como seria???

Saludos.


-----------------------------------
shordi
Miercoles, 14 Diciembre 2016, 12:37

Re: Azúcar Sintáctico De Un Programa
-----------------------------------
[code linenumbers=false syntax=gambas]
Valor=iif(talcondicion,estevalorsiescierto,esteotrosinoloes)
[/code]

Talcondicion es cualquier expresión evaluable y los valores cualquier cosa del mismo tipo que Valor. La ventaja es que al ser una función, la puedes incluir como parámetro de otras funciones o como parte de otras sentencias.

algo así:
[code linenumbers=false syntax=gambas] miString="Estimad" & iif(miresult.sexo="M","a","o") & ": " & gb.newline & "Nos ponemos en contacto con usted... etc. etc."
[/code]


