¿Qué sería un buen intérprete de lenguaje para implementar en un microcontrolador [cerrado]

0

Para los principiantes, siempre es un problema comenzar con los microcontroladores. El mayor problema es hacer que todo el sistema funcione y luego programarlo con C. C es un gran lenguaje, pero tiene sus inconvenientes.

Una solución para este problema sería ejecutar un intérprete de un lenguaje de alto nivel en el microcontrolador. Otra ventaja para el usuario sería que puede ver directamente lo que hizo un comando.

En detalle, queremos usar el controlador atsam4s16b de atmel. Desarrollamos una placa y ahora queremos que los usuarios sean tan fáciles de programar como sea posible.

En este momento estamos pensando en implementar el intérprete lua o en trasladar el intérprete elua.

Pero antes de comenzar, quiero preguntar si podría haber otras soluciones interesantes y cuáles son los pros y los contras.

Para un intérprete de lua incorporado, diría que, por supuesto, tiene algunas pérdidas de rendimiento como para todos los demás intérpretes que ejecuta. Pero en el lado positivo, lua es un lenguaje sencillo que puede aprenderse con bastante facilidad y que puede comunicarse de forma sencilla con el código c.

Por lo tanto, las características del lenguaje deben ser:

  • Fácil comunicación con C
  • interpretado
  • Fácil de aprender
  • conceptos modernos (orientados a objetos, quizás funcionales)
  • encaja en el ATSAM4S16B
  • ampliamente utilizado sería bueno
  • y el intérprete no debe estar en un estado experimental
pregunta TM90

2 respuestas

3

La respuesta de la vieja escuela que estoy tentado a dar es: FORTH .

Es muy adecuado para sistemas con recursos limitados, está cerca del hardware y, sin embargo, permite crear abstracciones muy potentes si se desea.

No sé acerca de su microcontrolador específico, pero los sistemas FORTH están disponibles para casi cualquier hardware.

    
respondido por el microtherion
2

Hay dos implementaciones de Python para microcontroladores que proporcionan un intérprete en chip:

Encajan en MCU con menos de 128 kB, por lo que deberían estar bien en un ATSAM4S16B.

Recuerde, UNIX Edition 7 se ejecutó en máquinas con 256kB. Eso brindó soporte multiusuario y multiproceso para varios usuarios (desde terminales seriales hasta terminales simples). Además, muchas de las primeras computadoras domésticas tenían significativamente menos recursos y funcionaban con BASIC.

Así que el software de los 70 probablemente funcionaría. Por ejemplo, Poplog .

Editar: no estoy recomendando Poplog, es solo un ejemplo de software lo suficientemente pequeño como para portar.

Otros sistemas, tal vez vale la pena considerarlos:

  • SmallTalk parece factible
  • XLisp Lo usé en el código de 64kB y datos de 64kB en una PC a mediados de los años 80.

Si se van a incluir los lenguajes compilados del host, que tienen ventajas sobre C, entonces .NET Micro Framework de Microsoft proporcionar un lenguaje más seguro que C.

    
respondido por el gbulmer

Lea otras preguntas en las etiquetas