tipos - programas en lenguaje ensamblador explicados
¿Cuándo comenzó la gente a pensar que ''C es un ensamblador portátil''? (6)
De la Introducción a la primera edición de The C Programming Language :
C es un lenguaje relativamente "de bajo nivel". Esta caracterización no es peyorativa; simplemente significa que C trata con el mismo tipo de objetos que la mayoría de las computadoras, a saber, caracteres, números y direcciones.
[...]
Nuevamente, debido a que el lenguaje refleja las capacidades de las computadoras actuales, los programas en C tienden a ser lo suficientemente eficientes como para que no exista la obligación de escribir en lenguaje ensamblador.
[...]
Aunque C coincide con las capacidades de muchas computadoras, es independiente de la arquitectura de cualquier máquina en particular, y con un poco de cuidado es fácil escribir programas "portátiles" ...
Al menos la idea general de combinar la portabilidad con las capacidades generales del lenguaje ensamblador parece haber existido casi desde el principio.
Parece ser un ''concepto aceptado'' en la cultura popular de los lenguajes de programación que ''C es un ensamblador portátil''. He escuchado esto por primera vez hace al menos 15 años. Pero, ¿cuándo se convirtió realmente en parte de la cultura popular?
Nota: si no está de acuerdo en que ''C es un ensamblador portátil'', simplemente omita esta pregunta. Esta pregunta es sobre ''cultura popular de la programación''. Agregaré un comentario a esta pregunta que usted puede votar para aquellos que no estén de acuerdo con esa afirmación.
El concepto de C como "ensamblador portátil" se deriva del simple hecho de que la mayoría de los programadores de C de "cultura popular" son demasiado perezosos para aprender el idioma "duro" - académico - y en su lugar prefieren "aprender" de la práctica, en en su mayor parte asociando los comandos de idioma con el código de máquina subyacente implícito. La mayoría de estas asociaciones se basan en ideas erróneas bastante ridículas acerca del lenguaje, que aparecen más adelante aquí (y en otros foros) como preguntas similares a las siguientes: "Tengo 20 años de experiencia en programación en C, pero no entiendo por qué mi tipo - El pirateo ya no funciona ". Sin embargo, la mayoría de los tipos de "ensambladores portátiles" realmente se enorgullecen de su enfoque, considerando que todos los demás no son lo suficientemente competentes para ver el ensamblaje detrás del código C :)
En otras palabras, las únicas personas que ven a C como un ensamblador portátil son las personas que nunca se molestaron en aprender el idioma. De hecho, es sólo una cultura pop. C no es un ensamblador portátil, y no es realmente una cuestión de "estar de acuerdo" o "estar en desacuerdo" con él, sino más bien de saberlo como un hecho difícil. La "cultura popular de la programación" que parece estar mencionando tiene muy poca conexión con el mundo profesional de la programación en C.
En el momento en que comenzaron a extrapolar / malinterpretar definiciones de palabras :)
Lenguaje ensamblador: representación simbólica (también conocida como mnemotécnica) de los códigos de máquina numéricos y otras constantes necesarias para programar una arquitectura de CPU particular.
Ensamblador: Un programa para convertir lenguaje ensamblador en lenguaje de máquina.
C: Un lenguaje de programación que
(1) is not a mnemonic of a particular CPU architecture
(2) cannot be fed into an assembler
PD: Siéntete libre de bajar esta respuesta tanto como quieras :)
En el momento exacto en que Smug Lisp Weenies olvidó que su REPL se implementó en C.
Por eso se desarrolló C Desde el principio, C fue diseñado para la portabilidad.
Supongo que sería la primera vez que había un lenguaje de nivel superior a C.
Eso haría que C sea portátil, pero todavía un nivel bastante bajo (y al menos en algunas mentes, lo más cerca que puede estar de Assembler y aún ser portátil).