Todo lo que Necesitas Saber sobre el Lenguaje de Programación Peregrine

Total
2
Shares
Todo lo que Necesitas Saber sobre el Lenguaje de Programación Peregrine
Todo lo que Necesitas Saber sobre el Lenguaje de Programación Peregrine

Peregrine es un nuevo lenguaje de programación con una sintaxis similar a la de Python, pero con una velocidad de ejecución comparable a la de C (actualmente en desarrollo). Recientemente, Ethan, uno de los ocho desarrolladores, compartió algunas actualizaciones recientes de Peregrine.

Logo del Lenguaje de programación Peregrine
Logo del Lenguaje de programación Peregrine

Al describir el lenguaje de programación Peregrine, Ethan declaró:

Si estás familiarizado con Python, probablemente sepas que es sencillo de usar y a la vez lento, lo que resulta un poco incómodo. Para solucionar esto, mis amigos y yo estamos desarrollando un nuevo lenguaje de programación llamado Peregrine, que tiene una sintaxis muy similar. Peregrine está compilado en C, lo que le permite funcionar a la misma velocidad que éste“.

Además, los desarrolladores lo han creado como una alternativa rápida a Python y sencilla a C.

Objetivos de Peregrine

Los objetivos básicos del lenguaje Peregrine son los siguientes

  • Sencillez de uso
  • Rápido
  • Muy modular
  • Ocupa menos memoria
  • Compilación más rápida

He aquí un pequeño ejemplo para que lo entiendas:

Hola Mundo en Peregrine:

def main():
    print("¡Hola, Mundo!")

Características de Peregrine

Estas son algunas de las mejoras más recientes de Peregrine:

Inferencia de Tipos

La función de inferencia de tipos de Peregrine es una de las novedades de la empresa, que permite escribir código Peregrine de forma sencilla. La inferencia de tipos es el proceso de determinar automáticamente el tipo de una expresión en un lenguaje formal. Esta categoría incluye los lenguajes de programación y los sistemas de tipos matemáticos, así como los lenguajes naturales en ciertas disciplinas de la informática y la lingüística.

if/else/match

A pesar de que parece una característica típica de cualquier lenguaje de programación, su implementación lleva tiempo. No hay mucho que decir al respecto porque aparece en todos los lenguajes de programación.

Ccode

Peregrine tiene ahora una nueva característica llamada Ccode, que ya está lista para ser utilizada. Peregrine soporta la ejecución de código C mediante el uso de Ccode. He aquí una ilustración:

def main():
    x = 1
    Ccode x++; Ccode
    print("{x}\n") # prints 2

Las variables especificadas fuera del bloque Ccode pueden ser utilizadas dentro del bloque Ccode, y viceversa, como se ve en el ejemplo anterior. Esto también implica que cualquier biblioteca C puede ser importada y utilizada en Peregrine mediante el uso de Ccode.

Ensamblador en línea

Peregrine incorpora el Inline Assembly. En programación, algunos compiladores incluyen un ensamblador en línea como característica que permite la inclusión de código ensamblador de bajo nivel dentro de un programa junto con el código construido a partir de un lenguaje de alto nivel como C o Ada.

He aquí un ejemplo:

def main():
    int arg1 = 45
    int arg2 = 50
    int add = 0
    print("It should add 45 and 50 using asm and print it\n")
    asm("addl %%ebx, %%eax;" : "=a" (add) : "a" (arg1) , "b" (arg2))
    printf("%lld", add)

Como se esperaba, este programa imprime 95. En una línea similar, hay varios otros ejemplos en el directorio de pruebas de Peregrine.

Prueba de rendimiento

El autor afirma que Peregrine es tan rápido como C, proporcionando varios puntos de referencia para apoyar esta afirmación.

Prueba de rendimiento de Peregrine
Prueba de rendimiento de Peregrine (Fuente: SaptakBhoumik)

Según el autor, aquí se calculó la serie de Fibonacci de 0 a 40 de forma recursiva utilizando Python en el lado izquierdo, lo que llevó 32 segundos. En cambio, Peregrine, en el lado derecho, sólo tardó 1 segundo, por lo que es 32 veces más rápido. Además, es evidente que su sintaxis es muy similar a la del lenguaje de programación Python. Como punto de referencia, he aquí un benchmark con C.

Peregrine es más rápido que C
Peregrine es más rápido que C (Fuente: SaptakBhoumik)

Según el resultado anterior, Peregrine es tan rápido (si no más) que C (ambos tardaron 1 segundo).

¿Por qué C es tan rápido?

Los lenguajes de programación modernos incluyen la recolección de basura (garbage collection), el tipado dinámico y otras características que facilitan el diseño de los programas. La pega es que esto añade una sobrecarga de procesamiento adicional, que degrada el rendimiento de la aplicación. C carece de todo eso, lo que significa que no hay sobrecarga, pero el programador debe ser capaz de asignar y liberar memoria para evitar fugas de memoria y hacer frente a los tipos estáticos de las variables. De ahí que C sea más rápido que otros lenguajes modernos.

Comentarios

En respuesta a un comentario en la Comunidad DEV, “Python podría mejorar el ejemplo de Fibonacci resolviendo el problema de rendimiento con lru_cache para la memorización, lo que mejoraría el rendimiento del código. En este caso, se trata de un problema de consumo de memoria. Sería fantástico demostrar la comparación de rendimiento y consumo de memoria entre Python y Peregrine para este ejemplo para demostrar la eficacia del lenguaje Peregrine en esta situación. De lo contrario, tengo mis dudas de que Peregrine consuma más memoria“.

Discusión acerca del rendimiento de Peregrine
Discusión acerca del rendimiento de Peregrine (Fuente: Dev.to)

Saptak Bhowmik, colaborador del lenguaje Peregrine, respondió lo siguiente “Utilizar lru_cache, por otro lado, es una forma de hacer trampa. Si se compara una aplicación Python multihilo con un programa C de un solo hilo, es muy probable que Python gane“.

Características Previstas

Las siguientes son las características que se incluirán en la próxima versión.

  • Estructuras
  • Decoradores adicionales para una variedad de propósitos
  • Ecosistema Python de Peregrine – Peregrine es compatible con el módulo Python.
  • Está previsto que Peregrine lance la versión 0.0.1 en marzo, según los colaboradores.

Para más información: Repo: Github.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Suscríbete a nuestros Newsletters

Recibe notificaciones de los mejores trucos y apps, además muchos regalos.

Puede que también te interese