2010-04-21 18 views
5

Por curiosidad, ¿cuáles son los orígenes del nombre 'principal' para un punto de entrada al programa?¿Orígenes del nombre 'principal' para el punto de entrada del programa?

+1

Bastante auto explicativo. ¿Cuáles son los orígenes de "GoTo" o "Return"? Nada, solo hacen lo que dicen. – NibblyPig

+0

@SLC - Estoy de acuerdo en que 'main' es una buena etiqueta para el punto de entrada de un programa, pero eso no explica sus orígenes. –

+0

@SLC: No estoy de acuerdo. Return es un verbo que realmente no tiene alternativas (¿rendimiento quizás?). Goto es en mi humilde opinión un sorprendente descanso con el tradicional "Jump". Main es uno de los muchos posibles nombres que podrían haber sido elegidos. – Uri

Respuesta

0

Mi comprensión (aunque no pude encontrar una referencia para confirmar) es que algunas lenguas antiguas tenían una noción de un procedimiento principal (la primera podría haber sido Ada), aunque no tuvieras que nombrarla principal ()

Creo que C fue el primer idioma que usó este token como nombre. C reemplazó en gran medida a Pascal, que no tenía un procedimiento de inicio con nombre, si no recuerdo mal.

A partir de ahí influyó en los lenguajes posteriores inspirados en C como C++, Java y C#.

También influyó culturalmente en los idiomas que no requieren tal función, como Python.

+1

B (el predecesor de C) utilizado main - ver http://cm.bell-labs.com/cm/cs/who/dmr/btut.html – KevinDTimm

+0

@KevinDTimm: Ese es un buen punto. Aunque tengo entendido (es probable que esté equivocado) que se trata más bien de un prototipo interno de la empresa hasta el – Uri

+0

@Uri, no es un prototipo, en realidad bastante usado durante bastante tiempo. B vino de BCPL (que no contenía main). Fue Ken Thompson quitando todo de BCPL que creó B, que luego finalmente se transformó en C (el linaje de B a C es mucho más evidente que BPCL a B) – KevinDTimm

1

Estoy bastante seguro de que tiene que ver con el hecho de que es la función 'principal' del programa. Algo más que eso es desconocido para mí.

+1

¿Cómo alguien puede haber votado esta respuesta? – KevinDTimm

+1

bien puede ser la respuesta correcta. :) – EMP

3

Antes de C, estaba el PL/I de IBM. En PL/I, usted declaró un procedimiento con opciones. Si usted escribió

PROC MUMBLE OPTIONS(MAIN); 

que decirle al compilador que el procedimiento MUMBLE fue el procedimiento principal. PL/I puede haber adoptado esta convención de otra parte, o C puede haberla adoptado de PL/I, o tal vez solo estuvo en el aire. Pero definitivamente es anterior a C.

(Si alguien se pregunta por qué todas las mayúsculas, las tajadas de IBM del día no admiten caracteres en minúsculas. Sí, escribí programas en tarjetas perforadas. Probablemente sea por eso que soy un bit shaky en la sintaxis, ha sido un tiempo.)

1

En Fortran el programa principal era el programa principal aunque no tenía un nombre. Se distinguió de las subrutinas y las funciones al tener una instrucción ejecutable (u otra instrucción que no sea un comentario) sin una instrucción SUBROUTINE o FUNCTION precedente.

Cuando los idiomas posteriores decidieron que querían que la rutina principal comenzara con una línea inicial como otros procedimientos o funciones, algunos adoptaron la palabra PRINCIPAL o principal de varias maneras.

Como alguien más señaló, Pascal lo hizo de manera diferente. Los scripts de Shell y Perl se parecen a Fortran.

Cuestiones relacionadas