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?
Respuesta
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.
B (el predecesor de C) utilizado main - ver http://cm.bell-labs.com/cm/cs/who/dmr/btut.html – KevinDTimm
@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
@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
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í.
¿Cómo alguien puede haber votado esta respuesta? – KevinDTimm
bien puede ser la respuesta correcta. :) – EMP
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.)
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.
- 1. Evitar el principal (punto de entrada) en un programa C
- 2. $ 0 (Nombre del programa) en Java? Descubre la clase principal?
- 3. El programa no contiene un método estático "Principal" adecuado para un punto de entrada
- 4. UPN - Nombre principal del usuario
- 5. ¿Punto en el nombre del archivo?
- 6. Obtener el nombre del programa Java
- 7. tamaño máximo para el nombre del campo de entrada?
- 8. Eclipse cdt/gdb punto de interrupción automático en la entrada del programa - ¿cómo deshabilitar?
- 9. Obtener el nombre del archivo de entrada en el programa hadoop de transmisión
- 10. Nombre del elemento de entrada del formulario en ASP .NET
- 11. ¿Cómo se usa el punto en el nombre del campo?
- 12. Cómo obtener el nombre del archivo de entrada en MRjob
- 13. Obtener el nombre del elemento principal en XPath
- 14. Punto principal en Android: ¿el nombre realmente es obligatorio?
- 15. Acerca del punto de entrada de PE en Windows
- 16. leyendo el nombre del archivo de la entrada del usuario en el ensamblado MIPS
- 17. ¿Por qué el punto de entrada del método principal en la mayoría de los programas C# estático?
- 18. Odd 'Nombre del programa' al instalar el instalador msi firmado
- 19. Error CS5001: exe no contiene un método estático `Principal 'adecuado para un punto de entrada
- 20. Cómo usar el nombre del campo HTML en javascript si el nombre del campo contiene un "." (punto)?
- 21. Problemas para comprobar la entrada del nombre de usuario contra el archivo plano para la creación del usuario
- 22. Obtener el encabezado ELF del ejecutable principal
- 23. Obtener entrada del usuario
- 24. No se pudo encontrar 'WindowsFormsApplication1.Program' especificado para el método principal después de cambiar el nombre del espacio de nombre
- 25. eliminando 'Nombre del programa' en los metadatos de las imágenes
- 26. cambiar el nombre del proyecto y el nombre del paquete
- 27. ¿Cómo depurar el punto de entrada del proceso fork-exec en GDB?
- 28. Establecer el punto de observación del hardware GDB/cómo configurar el punto de observación del software
- 29. obtener el nombre de la aplicación del nombre del paquete
- 30. Obteniendo el nombre principal de un URI/URL del nombre absoluto C#
Bastante auto explicativo. ¿Cuáles son los orígenes de "GoTo" o "Return"? Nada, solo hacen lo que dicen. – NibblyPig
@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. –
@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