Platzi
Platzi

¡Invierte en ti y celebremos! Adquiere un plan Expert o Expert+ a precio especial.

Antes: $349
$259
Currency
Antes: $349
Ahorras: $90
COMIENZA AHORA
Termina en: 9D : 2H : 15M : 33S

No tienes acceso a esta clase

Para ver esta clase necesitas una suscripción a Platzi

¿Cuándo se necesita un lenguaje de programación?

5/11

Proceso:

  1. Tenemos 10 legos:
    • 3 rectángulos Verdes
    • 3 rectángulos Azules
    • 3 rectángulos Amarillos
    • 1 rectángulo Rojo
  2. Empezamos por la base (Nivel 0) que sostendrá la estructura:
    • Lego Azul a la izquierda
    • Lego Verde perpendicular (90°)
    • Lego Azul en dirección contraría al Verde
    • Lego Amarillo perpendicular (90°)
  3. Pasamos al siguiente nivel (Nivel 1)
    • Lego Amarillo con 4 entradas en el lego azul y 4 entradas en el lego verde
    • Lego Amarillo perpendicular (90°) empezando con 4 entradas en el lego azul
    • Lego Verde perpendicular (90°) con 4 entradas en el lego Azul y 4 entradas en el Lego Amarillo
  4. Pasamos al siguiente nivel (Nivel 2)
    • Lego Rojo en las últimas 4 entradas del lego amarillo
    • Lego Azul perpendicular (90°)
  5. Pasamos al siguiente nivel (Nivel 3)
    • Lego Verde sobre las 4 últimas entradas del rojo y las 4 primeras entradas del azul

No existen lenguajes precisos y jamás van a existir porque existen datos omitidos en este universo. En este sentido los lenguajes evolucionan pero a medida que evolucionan seguirán existiendo datos omitidos hasta el infinito. Hoy podemos crear un lenguaje que sirva para construir legos o carros pero esos legos y autos van a evolucionar debido a que los datos omitidos fueron encontrados y asimismo una vez construidos habrá datos omitidos para hacer una nueva versión de un auto o un lego más avanzado

Ok, esto es lo mejor que puedo hacer tratando de seguir una sintaxis xD:
.

  1. Azul 45° nivel1
  2. Verde 45° nivel1 pegado a azul
  3. Azul2 135° nivel1 pegado a verde
  4. Amarillo 40° nivel1 pegado a Azul2
  5. Amarillo2 40° nivel2 encima de verde y azul
  6. Amarillo3 135° nivel2 pegado a Amarillo2
  7. Verde2 135° nivel2 pegado a Amarillo3
  8. Rojo 45° nivel3 encima de Amarillo2
  9. Azul3 nivel3 135° pegado a Rojo
  10. Verde3 nivel4 135° encima de Azul3

Algo que no se habla mucho es sobre los lenguajes de programación basados en gráficos.
En los que se dibuja sobre un lienzo en lugar de escribir texto, definiendo modelos de algún modo.
Estos pueden ser lenguajes debloques, cómo scratch o node-red, o algunos sistemas CASE que eran capaces de generar código automáticamente.
También hay DSLs, útiles para generar diagramas a partir de su definición en texto plano, ya sean UML, imagenes SVG o LaTex.

Tenia un profesor decía: “El lenguaje es polisémico, por eso usamos la lógica” 😃

Yo crearía un lenguaje preciso de programación para incluir dentro del mundo de la biología
También me parece interesante comentar cuando es considerado crear un lenguaje de programación o simplemente usar uno ya existente. Si tu lenguaje de programación no aporta relativamente nada nuevo realmente es necesario crearlo?? Además quizás en problemas más complejos no es realmente necesario crear un lenguaje de programación sino en lugar de eso crear un programa, app, una librería o un framework, no pienso que sea necesario reinventar la rueda a menos que nuestra rueda pueda ser mejor que la ya existente.

