¿Cuáles son los poderosos lenguajes de programación para la programación integrada?

Primero, haces 2 preguntas diferentes.

Responda a la primera pregunta: si por “más poderoso” se refiere al rendimiento bruto y la capacidad de hacer cualquier cosa que el hardware admita, entonces es lenguaje ensamblador. C ocupa un segundo lugar, ya que puede hacer la mayor parte de lo que de otro modo podría hacer en lenguaje ensamblador con poca o ninguna degradación del rendimiento.

Respuesta a la segunda pregunta: C es. Linux fue (y todavía lo está) escrito en C. Aunque se pueden usar muchos otros lenguajes en Linux, C se considera el “idioma nativo” de Linux. El predecesor de Linux, UNIX, también se escribió casi por completo en C (con un pequeño lenguaje ensamblador incluido).

Aunque otros pueden señalar que existen otras buenas alternativas a C en la programación integrada, el hecho es que más del 95% del firmware integrado del mundo está escrito en C, y la mayor parte del saldo está escrito en lenguaje ensamblador. Lo que esto significa para usted es que existe un gran ecosistema que admite el desarrollo de C. incrustado. Con la mayoría de los otros lenguajes para programación integrada, estará limitado a un ecosistema muy pequeño para soporte. Esto no es un asunto trivial cuando se intenta hacer un proyecto incrustado correctamente y enviarlo a tiempo. Un desarrollador integrado debería tomar esto en consideración seriamente como parte de la “potencia” de C en los sistemas integrados.

Estoy luchando con la formulación de su pregunta; pregunta cuál es el lenguaje más poderoso (ya que funciona con la menor cantidad de líneas de código), pero lo hace con el objetivo de ser comercializable.

No verá nesC muy a menudo, pero es el lenguaje de programación “bare metal” más poderoso que he encontrado.

Al igual que otras innovaciones de Berkeley como Berkeley Software Distribution Unix, Berkeley RISC y RAID, puede llevar un tiempo pasar de una curiosidad académica a un producto comercial viable. Con la rápida expansión de “IoT”, vigílelo, ya que más personas se dan cuenta de que ya ha resuelto una serie de problemas difíciles con los que están luchando.

¡Buena suerte!

No se confunda con lenguaje de programación y programación. El lenguaje de programación que debe conocer para trabajar en Linux incorporado es C. Pero puede convertirse en un experto en lenguaje C en una semana. Pero dominar la programación en C lleva años. Comience a practicar la programación en C si está interesado en la programación integrada (Linux incorporado).

C.

Si está jugando con el código del kernel y los controladores, eso es todo lo que usará el 99.998% del tiempo. El otro 0.002% son las 50 líneas de ensamblaje incrustado.

Oh, no te molestes con C ++. Es una pérdida de tiempo en este campo.

La clave de su pregunta es el comentario de Linux incrustado. Si ya tiene Linux en ejecución, no importa en qué idioma escriba, siempre que pueda completar el trabajo en los recursos y el tiempo dados.

  • C es casi siempre una buena opción, ya que sus esfuerzos serán rápidos, pequeños y tendrán acceso a todos los recursos del sistema disponibles.
  • Lua puede ser pequeño y rápido, sin tener pausas de GC malas. LuaJIT puede ser aún más rápido si eso es lo que necesitas. También puede llamar a cualquier C.

Si estaba haciendo algo aún más incrustado, donde un sistema operativo ni siquiera está disponible, las opciones son diferentes. Su cadena de herramientas tendría que soportar el entorno que desea incrustar.

  • C sigue siendo una buena opción.
  • Forth se vuelve muy útil y es pequeño y fácil de desarrollar.
  • Lua tiene opciones integrables.
  • Python surge aquí y allá, pero tiene opciones limitadas para las cadenas de herramientas.
  • Los entornos de desarrollo de JVM aparecen aquí y allá, pero nunca despegaron realmente.

C obviamente. Tenga en cuenta que hay dos tipos de entorno C, alojado y de metal desnudo. Alojado es lo que C en Linux incrustado. El metal desnudo está en un microcontrolador sin ninguna capa entre usted y el silicio. El entorno de metal desnudo es mucho más limitado.

Para la mayoría de las plataformas integradas en general y para Linux integrado en particular, no obtendrá absolutamente ningún lugar si no conoce C al revés. Es posible que se necesite un poco de ensamblaje, pero es muy poco, y lo leerá principalmente, no lo escribirá.

La mayoría y el lenguaje de programación más utilizado es la Programación Embedded C

Actualmente estoy trabajando como ingeniero de sistemas integrados.

  • Si va a trabajar a nivel de aplicación, será C o C ++.
  • Si va a trabajar en el nivel del núcleo, debe ser C.
  • Si va a trabajar a nivel de hardware / software, será FPGA.

Forth es bastante poderoso. No es convencional, pero tiene muchas características interesantes.

Adelante (lenguaje de programación)

Tanto para el diseño del sistema (nivel de kernel) como para los componentes integrados (microcontroladores) debe estar en “contacto” con el hardware, lo que finalmente conduce a C, C ++ y ensamblaje.

More Interesting

¿Por qué te convertiste en ingeniero de software?

Mi nuevo jefe amenaza con despedir a cualquiera que no use el IDE que ella usa. ¿Cómo debería lograr que nos deje usar el IDE que queramos?

¿Pueden los ingenieros de software tener un cuerpo sano dado que trabajan en una silla la mayor parte del día?

¿Cuáles son los principales sitios a los que cada programador debería suscribirse?

¿Cuáles son las oportunidades para el ingeniero de software integrado en Copenhague, Dinamarca?

Ingenieros de software: ¿con qué frecuencia codifica en el trabajo?

¿Qué tiene que hacer un ingeniero de software en su trabajo?

¿Los desarrolladores de software alguna vez tienen problemas de "pizarra" por el simple hecho de usar la pizarra?

¿Por qué un ingeniero de software elegiría ser un consultor independiente para la empresa en lugar de un FTE?

Cómo convertirse en un arquitecto de software con un título no CS

¿Los ingenieros de software felices realmente disfrutan de la programación? Soy estudiante de CS en una universidad estadounidense de élite. No me gusta programar. Si logro convertirme en ingeniero de software, estaré programando 8 horas al día (en promedio). ¿Estoy condenado?

¿Qué tan profundo es Java?

Siento que soy el único ingeniero de software en el planeta que no tiene interés en el aprendizaje automático o la inteligencia artificial. ¿Mi carrera está condenada? ¿Qué tengo que hacer?

¿Cuál es el día típico de un ingeniero mecánico?

¿Cómo es trabajar como ingeniero de software en Morgan Stanley - División de tecnología en Mumbai?