2010-07-25 28 views
39

Creo que el título se explica por sí mismo.¿En qué idioma está escrito el lenguaje de programación Go?

+14

¿Quiere decir, "en qué idioma está escrito el compilador de Google para el lenguaje de programación Go?" Los idiomas no están escritos en idiomas. Implementaciones son –

+6

Sí, me disculpo por la vaguedad, pero creo que sabemos la respuesta a eso por la respuesta aceptada que aclara todo lo que está diciendo de todos modos. – digiarnie

+2

En lugar de ser autoexplicativo, el título es conceptualmente confuso. –

Respuesta

102

Los lenguajes de programación no son programas, por lo tanto, no están "escritos" en ningún idioma. A menudo se describen mediante gramáticas formales (por ejemplo, BNF).

Intérpretes y compiladores para lenguajes de programación son programas y así debe ser escrito en algún tipo de lenguaje de programación.

Go tiene al menos dos compiladores, gc y gccgo. El primero fue escrito en C, pero ahora está escrito en Go. Mientras que el último es un frontend gcc escrito principalmente en C++. Las bibliotecas de Go están escritas en Ir.

+1

¿Van a sacar un compilador escrito en ensamblaje? Sé que C está cerca del ensamblaje, pero desde el punto de vista del rendimiento, ¿no sería el mejor escribirlo en ensamblaje desde cero? – Cocksure

+5

@Cocksure El rendimiento adicional no valdría la pena en cuanto a la capacidad de mantenimiento. Y de todos modos, lo único que aceleraría es el tiempo de compilación. – litelite

87

Look at the source and C for yourself, si se me permite decirlo.


EDITAR El equipo de Go anunciado en diciembre de 2013, que they will be transitioning the compiler to Go. A partir de febrero de 2015, el compilador es exclusivamente de autohospedaje, ya que la implementación C fue deleted. El nuevo compilador se envió por primera vez con Go 1.5.

+21

+1 o -1 para el gruñidor? –

+9

+1 para el gruñidor. Sin dudarlo. –

+0

cómo alguien puede escribir ir en go – shortCircuit

8

Está escrito en C. Las bibliotecas están escritas en Go.

Editar: Ahora el compilador se ha reescrito en Ir, por lo que es completamente autohospedado.

+0

Realmente esperaba que se escribiera en Ir, después siendo compilado la primera vez. – cregox

+1

@Cawas compilado la primera vez por qué? Antes de que pueda compilar cualquier programa escrito en X, incluido un compilador para X, debe tener un compilador para X escrito en otro idioma. En este caso, ese lenguaje era C. Dado un compilador para Go escrito en C, ¿por qué escribir otro en Ir, especialmente cuando ese compilador tendría que ser modificado cuando se cambia el idioma? Go sigue siendo un lenguaje experimental, inestable e incompleto, no es bueno para un lenguaje para escribir compiladores. –

+0

@Jim ¿a qué te refieres con qué? ¡Es todo lo que dijiste! Me acabas de responder tu propia pregunta. Pero no sabía que Go era un niño. Nunca lo usé y simplemente soy un entusiasta de cualquier cosa de google. – cregox

Cuestiones relacionadas