notation - bricks.png
brick b1 = {h: 0, color: blue, orientation: lateral, reference: origin};
brick b2 = {h: 0, color: green, orientation: lateral, reference: b1};
brick b3 = {h: 0, color: blue, orientation: transversal, reference: b2((+)1/2)};
brick b4 = {h: 0, color: blue, orientation: lateral, reference: b3((+)1/2)};
brick b5 = {h: 1, color: yellow, orientation: lateral, reference: b1((+)1/2)};
brick b6 = {h: 1, color: yellow, orientation: transversal, reference: b5};
brick b7 = {h: 1, color: green, orientation: lateral, reference: b6};
brick b8 = {h: 2, color: red, orientation: lateral, reference: b5((+)1/2)};
brick b9 = {h: 2, color: blue, orientation: transversal, reference: b8((+)1/2)};
brick b10 = {h: 3, color: green, orientation: transversal, reference: b8((+)1/2)};

structure floor0 = [b1, b2, b3, b4];
structure floor1 = [b5, b6, b7];
structure floor2 = [b8, b9]
structure floor3 = [b10]

structure construction1 = [floor0, floor1, floor2, floor3]`
Descripción de términos:

  • Hay dos tipos de datos: brick y structure

  • El tipo brick tiene 4 propiedades; h (altura), color, orientation (orientación) y reference (referencia).

  • La referencia puede expresarse como origin,de tal manera que si se van referenciando todos los bricks entre sí hasta el brick referenciado como origin pues
    no queda ningún bricks sin referenciar

  • La referencia puede expresarse en función de la referencia de otra figura, veasé como
    el brick b2 está referenciado con respecto al b1.

  • Cuando un brick se referencia con respecto a otro brick, la referencia puede incluir un peso
    en nuestro caso el peso es, (1/2).

  • El peso puede ser positivo ((+)1/2), si la pieza se encuentra delante de la anterior o
    negativo ((-)1/2), si la pieza se encuentra detrás de la anterior

  • El tipo structure puede ser un conjunto de piezas o de otros datos tipo structure.

  • El tipo structure se expresa gramaticalmente como los datos enumerados entre corchetes

Mi receta:
Crea lego azul en horizontal
Crea lego Verde en horizontal después de 1
Copia lego azul en vertical después de 2.
Cerda lego amarillo en horizontal después de 3.
Copia lego amarillo, en horizontal, arriba de 1 y 2, a partir de línea 3 de lego 1.
Copia lego amarillo, en vertical después de 5.
Copia lego verde, en horizontal después de 6.
Crea 1/2 Lego rojo, encima de 5 a partir de línea 3.
Copia lego azul, en vertical, suma 1/2 lego azul, en posición vertical encima de 6 y 7.
Copia lego verde, en vertical, encima de 9 a partir de la línea 1.

Jajaja, había llegado a esa conclusión del derecho hace ya un tiempo, no es cumplir las leyes es doblarlas lo mas que se pueda para aprovecharse de la ambigüedad

Se necesita un lenguaje de programación preciso para medir los efectos del cambio climático e identificar sus correlaciones con efectos sociales.

**Pseudocódigo:**
**Tenemos 10 Legos de cuatro colores (rojo (1), azul (3), verde (3) y amarillo (3))**


0. **Nivel 0:**
- Lego Azul - 90° Izq.

- Lego Verde - Ady a lego azul

- Lego Azul - 90° Op a lego verde

- Lego Amarrillo - 90° Der


1. **Nivel 1:**

- Lego Amarillo: 4 Pos a la Der 

- Lego Amarillo: 90° Op a lego amarillo

- Lego Verde: 90° Der


2. **Nivel 2:**

- Lego Rojo: 4 Pos a la Der 

- Lego Azul: 90° Op a la Der de lego rojo


3. **Nivel 3:**

- Lego Verde: A 0° pos 0

Para construir el conjunto de legos es necesario tener 10 piezas de lego largas, de 4 círculos cada una. Más específicamente 3 amarillas, 3 azules, 3 verdes y una roja. Comenzaremos por colocar una pieza de color azul, para posteriormente colocar una de color amarillo encima de esta a lo largo a partir de la mitad de la pieza azul, de tal manera que la pieza amarilla cubra la mitad de la azul y quede flotando la otra mitad.
Posteriormente colocaremos una pieza verde debajo de la mitad que ha quedado flotando de la pieza amarilla también a lo largo, de tal manera que obtengamos una forma de pirámide.
Acto seguido, colocaremos otra pieza amarilla sobre la parte libre de la pieza verde que acabamos de colocar, esta vez a 90 grados (hacia la derecha) de la pieza verde.
Por la parte inferior de la pieza amarilla que acabamos de colocar, colocaremos una pieza azul a lo largo.
Encima de esta pieza azul, en su espacio libre, volteando a 270 grados (la izquierda) colocaremos una pieza verde para posteriormente colocar una amarilla debajo de la misma a lo largo.

En este momento deberías de contar con una figura en forma de Z aproximadamente, con dos piezas amarillas y una verde en la parte superior.

Entre la pieza verde y la amarilla colocaremos una pieza de color azul, de tal manera que la pieza cubra la mitad de la verde y la mitad de la amarilla. Después, entre las dos piezas amarillas colocaremos una pieza roja, de tal manera que cubra de igual manera, la mitad de una pieza amarilla y la mitad de la otra.
Finalmente colocaremos la última pieza verde encima de la pieza roja y azul de tal manera que la pieza verde cubra la mitad de la roja y la mitad de la azul.

La ambigüedad y esa dificultad se nota muchísimo con los asistentes de voz ejemplo: Siri, google assistant, Alexa, no siempre nos entienden y eso que son una capa de más alto nivel.

Para formar la figura necesitamos fichas rectangulares con 8 huecos para ensamblar, necesitamos 2 verdes 1 azules 3 amarillas y fichas de 4 huecos tipo lego una verde y una roja y dos fichas de 12 huecos azules para empezar pondremos una ficha azul y una verde de 4 huecos una al lado de la otra por la parte pequeña del rectangulo despues pondremos una amarilla encima de las dos ensamblandolas dejando 4 huecos de la ficha azul disponibles, despues uniremos la parte de la pieza verde de 4 huecos con una azul de 12 huecos usando la parte pequeña de el mismo uniendola a la parte grande de la verde del lado derecho, luego unimos una ficha amarilla 4 huecos uniendola la parte pequeña a la parte grande de la pieza azul lugo uniremos las dos usando una ficha verde de 8 huecos dejando 4 huecos de la ficha amarilla al aire, en los 8 huecos que sobran en el plano del segundo nivel desde el piso colocaremos una ficha amarilla 4 huecos, despues ensamblaremos entre la amarilla y la verde uniremos una ficha 12 huecos azul dejando 4 huecos de la ficha verde del nivel inferior despues uniremos una roja 4 huecos encima de la amarilla al lado de la azul dejando 4 huecos de la amarilla del nivel superior, finalmente uniremos una ficha verde 8 huecos perpendicular a la roja pegada a el lado donde esta misma se encuentra.

LegoNumero=*Numero
LegoColor=*Color
LegoAngulo=*Angulo
LegoAntecesor1=*LegoNumero
LegoAntecesor2=*LegoNumero

  1. punto de referencia trazare un vector de 0 grado de izquierda a derecha.

  2. en un angulo de 30 grados encontraras, un bloque rojo como primer bloque arriba, luego encime del bloque rojo pondras un bloque amarillo y para finalizar la encontraras un bloque verde a la extremidad de derecha y bloque azul a la extremidad de izquierda.

  3. luego desplasare un vector de -70 grado, y encontraras arriba un bloque verde despues un azul, luego un amarillo y un verde. el bloque lo desplazaras a un angulo del vector a 10 grados. Luego un bloque azul debajo del verde

  4. trazar un vector de un angulo de 10 grados pondras un bloque amarillo

  1. Definir cada pieza y que características tendrá:
    -color
    -tamaño

  2. Generar la base con 4 piezas. Especificando su posición en un eje de coordenadas.

  3. Reducir el numero de piezas conforme la torre avance un escalón.

  4. Asegurar que cada pieza este bien ensamblada y en sus posición.

  5. Colocar un Baby Yoda en el centro de la torre.

Para los legos se utilizarían coordenadas o vectores en las 3 dimensiones para
ubicar con precisión cada pieza, tambien hay colores para las piezas que se pueden definir en las instrucciones, cada pieza tiene su dimensión o tamaño con una cantidad única de pines.

Proceso:

  1. Tenemos 10 legos:
    • 3 rectángulos Verdes
    • 3 rectángulos Azules
    • 3 rectángulos Amarillos
    • 1 rectángulo Rojo
  2. Empezamos por la base (Nivel 0) que sostendrá la estructura:
    • Lego Azul a la izquierda
    • Lego Verde perpendicular (90°)
    • Lego Azul en dirección contraría al Verde
    • Lego Amarillo perpendicular (90°)
  3. Pasamos al siguiente nivel (Nivel 1)
    • Lego Amarillo con 4 entradas en el lego azul y 4 entradas en el lego verde
    • Lego Amarillo perpendicular (90°) empezando con 4 entradas en el lego azul
    • Lego Verde perpendicular (90°) con 4 entradas en el lego Azul y 4 entradas en el Lego Amarillo
  4. Pasamos al siguiente nivel (Nivel 2)
    • Lego Rojo en las últimas 4 entradas del lego amarillo
    • Lego Azul perpendicular (90°)
  5. Pasamos al siguiente nivel (Nivel 3)
    • Lego Verde sobre las 4 últimas entradas del rojo y las 4 primeras entradas del azul

No existen lenguajes precisos y jamás van a existir porque existen datos omitidos en este universo. En este sentido los lenguajes evolucionan pero a medida que evolucionan seguirán existiendo datos omitidos hasta el infinito. Hoy podemos crear un lenguaje que sirva para construir legos o carros pero esos legos y autos van a evolucionar debido a que los datos omitidos fueron encontrados y asimismo una vez construidos habrá datos omitidos para hacer una nueva versión de un auto o un lego más avanzado

Ok, esto es lo mejor que puedo hacer tratando de seguir una sintaxis xD:
.

  1. Azul 45° nivel1
  2. Verde 45° nivel1 pegado a azul
  3. Azul2 135° nivel1 pegado a verde
  4. Amarillo 40° nivel1 pegado a Azul2
  5. Amarillo2 40° nivel2 encima de verde y azul
  6. Amarillo3 135° nivel2 pegado a Amarillo2
  7. Verde2 135° nivel2 pegado a Amarillo3
  8. Rojo 45° nivel3 encima de Amarillo2
  9. Azul3 nivel3 135° pegado a Rojo
  10. Verde3 nivel4 135° encima de Azul3

Algo que no se habla mucho es sobre los lenguajes de programación basados en gráficos.
En los que se dibuja sobre un lienzo en lugar de escribir texto, definiendo modelos de algún modo.
Estos pueden ser lenguajes debloques, cómo scratch o node-red, o algunos sistemas CASE que eran capaces de generar código automáticamente.
También hay DSLs, útiles para generar diagramas a partir de su definición en texto plano, ya sean UML, imagenes SVG o LaTex.

Tenia un profesor decía: “El lenguaje es polisémico, por eso usamos la lógica” 😃

Yo crearía un lenguaje preciso de programación para incluir dentro del mundo de la biología
También me parece interesante comentar cuando es considerado crear un lenguaje de programación o simplemente usar uno ya existente. Si tu lenguaje de programación no aporta relativamente nada nuevo realmente es necesario crearlo?? Además quizás en problemas más complejos no es realmente necesario crear un lenguaje de programación sino en lugar de eso crear un programa, app, una librería o un framework, no pienso que sea necesario reinventar la rueda a menos que nuestra rueda pueda ser mejor que la ya existente.

notation - bricks.png
brick b1 = {h: 0, color: blue, orientation: lateral, reference: origin};
brick b2 = {h: 0, color: green, orientation: lateral, reference: b1};
brick b3 = {h: 0, color: blue, orientation: transversal, reference: b2((+)1/2)};
brick b4 = {h: 0, color: blue, orientation: lateral, reference: b3((+)1/2)};
brick b5 = {h: 1, color: yellow, orientation: lateral, reference: b1((+)1/2)};
brick b6 = {h: 1, color: yellow, orientation: transversal, reference: b5};
brick b7 = {h: 1, color: green, orientation: lateral, reference: b6};
brick b8 = {h: 2, color: red, orientation: lateral, reference: b5((+)1/2)};
brick b9 = {h: 2, color: blue, orientation: transversal, reference: b8((+)1/2)};
brick b10 = {h: 3, color: green, orientation: transversal, reference: b8((+)1/2)};

structure floor0 = [b1, b2, b3, b4];
structure floor1 = [b5, b6, b7];
structure floor2 = [b8, b9]
structure floor3 = [b10]

structure construction1 = [floor0, floor1, floor2, floor3]`
Descripción de términos:

  • Hay dos tipos de datos: brick y structure

  • El tipo brick tiene 4 propiedades; h (altura), color, orientation (orientación) y reference (referencia).

  • La referencia puede expresarse como origin,de tal manera que si se van referenciando todos los bricks entre sí hasta el brick referenciado como origin pues
    no queda ningún bricks sin referenciar

  • La referencia puede expresarse en función de la referencia de otra figura, veasé como
    el brick b2 está referenciado con respecto al b1.

  • Cuando un brick se referencia con respecto a otro brick, la referencia puede incluir un peso
    en nuestro caso el peso es, (1/2).

  • El peso puede ser positivo ((+)1/2), si la pieza se encuentra delante de la anterior o
    negativo ((-)1/2), si la pieza se encuentra detrás de la anterior

  • El tipo structure puede ser un conjunto de piezas o de otros datos tipo structure.

  • El tipo structure se expresa gramaticalmente como los datos enumerados entre corchetes

