Los compiladores juegan un papel importante en el desarrollo de software y sistemas modernos. Son programas de computadora que transforman los códigos fuente en ejecutables binarios. Cuando escribe un programa usando un lenguaje de alto nivel como C o Pascal, necesita que el compilador interprete su código y lo convierta en un binario legible por máquina. Por lo general, los IDE de Linux modernos se encargan de esto utilizando interfaces compiladas integradas.
Por otro lado, muchos programadores de sistemas como yo, escriben su código usando un editor simple y compilan el programa usando los compiladores de Linux apropiados. Dado que Linux ofrece una gran cantidad de compiladores convincentes, hemos seleccionado esta guía para ayudarlo a elegir el mejor para sus necesidades.
Los compiladores se utilizan para convertir programas escritos en lenguaje compilado en ejecutables. Los lenguajes interpretados como Python y Perl no requieren que compilemos el código ya que los programas escritos en estos lenguajes se ejecutan dentro de un tiempo de ejecución independiente. Sin embargo, los lenguajes compilados ofrecen un rendimiento excepcional, y por lo tanto, se utilizan para crear aplicaciones avanzadas como sus distribuciones de Linux favoritas .
Contenidos
1. GCC
GNU Compiler Collection o GCC es, sin ninguna duda, el compilador más poderoso. Es una piedra angular de la plataforma GNU de código abierto y se ha utilizado para construir casi todas las máquinas modernas de una forma u otra. GCC ofrece un conjunto de compiladores para lenguajes compilados estándar, incluidos C, C ++, Objective C, Ada, Pascal, Fortran y muchos más.
La mayoría de las distribuciones de Linux deberían tener GCC instalado por defecto. Es compatible tanto con ANSI C como con la variante K&R. Si eres un programador principiante, quédate con GCC.
Características:
•GCC es conocido por su portabilidad y puede producir ejecutables para una amplia gama de plataformas, incluida la mayoría de los dispositivos integrados basados en ARM.
•Implementa técnicas robustas de optimización del tiempo de enlace para acelerar el binario de salida en un factor significativo.
•Es extremadamente extensible y permite a los desarrolladores usar complementos personalizados para agregar nuevas funcionalidades según lo requiera el proyecto.
•Está escrito usando C ++ y proporciona soporte para una enumeración rápida, métodos de protocolo, compilación cruzada, extensiones de clase, etc.
2. AOCC
El compilador AOCC o AMD Optimizing C / C ++ es un compilador de optimización gratuito pero convincente para plataformas AMD Linux de 32 bits y 64 bits. Es un compilador especializado que permite a los desarrolladores utilizar el máximo rendimiento de sus últimas CPU.
Este es uno de los mejores de Linux para desarrolladores de juegos debido a su amplia gama de capacidades de optimización. Además, AOCC es un proyecto de código abierto. Por lo tanto, los desarrolladores pueden ver la fuente para una mejor comprensión del funcionamiento subyacente.
Características:
•El compilador AMD Optimizing C / C ++ está específicamente ajustado para la familia de procesadores AMD 17h y proporciona una mejor optimización para la serie AMD EPYC 7xx2.
•Está escrito usando el lenguaje Fortran y está probado en Ubuntu 18.04, Ubuntu 19.04 y Red Hat Enterprise Linux.
•Proporciona instalaciones binarias para sistemas basados en Debian y RPM y también permite la instalación desde la fuente.
•Este es el mejor compilador de optimización para usuarios de Linux que poseen microprocesadores modernos basados en AMD Ryzen.
3. Intel C++ Compiler
Es un compilador patentado extremadamente potente que se ejecuta sin problemas en Linux y otras máquinas basadas en Unix. Es esencialmente un conjunto de compiladores con la capacidad de producir ejecutables de alto rendimiento utilizando técnicas avanzadas y optimizaciones de hardware. También conocido como icc, está dirigido a profesionales que trabajan en informática de alta disponibilidad y desarrollo de juegos. Los desarrolladores pueden escribir rápidamente código que aprovecha los núcleos adicionales disponibles en entornos Linux basados en Intel.
Características:
•Se puede integrar fácilmente con IDEs tradicionales, incluidos Eclipse, Visual Studio , Xcode y Android Studio.
•Los desarrolladores pueden optimizar en gran medida los programas escritos para varias familias de Intel como Intel Core, Atom y microprocesadores basados en Xeon.
•Proporciona un soporte excepcional para la paralelización SIMD con herramientas como la biblioteca de plantillas de diseño de datos SIMD.
•Admite modelos de programación OpenMP, mejoras lambda, aplicaciones integradas y el Intel® VTune ™ Profiler.
4. LLVM
La máquina virtual de bajo nivel o LLVM es una colección de tecnologías de compilación que ofrece bibliotecas y herramientas potentes para crear compiladores y optimizadores. Es un proyecto sofisticado que ha sido utilizado por muchos compiladores modernos, como el compilador AMD Optimizing C / C ++.
El principio de diseño simple de LLVM hace que sea fácil de entender para los principiantes al tiempo que proporciona las herramientas necesarias para crear herramientas de desarrollo avanzadas. Además, LLVM ofrece un excelente soporte para una amplia gama de arquitectura, incluyendo X86, X86-64, ARM, MIPS y PowerPC.
Características:
•Proporciona representaciones de código en línea y fuera de línea muy estables junto con lectores y escritores para ensamblar y bytecode.
•El proyecto LLVM Clang permite interfaces interesantes para C, C ++, Fortran y Objective C en función de los analizadores GCC 4.2.
•LLVM ofrece poderosas compilaciones Just in Time (JIT) junto con un back-end basado en C para construir códigos nativos específicos de destino.
•También ofrece un sistema de perfiles sobresaliente para la optimización, el marco de prueba, el modelo de compilación de por vida y las sólidas herramientas de depuración para Linux.
5. Netwide Assembler
Netwide Assembler o NASM es un ensamblador y desensamblador extremadamente potente para máquinas Intel x86. Se ejecuta en todas las principales distribuciones de Linux , así como en Windows y Mac OS.
NASM es ampliamente considerado como el mejor ensamblador de Linux debido a su rico conjunto de características y facilidad de uso. Se mantiene activamente y se usa en muchas áreas. Si está buscando el mejor ensamblador para su sistema Linux x86, le sugerimos que elija NASM.
Características:
•Se puede usar para ensamblar salidas en varios formatos, como ELF, Mach-O, a.out, COFF, OMF y otros archivos binarios.
•La licencia gratuita y de código abierto BSD de 2 cláusulas de este ensamblador hace que NASM sea extremadamente fácil de modificar o personalizar.
•NASM se puede utilizar para reorientar programas a casi cualquier sistema x86 debido a su amplia gama de formatos de salida.
•Puede generar anulaciones automáticas de segmentos, crear binarios planos, escribir imágenes de ROM y cargadores de arranque de Linux .
6. GFortran
GFortran o GNU Fortran es un frontend compilador completo de Fortran basado en GCC. Es un proyecto de software libre que ofrece una gran cantidad de funcionalidades robustas, que incluyen excelentes funciones de depuración y soporte para bases de código heredadas. GFortran es compatible con Fortran 95 y también ofrece la mayoría de las características de Fortran 2003 y Fortran 2008.
Además, la naturaleza de código abierto de este proyecto alienta a los desarrolladores a extender el código del compilador ellos mismos. Así que eche un vistazo a GFortran si está trabajando con Fortran para proyectos personales o para mantener productos empresariales heredados.
Características:
•GFortran está desarrollado para reemplazar el compilador histórico g77 Fortran y asegura una compilación exitosa de todo el código g77 heredado.
•Es conocido por su velocidad de compilación razonable y la capacidad de compilar códigos desarrollados para una máquina diferente.
•GFortran proporciona una precisión de compilación perfecta y mantiene un práctico sistema de tickets de Linux para corregir o delinear errores.
•Este compilador de Fortran está muy bien mantenido y despliega características más nuevas, así como correcciones de errores con bastante frecuencia.
7. GHC
GHC o el Glasgow Haskell Compiler es un compilador de código nativo gratuito pero potente para el lenguaje de programación Haskell. Está disponible en todas las máquinas X86, X86-64 y basadas en ARM y es compatible con Linux junto con los sistemas Unix tradicionales.
Haskell es un lenguaje de programación funcional convincente que está ganando un gran impulso debido a su conjunto de características avanzadas. GHC es uno de los mejores compiladores de Linux para programadores de Haskell y ofrece todo lo necesario para construir proyectos industriales y de investigación modernos.
Características:
•GHC implementa un sistema multiplataforma que permite a los desarrolladores escribir y probar programas Haskell de una manera formidable.
•Admite una lista masiva de bibliotecas, extensiones y técnicas de optimización para acelerar aplicaciones a gran escala.
•Puede generar códigos más rápidos para programas concurrentes y es compatible con varias técnicas de paralelización, como la memoria transaccional de software (STM) .
•Es muy portátil y puede usarse para generar código C como objetivo intermedio para una plataforma diferente.
8. Tiny C Compiler
Es un compilador C pequeño pero extremadamente eficiente desarrollado por Fabrice Bellard. Está construido para hardware antiguo con varias limitaciones de recursos. Tiny C Compiler está escrito usando una combinación de C y ensamblaje, lo que reduce la huella de memoria general del compilador y lo convierte en una opción ideal para plataformas pequeñas e integradas.
Es multiplataforma que se ejecuta sin problemas en los sistemas operativos Linux, BSD y Windows. Sugerimos este compilador a los desarrolladores que trabajan en proyectos que tienen recursos de CPU limitados.
Características:
•Admite todas las características de ANSI C (C89 / C90), así como la mayoría del estándar ISO C99 junto con las extensiones tradicionales de GNU.
•Es muy liviano con alrededor de 100 KB y se puede ejecutar dentro de sistemas que tienen tan solo 1,44 MB de espacio libre en memoria.
•El conveniente conmutador de línea de comandos permite a los desarrolladores ejecutar programas automáticamente en tiempo de compilación y dentro de los scripts de shell de Linux.
•Se puede ejecutar en X86, X86-64 y dispositivos basados en ARM y se compila casi nueve veces más rápido que GCC.
9. Free Pascal Compiler
El compilador Free Pascal o FPC es simple y eficiente para Pascal y Object Pascal. Es compatible con todos los principales sistemas operativos, así como con máquinas de 16, 32 y 64 bits. FPC es un software de código abierto para que los desarrolladores puedan ver la fuente y realizar modificaciones sin ningún problema.
Ayuda a los programadores a escribir códigos más optimizados y reducir el tiempo de ejecución de las aplicaciones antiguas heredadas. Además, Free Pascal Compiler es uno de los mejores compiladores de Linux para programar emuladores de juegos retro como Nintendo NDS y Game Boy Advance.
Características:
•Adopta un enfoque de «escribir una vez, compilar en cualquier lugar», que permite a los desarrolladores escribir códigos más flexibles.
•El entorno de desarrollo integrado (IDE) de Lazarus proporciona una excelente interfaz gráfica para este compilador Pascal.
•Puede generar con éxito códigos de bits LLVM para varias plataformas, incluidas x86-64, AArch64 y ARMHF.
•El sitio web oficial proporciona una excelente documentación para ayudar a los principiantes a comenzar con Free Pascal Compiler.
10. Babel
Babel es un compilador convincente y moderno para JavaScript. Es rico en funciones que se utiliza para transpilar el código ECMAScript 2015+ en una versión anterior de JavaScript pero compatible con versiones anteriores. Esto a menudo es necesario para agregar nuevas funciones a una aplicación JavaScript existente.
Esto asegura que su nuevo código también se ejecute efectivamente en tiempos de ejecución más antiguos. Babel puede transformar el código fuente y la sintaxis, las funciones faltantes de polyfill, incluso convertir la sintaxis JSX. Además, es un proyecto de código abierto. Para que los desarrolladores puedan obtener fácilmente la fuente y extenderla según sea necesario.
Características:
•Babel se desarrolla utilizando un diseño modular basado en complementos, que hace que la personalización sea extremadamente fácil para los desarrolladores de JavaScript.
•El conveniente soporte del mapa fuente de este transpilador facilita la depuración de errores en programas compilados.
•Viene con un tiempo de ejecución de regenerador personalizado para producir códigos de polyfill para incluir características faltantes.
•Ofrece una excelente documentación en profundidad que presenta a los desarrolladores sus características y uso principales.
11. Clang
Clang es otra interfaz de compilación poderosa para lenguajes de programación estilo C. También es compatible con los marcos OpenMP, OpenCL, RenderScript y NVIDIA CUDA. Clang se desarrolla utilizando LLVM como back-end y proporciona numerosas infraestructuras de herramientas que garantizan programas de calidad empresarial.
Ha visto un fuerte aumento de popularidad debido a su base de código simple pero pirateable, que hace que la personalización sea mucho más fácil. Además, Clang ofrece diagnósticos excepcionales junto con una integración perfecta con modernos editores de código de Linux como Atom y Sublime Text.
Características:
•Clang es conocido por su rápido tiempo de compilación y su rendimiento superior en comparación con los compiladores tradicionales de Linux.
•La arquitectura modular basada en complementos de este proyecto hace que Clang sea extremadamente personalizable y requiere recursos de CPU limitados.
•Viene con una licencia LLVM-BSD que es compatible con los productos empresariales y al mismo tiempo proporciona la fuente libremente.
•La huella de memoria ligera de Clang lo convierte en una opción perfecta para crear programas en máquinas con recursos limitados.
12. Intel Fortran Compiler
El compilador Intel Fortran o simplemente IFORT es una familia de compiladores Fortran extremadamente potentes para hardware Intel. Viene con muchos conjuntos de características lucrativas que hacen que la optimización del programa sea muy fácil.
La mayoría de estos compiladores de Fortran pueden preprocesar, compilar, ensamblar y vincular aplicaciones de Fortran de manera muy efectiva en los sistemas IA-32 e Intel 64. No importa si usted es un investigador o un desarrollador que mantiene una base de código heredada, IFORT es uno de los mejores compiladores de Linux que puede obtener.
Características:
•Es multiplataforma de Fortran y ofrece una excelente integración con IDE de Unix tradicionales como Eclipse y Xcode.
•Está diseñado para aprovechar las características de la arquitectura multinúcleo, como la vectorización SIMD, el paralelismo automático y los arreglos conjuntos.
•El compilador compatible de esta suite admite todas las características de Fortran 66, 77, 90, 95, 2003 y 2008 junto con muchas funcionalidades de 2018.
•La mayoría de estos compiladores de Fortran pueden funcionar con API de Windows, POSIX, OpenGL, Modelo de objetos componentes (COM) y GDB.
13. FreeBASIC
BASIC fue un lenguaje popular de su tiempo conocido por su facilidad de uso. Muchas aplicaciones heredadas aún utilizan este lenguaje de programación de paradigmas múltiples. FreeBASIC es un compilador simple pero rico en funciones para los lenguajes de programación BASIC y QBasic.
Es un proyecto de código abierto que viene bajo la licencia GNU GPL y es compatible con todas las plataformas principales de Unix, incluidas Linux y FreeBSD. También se usa para desarrollar programas para las plataformas MS-DOS y Xbox. Sin embargo, el soporte oficial para Xbox ha quedado en desuso.
Características:
•Este compilador BASIC de 32 bits también proporciona el ensamblador, enlazador, archivador necesario y utiliza la cadena de herramientas GNU Binutils como back-end.
•Tiene alojamiento propio y proporciona muchas bibliotecas populares como SDL, OpenGL, GTK y la biblioteca estándar C.
•Los desarrolladores pueden crear rápidamente programas gráficos utilizando DirectX en Windows u OpenGL en máquinas basadas en Linux.
•Ofrece una interfaz de solo comando por defecto, pero se puede usar desde IDE de Linux tradicionales como.
14. Scala Native
Scala Native es simple pero extremadamente efectivo para el lenguaje de programación funcional Scala. Es un compilador AoT (Ahead-of-Time-Time) que puede optimizar su código en gran medida. Es bastante moderno que tiene soporte incorporado para abstracciones de nivel superior, verificación de tipos y estructuras de datos inmutables.
Esto lo convierte en un compilador muy seguro para desarrollar soluciones de software modernas a gusto. En lugar de proporcionar bibliotecas nativas de Java o Scala, Scala Native implementa su implementación personalizada de JDK.
Características:
•Scala Native ofrece una excelente compatibilidad inmediata para los IDEs de Scala existentes y una integración perfecta con herramientas de compilación estándar.
•Utiliza el backend LLVM para generar representaciones intermedias, lo que aumenta el rendimiento en función de las máquinas.
•Está construido como una infraestructura de publicación cruzada contra JVM (Java Virtual Machine), JavaScript runtime y plataformas nativas.
•La naturaleza de código abierto de este compilador permite a los desarrolladores ampliar el software o realizar modificaciones esenciales según lo requieran.
15. CodeChef Online IDE
Proporciona una forma práctica de probar programas sin instalar compiladores específicos del idioma. CodeChef es un sitio web popular que alberga concursos de programación competitivos y ofrece una atractiva suite de compilación en línea.
Hace que sea muy fácil probar tecnologías más nuevas desde la comodidad de su máquina doméstica, sin siquiera instalar lo mínimo. CodeChef se carga bastante rápido y ofrece una experiencia gráfica perfecta para los usuarios de Linux. Por lo tanto, le recomendamos que consulte más si desea probar nuevos lenguajes de programación.
Características:
•Admite muchos tiempos de ejecución y compiladores diferentes, incluidos GCC, GHC, Rust, Scala, GFortran, Bash, etc.
•Los desarrolladores pueden cargar códigos de programas existentes muy fácilmente usando la característica intuitiva de carga de archivos de este compilador en línea de Linux.
•La mayoría de los compiladores de esta suite en línea proporcionan códigos esquemáticos para ahorrar tiempo a los desarrolladores y ayudar a los nuevos usuarios.
•Los usuarios pueden configurar la experiencia gráfica que están viendo cambiando las fuentes, pestañas, temas y envolturas suaves.
16. Steel Bank Common Lisp
Steel Bank Common Lisp o SBCL es un compilador de Linux de alto rendimiento para el lenguaje ANSI Common Lisp. Es excepcional con características para depuración, optimización, creación de perfiles y muchos más. Si usted es un desarrollador de Lisp que trabaja con aplicaciones empresariales de uso intensivo de recursos, SBCL es sin duda una opción factible para usted.
Este compilador de Lisp está disponible en todas las plataformas principales que admiten Linux, como x86, AMD64 y máquinas basadas en ARM. Los usuarios de PC también pueden ejecutar este compilador en la mayoría de los sistemas BSD.
Características:
•SBCL proporciona el tiempo de ejecución y el compilador para el dialecto ANSI Common Lisp y es una bifurcación directa de la Carnegie Mellon University Common Lisp.
•Es un proyecto completamente de código abierto con una licencia permisiva que permite una mayor modificación del compilador sin problemas.
•Ofrece excelentes funciones de depuración, que hacen que sea fácil rastrear errores en su código y optimizar programas.
•La documentación oficial proporciona un conocimiento profundo de este compilador Lisp y las funcionalidades disponibles.
17. Portable C Compiler
PCC o Portable C Compiler es un compilador de C de la vieja escuela para sistemas operativos tipo Unix. Fue desarrollado en los Laboratorios Bell y tenía como objetivo resolver problemas comunes de portabilidad presentes en muchos compiladores de Linux de esa generación.
El PCC puede considerarse como una versión extendida del compilador Kernighan y Ritchie C. Portable C Compiler es conocido por su velocidad increíblemente rápida, que es aproximadamente 5-10 veces más rápida que GCC. Puede probar este compilador si está trabajando en programas heredados.
Características:
•PCC es un compilador de C simple pero liviano para Linux que se ejecuta efectivamente en hardware antiguo y heredado.
•Proporciona un excelente soporte para Minix, macroexpansiones recursivas, instrucciones MIPS optimizadas, etc.
•La licencia BSD de código abierto que ofrece este compilador de C es atractiva tanto para los entusiastas del código abierto como para las empresas.
•PCC es una alternativa viable a GCC para varias distribuciones de BSD como OpenBSD, NetBSD, FreeBSD y DragonFly.
18. CHICKEN
CHICKEN es un compilador de Linux moderno para el lenguaje de programación Scheme. Es esencialmente un compilador e intérprete que implementa muchas características útiles de los programadores de Scheme. CHICKEN puede convertir la fuente de Scheme a código C de manera muy efectiva y es extremadamente portátil.
Es un compilador de esquemas bastante liviano que cumple totalmente con el R5RS y cumple parcialmente con el estándar R7RS. Si está buscando un compilador de esquemas simple con una gran cantidad de características estándar, le recomendamos que pruebe CHICKEN.
Características:
•CHICKEN puede producir código C portátil y eficiente para varias plataformas y se ejecuta en Linux, BSD, OS X y Windows.
•Es bastante ligero debido a sus dependencias limitadas y solo requiere la marca GNU y una cadena de herramientas C.
•Los desarrolladores pueden crear sus propias extensiones o elegir entre una amplia selección de bibliotecas y extensiones listas para usar.
•Viene con una licencia BSD poderosa que permite la modificación sin restricciones del compilador.
19. Small Device C Compiler
Small Device C Compiler es un práctico programa compilador de Linux que permite a los desarrolladores crear programas para microcontroladores de 8 bits. Contiene un simulador, ensamblador, enlazador y depurador para facilitar el desarrollo. Este es, sin duda, uno de los mejores compiladores de Linux para microcontroladores compatibles con Intel 8051.
Ya es compatible con un conjunto robusto de arquitecturas de microcontroladores y está adaptando hardware más nuevo con bastante frecuencia. Entonces, si está buscando un compilador simple pero efectivo para sus proyectos integrados, esta puede ser una solución ideal.
Características:
•Admite hosts Linux, Mac OS y Windows y se puede utilizar para apuntar a derivados de dispositivos Intel MCS51, Freescale, Padauk y STMicroelectronics STM8.
•Small Device C Compiler proporciona soporte integrado para una amplia selección de pruebas de regresión automatizadas y funciones de monitoreo.
•El backend específico de MCU adaptable permite una mayor optimización de su código en función del dispositivo de destino.
•Está muy bien mantenido y ofrece una excelente documentación para iniciar programadores de microcontroladores.
20. javac
javac es el compilador de facto para el lenguaje de programación Java y es un componente central del Kit de desarrollo Java estándar (JDK) . Acepta programas que se adhieren a la especificación del lenguaje Java (JLS) y produce códigos de bytes usando la especificación de máquina virtual Java (JVMS). El compilador en sí está escrito usando Java y permite a los desarrolladores invocar esto desde sus aplicaciones. Esto se ha convertido en una herramienta ampliamente aceptada para los programadores de Java debido a su robusto conjunto de características y poderosos controles de línea de comandos.
Características:
•javac compila archivos fuente .java en códigos de bytes intermedios de Java, que se utilizan para generar código nativo dependiente de la máquina.
•Admite una amplia gama de opciones estándar y de compilación cruzada para ayudar a producir representaciones de bytecode más optimizadas.
•Se puede encontrar como una característica estándar en la mayoría de las herramientas de desarrollo de Java como Netbeans IDE e IntelliJ IDEA.
•Los desarrolladores pueden adaptarse rápidamente a los compiladores de Java utilizando documentación oficial de alta calidad.
21. Online GDB
Online GDB es un increíble compilador de Linux para una amplia gama de lenguajes de programación. También funciona como un depurador en línea y permite a los desarrolladores escribir código optimizado. Es útil cuando estás en un sistema diferente o simplemente no quieres instalar herramientas de desarrollo por alguna razón.
Puede escribir fácilmente buenos programas utilizando Online GDB y ejecutar programas en modo interactivo y de consola. Así que definitivamente revisa este compilador si buscas IDEs online.
Características:
•Los desarrolladores pueden escribir códigos, compilarlos, ejecutar y depurar programas, así como compartir la fuente con sus amigos o colegas.
•Permite a los usuarios proporcionar cualquier argumento de línea de comandos para su programa utilizando un formulario interactivo y admite la consola interactiva.
•Online GDB ahora admite muchos lenguajes de programación populares como C, C ++, PHP, Python, Perl, Java, C #, Fortran, Haskell, Assembly, etc.
•Permite a los programadores cargar el código existente usando su función de carga de archivos y también descargar cualquier código escrito por ellos.
22. FASM
FASM o Flat Assembler es un ensamblador de Linux de la vieja escuela que sigue siendo relevante debido a su sólido conjunto de características y su rápido rendimiento. Este ensamblador está dirigido a microprocesadores basados en X86 y puede manejar muy bien el lenguaje ensamblador de estilo Intel en la plataforma X86-64.
A los desarrolladores les gusta FASM debido a su diseño simple pero a su tremendo poder. Les permite obtener optimizaciones de tamaño extremo sin aumentar el tiempo de ejecución. Si está trabajando con programas de ensamblaje heredados que requieren más optimizaciones, pruebe este.
Características:
•Es un ensamblador de múltiples pasadas que proporciona amplias optimizaciones de tamaño y referencias directas ilimitadas.
•Dado que el FASM en sí está escrito usando ensamblaje, puede usar esta herramienta para iniciar o realizar ingeniería inversa.
•FASM permite a los desarrolladores crear macros personalizadas para integrar múltiples instrucciones en una sola instrucción más grande.
•Se ejecuta en sistemas Linux, BSD y DOS y admite extensiones SIMD tradicionales como MMX, AVX y SSE.
23. Bigloo Compiler
Bigloo es un esquema de tiempo de ejecución que contiene un compilador competitivo de Linux para el esquema de lenguaje de programación. Es una familia de dialectos Lisp que son de uso común hoy en día. El compilador Bigloo puede generar código C y bytecodes para JVM y .NET.
Proporciona una interfaz C extendida que permite a los desarrolladores aprovechar las potentes bibliotecas C a gusto. Por otro lado, Bigloo se puede usar para señalar estructuras Java y proporciona una capa robusta orientada a objetos encima.
Características:
•Bigloo cumple con el estándar R5RS e implementa características como macros higiénicas, intérpretes de guiones y protectores dinámicos.
•La capa orientada a objetos de Bigloo permite a los desarrolladores acceder e implementar funciones de mutación en instancias que utilizan sus clases.
•Utiliza herramientas conocidas como lex y yacc para controlar la entrada / salida de sus programas de manera más práctica.
•Viene con soporte listo para bases de datos SQL y proporciona un enlace SQLite basado en C.
24. ispc
El Intel SPMD Program Compiler o ispc es uno de los mejores compiladores de Linux para la programación SPMD (Programa único de datos múltiples). Esta es una técnica avanzada para implementar el paralelismo en sus programas y hacer una mejor utilización de la cantidad adicional de núcleos presentes en los modernos conjuntos de chips Intel.
Los desarrolladores pueden escribir programas en C para SPMD y aprovechar ispc para producir binarios de alto rendimiento. También puede usar este compilador para optimizar programas sin esfuerzo. En general, ispc es una excelente solución para los programadores que manejan programas SPMD.
Características:
•Utiliza LLVM como back-end y puede ejecutarse en la mayoría de los sistemas en la plataforma x86 / x86-64.
•Viene con soporte preconstruido para los conjuntos de instrucciones AVX1, AVX2, AVX512, SSE2, SSE4 y Xeon Phi.
•La licencia BSD de código abierto de ispc alienta a los desarrolladores a ampliar o modificar el código fuente como mejor les parezca.
•Aumenta el rendimiento del programa al escalar los números centrales y el tamaño de las unidades vectoriales de manera efectiva.
25. JDoodle
JDoodle es otro excelente compilador de Linux en línea para usuarios domésticos. Ofrece soporte para una amplia gama de idiomas y bases de datos. JDoodle admite la programación entre pares, por lo que es una gran opción para los equipos que trabajan de forma remota.
Los programadores pueden escribir o compilar muy rápidamente su código y compartir sus programas con la comunidad. Además, esta aplicación en línea tiene una interfaz web intuitiva, lo que hace que sea fácil de usar y navegar. Por lo tanto, debe consultar JDoodle si está buscando un compilador en línea simple.
Características:
•JDoodle admite más de 70 lenguajes de programación diferentes, como C, C ++, Java, Python, Perl, Ruby, Haskell, Kotlin, JavaScript, etc.
•Los programadores pueden elegir entre varios compiladores y sus versiones, incluidos GCC 9.1.0, 8.1.0, 7.2.0, 5.3.0 y Zapcc 5.0.0.
•Es fácil descargar los códigos que escribe, y también puede incrustarlos en publicaciones de blog o compartirlos a través de un enlace simple y compartible.
•Los desarrolladores pueden integrar JDoodle a su proyecto utilizando las robustas API REST proporcionadas por este compilador en línea.
Dado que hay muchos compiladores potentes de Linux disponibles, a los desarrolladores a menudo les resulta difícil elegir el mejor para su proyecto. Hemos listado los 25 mejores compiladores de Linux fuera de línea y en línea aquí para ayudarlo a elegir la solución adecuada para sus tareas de desarrollo.
Deberá tener en cuenta muchas cosas, como la plataforma de destino de su programa, la disponibilidad de recursos, el nivel de optimización, etc. Algunas de las herramientas mencionadas en esta guía se utilizan universalmente para una amplia gama de trabajos de desarrollo. La colección de compiladores GNU junto con los compiladores LLVM, Clang y Babel son algunos de los más populares.