Sistemas & Desarrollo

encontrados: 14, tiempo total: 0.009 segundos rss2
1 meneos
8 clics

Nuevo enlazador de ELF en el proyecto LLVM [ENG]

Hemos estado trabajando duro durante varios meses para reescribir el soporte de ELF en lld, el enlazador (linker) LLVM. Estamos felices de anunciar que se ha alcanzado un hito importante: ahora es capaz de iniciar LLVM, Clang y a sí mismo y pasar todas las pruebas en x86-64 en Linux y en FreeBSD con la velocidad esperada de un proyecto LLVM.
2 meneos
16 clics

Zapcc: una modificación de Clang mucho más rápida [ENG]

Zapcc es una gran modificación de Clang (alrededor de 200 KB) con código adicional fuera de la base de LLVM. Zapcc opera siguiendo el modelo cliente-servidor. Mientras que el servidor está en memoria esperando por comandos, es el cliente el que se los envía en lugar de ejecutarlos él mismo. Además, Zapcc distingue entre archivos del sistema, donde la compilación es guardada en memoria, y archivos de usuario, donde su compilación es realizada en cada momento.
5 meneos
38 clics
Introducción para desarrollar componentes de LLVM en Go [ENG]

Introducción para desarrollar componentes de LLVM en Go [ENG]

LLVM es una infraestructura para crear compiladores. Fue creada por Chris Lattner en 2000 y lanzada en 2003. Desde entonces, ha evolucionado en un proyecto paraguas que alberga multitud de utilidades. La principal característica de LLVM es un IR, es decir, su lenguaje intermedio de representación de código. La idea es que puedas compilar cualquier lenguaje de programación en IR y este en cualquier código máquina o bytecode. En este tutorial veremos cómo empezar a hacer un frontend de LLVM desarrollado en Go.
15 meneos
308 clics
Guía completa de LLVM para creadores de lenguajes de programación [ENG]

Guía completa de LLVM para creadores de lenguajes de programación [ENG]  

Esta es una parte de una serie de publicaciones donde se crea una lenguaje de programación que soporta concurrencia y orientación a objetos llamado Bolt. En esta parte concretamente se habla de usar LLVM como backend de dicho lenguaje de programación para crear el código ejecutable a partir del lenguaje intermedio (IR) de LLVM proveniente del análisis sintáctico y semántico de fases previas.
13 2 0 K 43
13 2 0 K 43
9 meneos
233 clics

Explorando la implementación de ‘std::string’ [ENG]

Todo desarrollador de C++ sabe que std::string representa una secuencia de caracteres en memoria. Esta clase administra su propia memoria y su uso es muy intuitivo. Hoy exploraremos cómo define std::string el estándar de C++ y también observaremos cómo lo implementan los 4 compiladores principales (Visual Studio 14, GCC versión anterior a 5, GCC versión 5 o mayor y Clang [LLVM]).
3 meneos
71 clics

Cómo escribí un compilador de C que se compila a sí mismo en 40 días [ENG]

He escrito un compilador de C que se compila a sí mismo al que llamé 8cc. Y lo he escrito en 40 días. Esta entrada es un registro de todos los pasos que he dado para escribir el compilador. El código fuente y su historial están disponibles en GitHub.
6 meneos
48 clics

DMD, el compilador de referencia de D, ya está totalmente escrito en D [ENG]

DMD, el compilador de referencia del lenguaje de programación D, estaba escrito en C++ desde sus inicios. Pero una vez que el lenguaje se ha ido estabilizando, este compilador ha sido totalmente reescrito en el propio lenguaje, algo que se conoce como self-hosted compiler. [Enlace directo al pull request de GitHub: github.com/D-Programming-Language/dmd/pull/4923 ]
6 meneos
100 clics
Construyamos un intérprete simple de un lenguaje de programación (Parte 1) [ENG]

Construyamos un intérprete simple de un lenguaje de programación (Parte 1) [ENG]

Realmente no importa si eres novato o desarrollador de software con experiencia: si no sabes cómo funcionan los compiladores e intérpretes, no sabes cómo funcionan los ordenadores. Es así de simple. Así que, ¿sabes cómo los compiladores e intérpretes funcionan? Quiero decir, ¿estás 100 % seguro de que sabes cómo lo hacen? Pero no te preocupes. Si sigues esta serie y construyes un intérprete y un compilador conmigo, aprenderás cómo funcionan. Al menos eso espero.
6 meneos
91 clics

Cómo compilar el kernel de Linux, parte 1: teoría… mucha teoría [ENG]

Hoy vamos a empezar una serie de entradas acerca de cómo se compila el kernel de Linux para entender mejor cómo funciona un ordenador. Y empezaremos con teoría… con mucha teoría. En esta entrada veremos, para empezar, las tareas básicas de un kernel. Comencemos…
13 meneos
548 clics

La más obsoleta infraestructura que el dinero pudiera comprar [ENG].

Hoy se cumple el décimo aniversario del trabajo más extraño y posiblemente más triste que jamás haya tenido. El año fue 2005. Mi interés en escribir un sistema de gestión de contenido en Java para la empresa que compró nuestra startup, se había ido agotando, mientras que mi verdadera pasión era trabajar en compiladores y otra infraestructura de lenguaje de programación (principalmente SBCL). Un día descubrí un anuncio de trabajo para especialistas en compiladores, algo raro en aquel momento y lugar. Volé a la entrevista de trabajo, pero no hice las preguntas correctas e ignoré un par de señales de advertencia. Oops. Resultó ser una aventura en retrocomputing.
2 meneos
44 clics

Compiladores e intérpretes de ‘bytecode’ [ENG]

Aquí hay una entrada de blog sobre cómo escribir un pequeño compilador e intérprete de ‘bytecode’ en pequeños fragmentos, comenzando con las opciones más simples y aumentando el resto de la pila cuando necesitemos otros componentes.
3 meneos
36 clics

Compila y recorre las instrucciones en ensamblador de un programa con penguinTrace [ENG]

penguinTrace es una herramienta que nos permite escribir código y ver cómo se ejecutan las instrucciones que lo componen. El objetivo es ayudar a las personas a comprender cómo se ejecutan los programas y/o mejorar la comprensión del ensamblador. Al escribir programas en C, es posible hacer que el compilador genere el ensamblado generado o desensamblar un binario para ver las instrucciones. [Vía HackPlayers].
3 meneos
20 clics

Bjarne Stroustrup habla del 30º aniversario de Cfront, el primer compilador de C++ [ENG]  

Hace exactamente 30 años, Cfront 1.0 fue lanzado junto con la primera edición del libro The C++ Programming Language, escrito por el propio Bjarne Stroustrup. Hoy nos cuenta en una entrevista cómo fueron aquellos días.
6 meneos
80 clics
Construyamos un intérprete simple de un lenguaje de programación (Parte 2) [ENG]

Construyamos un intérprete simple de un lenguaje de programación (Parte 2) [ENG]

La lección aprendida del libro “The 5 Elements of Effective Thinking”, donde un virtuoso de la trompeta da una clase donde pide que se toquen notas complejas —sus alumnos lo hacen bien— y luego notas simples —donde sus alumnos no lo hacen tan bien—, aplicada al software es que para llegar a ser un profesional no sólo hay que conocer las herramientas más complejas, sino también los principios más simples que hacen funcionar dichas herramientas. Ahora, sigamos con el desarrollo de nuestro intérprete. [1ª parte: menea.me/1gqb8 ]

menéame