Mi receta:
Crea lego azul en horizontal
Crea lego Verde en horizontal después de 1
Copia lego azul en vertical después de 2.
Cerda lego amarillo en horizontal después de 3.
Copia lego amarillo, en horizontal, arriba de 1 y 2, a partir de línea 3 de lego 1.
Copia lego amarillo, en vertical después de 5.
Copia lego verde, en horizontal después de 6.
Crea 1/2 Lego rojo, encima de 5 a partir de línea 3.
Copia lego azul, en vertical, suma 1/2 lego azul, en posición vertical encima de 6 y 7.
Copia lego verde, en vertical, encima de 9 a partir de la línea 1.

Jajaja, había llegado a esa conclusión del derecho hace ya un tiempo, no es cumplir las leyes es doblarlas lo mas que se pueda para aprovecharse de la ambigüedad

Se necesita un lenguaje de programación preciso para medir los efectos del cambio climático e identificar sus correlaciones con efectos sociales.

**Pseudocódigo:**
**Tenemos 10 Legos de cuatro colores (rojo (1), azul (3), verde (3) y amarillo (3))**


0. **Nivel 0:**
- Lego Azul - 90° Izq.

- Lego Verde - Ady a lego azul

- Lego Azul - 90° Op a lego verde

- Lego Amarrillo - 90° Der


