⇦ Ramen Development_

¿Programar con emojis?

Cover Image for ¿Programar con emojis?

Los emojis son realmente utiles en algunos casos, pueden añadir emociones a nuestros mensajes para que su verdadero significado no pase desapercibido, pero ¿deberiamos usarlos para programar?

Emojicode es un lenguaje de programación de codigo abierto que usa emojis en lugar de palabras reservadas, y puede no ser el lenguaje de programación adecuade para tu siguiente proyecto, pero si te interesa saber como funciona un compilador deberías ver su código fuente.

Hemos realizado compiladores previamente para proyectos escolares, pero ninguno tan genial y original como este, realmente vale la pena probar.

Hello World

Como puedes ver en este extracto, la bandera a cuadros representa el inicio de nuestro programa, como la función principal o el main de nuestro programa, el emoji de uvas representaríá un { y la sandía el } en cualquier otro lenguaje para agrupar los bloques de código, el emoji feliz es el equivalente a un print, el emoji de ABC representa una cadena de caracteres y el emoji de exclamación significa que finalizamos de enlistar argumentos para nuestra función, como un parentesis de cierre.

¿Un poco sobrecomplicado? definitivamente, pero divertido! y puedes aprender mucho, al no ser tan fácil de leer necesitas realmente comprender lo que estás haciendo y si te interesa saber como funcionan los compiladores, esta es una excelente oportunidad para entender y pensar sobre como funciona el analisis sintactico (Si te interesan los compiladores lee este post de Gustavo Padilla).

Ahora veamos un poco mas, hice este pequeño programa para calcular un promedio con varias calificaciones dadas por el usuario, intenta decifrarlo antes de la explicación:

🏁 🍇
  0.0➡️🖍🆕 finalgrade
  🎞🐇💻❗️➡️🖍🆕 grades
  🐨grades 0❗️
  🔂 grade grades 🍇
    finalgrade⬅️➕🍺💯grade❗️
  🍉
  📏grades❓ ➡️ ngrades
  finalgrade⬅️➗💯ngrades❗️
  😀🔤Final grade: 🧲🔡finalgrade❗️🧲🔤❗️
🍉

Aquí el código explicado:

🏁 🍇
  💭 Inicializamos finalgrade como 0.0 (el .0 para especificarlo como un numero de punto flotante)
  0.0➡️🖍🆕 finalgrade
  💭 Obtenemos los argumentos de la consola
  🎞🐇💻❗️➡️🖍🆕 grades
  💭 Borramos el primer argumento de la lista (./hello)
  🐨grades 0❗️
  💭 Por cada calificación en la lista de calificaciones...
  🔂 grade grades 🍇
    💭 Convertimos la calificación a float y la sumamos a la calificación final
    finalgrade⬅️➕🍺💯grade❗️
  🍉
  💭 Obtenemos la longitud de la lista y la ponemos en ngrades
  📏grades❓ ➡️ ngrades
  💭 Divide la suma de calificaciones entre el numero de ellas
  finalgrade⬅️➗💯ngrades❗️
  💭 Imprimimos como string!
  😀🔤Final grade: 🧲🔡finalgrade❗️🧲🔤❗️
🍉

Creo que los comentarios ayudan mucho a entender este codigo desastroso, excepto por un par de cosas:

🎞🐇💻 El emoji de laptop es el objeto del sistema operativo, el conejo es como un punto para acceder a sus metodos y el 🎞 es el metodo que nos da los argumentos.

🍺 El emoji de cerveza se usa cuando trabajarás con un valor opcional que puede fallar, en este caso convertimos los argumentos a numeros flotantes así que si el usuario usa una cadena como argumento, el código entrará en panico, para evitar esto se deben checar los valores con ifs primero.

🧲 El emoji del imán se usa para interpolar valores en una cadena, como el f”{value}” en python.

Emojicode:

😀🔤Final grade: 🧲🔡finalgrade❗️🧲🔤❗️

Python:

print(f”Final grade: {str(finalgrade)}”)

Para compilarlo solo debes excribir en la linea de comando emojicodec + el nombre de tu archivo y generará 2 archivos, como un compilador de C, y siguiendo la misma lógica, lo corres con ./nombredearchivo justo como un programa compilado de C.

Output:

Output

Código en github

Aprende mas de emojicode

Aprende de compiladores leyendo el código fuente de emojicode!

Cover Photo by Domingo Alvarez E on Unsplash

Más entradas

Cover Image for Como traduje mi portafolio con JavaScript y JSON

Como traduje mi portafolio con JavaScript y JSON

No quería complicarme demasiado en mi portafolio personal para tenerlo listo más rápido y probar algo nuevo. Así que se me ocurrió una solución sencilla utilizando únicamente JavaScript.

Ivan Orozco
Ivan Orozco
Cover Image for ¿Banderas para representar lenguajes?

¿Banderas para representar lenguajes?

¿Debería utilizar las banderas de los países con mayor población que habla ese idioma? ¿cuál es la mejor manera de diseñar las opciones para cambiar de idioma?

Ivan Orozco
Ivan Orozco
Cover Image for ¿Programar con emojis?

¿Programar con emojis?

Los emojis son realmente utiles en algunos casos, pueden añadir emociones a nuestros mensajes para que su verdadero significado no pase desapercibido, pero ¿deberiamos usarlos para programar?

Ivan Orozco
Ivan Orozco
Cover Image for La historia detrás de Easy Simple Job

La historia detrás de Easy Simple Job

La historia detrás de nuestro juego no es complicada, inspirado por un video narrando una historia en Reddit que cuenta la historia de un tipo que consigue un simple pero sospechoso trabajo en una oficina, y ciertas cosas perturbadoras suceden...

Ramen Development Team
Ramen Development Team
Cover Image for Queridos reclutadores de LinkedIn...

Queridos reclutadores de LinkedIn...

Es importante que los reclutadores se tomen el tiempo para revisar el perfil de un candidato antes de enviar una oferta de trabajo.

Ivan Orozco
Ivan Orozco
Cover Image for Autómata de analizador léxico

Autómata de analizador léxico

En este artículo aprenderás a realizar un autómata para de un analizador lexico.

Gustavo Padilla
Gustavo Padilla