1. **Nivel 1:**

- Lego Amarillo: 4 Pos a la Der 

- Lego Amarillo: 90° Op a lego amarillo

- Lego Verde: 90° Der


2. **Nivel 2:**

- Lego Rojo: 4 Pos a la Der 

- Lego Azul: 90° Op a la Der de lego rojo


3. **Nivel 3:**

- Lego Verde: A 0° pos 0

Para construir el conjunto de legos es necesario tener 10 piezas de lego largas, de 4 círculos cada una. Más específicamente 3 amarillas, 3 azules, 3 verdes y una roja. Comenzaremos por colocar una pieza de color azul, para posteriormente colocar una de color amarillo encima de esta a lo largo a partir de la mitad de la pieza azul, de tal manera que la pieza amarilla cubra la mitad de la azul y quede flotando la otra mitad.
Posteriormente colocaremos una pieza verde debajo de la mitad que ha quedado flotando de la pieza amarilla también a lo largo, de tal manera que obtengamos una forma de pirámide.
Acto seguido, colocaremos otra pieza amarilla sobre la parte libre de la pieza verde que acabamos de colocar, esta vez a 90 grados (hacia la derecha) de la pieza verde.
Por la parte inferior de la pieza amarilla que acabamos de colocar, colocaremos una pieza azul a lo largo.
Encima de esta pieza azul, en su espacio libre, volteando a 270 grados (la izquierda) colocaremos una pieza verde para posteriormente colocar una amarilla debajo de la misma a lo largo.

En este momento deberías de contar con una figura en forma de Z aproximadamente, con dos piezas amarillas y una verde en la parte superior.

Entre la pieza verde y la amarilla colocaremos una pieza de color azul, de tal manera que la pieza cubra la mitad de la verde y la mitad de la amarilla. Después, entre las dos piezas amarillas colocaremos una pieza roja, de tal manera que cubra de igual manera, la mitad de una pieza amarilla y la mitad de la otra.
Finalmente colocaremos la última pieza verde encima de la pieza roja y azul de tal manera que la pieza verde cubra la mitad de la roja y la mitad de la azul.

La ambigüedad y esa dificultad se nota muchísimo con los asistentes de voz ejemplo: Siri, google assistant, Alexa, no siempre nos entienden y eso que son una capa de más alto nivel.

Para formar la figura necesitamos fichas rectangulares con 8 huecos para ensamblar, necesitamos 2 verdes 1 azules 3 amarillas y fichas de 4 huecos tipo lego una verde y una roja y dos fichas de 12 huecos azules para empezar pondremos una ficha azul y una verde de 4 huecos una al lado de la otra por la parte pequeña del rectangulo despues pondremos una amarilla encima de las dos ensamblandolas dejando 4 huecos de la ficha azul disponibles, despues uniremos la parte de la pieza verde de 4 huecos con una azul de 12 huecos usando la parte pequeña de el mismo uniendola a la parte grande de la verde del lado derecho, luego unimos una ficha amarilla 4 huecos uniendola la parte pequeña a la parte grande de la pieza azul lugo uniremos las dos usando una ficha verde de 8 huecos dejando 4 huecos de la ficha amarilla al aire, en los 8 huecos que sobran en el plano del segundo nivel desde el piso colocaremos una ficha amarilla 4 huecos, despues ensamblaremos entre la amarilla y la verde uniremos una ficha 12 huecos azul dejando 4 huecos de la ficha verde del nivel inferior despues uniremos una roja 4 huecos encima de la amarilla al lado de la azul dejando 4 huecos de la amarilla del nivel superior, finalmente uniremos una ficha verde 8 huecos perpendicular a la roja pegada a el lado donde esta misma se encuentra.

LegoNumero=*Numero
LegoColor=*Color
LegoAngulo=*Angulo
LegoAntecesor1=*LegoNumero
LegoAntecesor2=*LegoNumero

  1. punto de referencia trazare un vector de 0 grado de izquierda a derecha.

  2. en un angulo de 30 grados encontraras, un bloque rojo como primer bloque arriba, luego encime del bloque rojo pondras un bloque amarillo y para finalizar la encontraras un bloque verde a la extremidad de derecha y bloque azul a la extremidad de izquierda.

  3. luego desplasare un vector de -70 grado, y encontraras arriba un bloque verde despues un azul, luego un amarillo y un verde. el bloque lo desplazaras a un angulo del vector a 10 grados. Luego un bloque azul debajo del verde

  4. trazar un vector de un angulo de 10 grados pondras un bloque amarillo

  1. Definir cada pieza y que características tendrá:
    -color
    -tamaño

  2. Generar la base con 4 piezas. Especificando su posición en un eje de coordenadas.

  3. Reducir el numero de piezas conforme la torre avance un escalón.

  4. Asegurar que cada pieza este bien ensamblada y en sus posición.

  5. Colocar un Baby Yoda en el centro de la torre.

Para los legos se utilizarían coordenadas o vectores en las 3 dimensiones para
ubicar con precisión cada pieza, tambien hay colores para las piezas que se pueden definir en las instrucciones, cada pieza tiene su dimensión o tamaño con una cantidad única de pines.