Terminología: ¿el código fuente es un programa? [cerrado]

10

Soy un principiante en programación y no entiendo bien la terminología. Me gustaría saber si el código fuente escrito en un lenguaje compilado como C o C ++ se considera un programa. Si no, ¿alguien puede explicar por qué?

Othman
fuente
1
Sí, el código fuente se considera un programa. Los programas se pueden distinguir por el tipo de código que contienen, como en "código fuente", "código objeto", "código máquina" y "código ejecutable".
Robert Harvey
66
Esta pregunta me parece de la misma manera "¿Es la carne de vaca una vaca?" sería, por casi todas las mismas razones.
RM
1
¿Es la harina y el azúcar un pastel?
Bryan Oakley

Respuestas:

16

Vea la entrada de Wikipedia para el Programa : (He agregado la negrita )

Un programa de computadora es una colección de instrucciones que realiza una tarea específica cuando es ejecutada por una computadora. Una computadora requiere que los programas funcionen, y típicamente ejecuta las instrucciones del programa en una unidad central de procesamiento.

Un programa de computadora generalmente es escrito por un programador de computadora en un lenguaje de programación. Del programa en su forma de código fuente legible por humanos , un compilador puede derivar el código de la máquina, una forma que consta de instrucciones que la computadora puede ejecutar directamente

Entonces, el "programa" es el conjunto de instrucciones que ejecuta la computadora, y el "código fuente" es la versión legible por humanos de esas instrucciones.

Dan Pichelman
fuente
1
Gracias por su respuesta. Si entiendo correctamente, el código fuente es un programa porque define un conjunto de instrucciones que realiza una tarea cuando son ejecutadas por una computadora. Pero incluso si esas instrucciones no son las que ejecuta la CPU al final, la CPU ejecuta instrucciones que son las traducciones de las instrucciones definidas en un lenguaje de alto nivel.
Othman
7

Me gustaría saber si el código fuente escrito en un lenguaje compilado como C o CPP se considera un programa.

Sí lo es.

PERO

El peligro con esta línea de pensamiento es llegar a: "la computadora ejecuta mi programa, yo escribo mi programa en [p. Ej.] C, ergo, el código fuente es instrucciones para la computadora".

Y esto es lo que muchos de nosotros pensamos durante muchas décadas en el siglo XX. Lo que hemos aprendido en la última década es que otros programadores son la audiencia principal del código fuente . Entonces, sí, esa fuente es el programa, de la misma manera que obtendrías un programa en el teatro, que le dice a otras personas lo que está sucediendo. La belleza del código fuente es que no solo es el programa, sino que también es un conjunto de instrucciones para la computadora ...

David Arno
fuente
1

Si es o no, depende del contexto. Piensa en ello de esta manera. Olvidé cuál es el nombre formal del concepto, pero hay una teoría del lenguaje que dice que las palabras tienen un significado que describe no lo que es algo, sino lo que no es . Una manzana roja no es roja porque es, bueno, roja, sino porque no es azul, ni verde, etc. Ignore si eso es cierto o no, pero suponga que es por un segundo y piense en la pregunta en ese contexto.

Entonces, cuando pensamos en ese concepto, podemos comparar nuestro código fuente con un plano de una casa. Si está mirando el plano de una pila de otros planos, y pregunta "¿es esta una casa", y los otros planos son para edificios comerciales, puentes, etc., la respuesta sería sí. Porque el plano no representa todas esas otras cosas, y el aspecto de la casa es lo que lo distingue de los otros planos.

Sin embargo, obviamente, un plano de una casa no es lo mismo que una casa real hecha de madera y paneles de yeso en la que puede estar parado. Hay contextos donde la diferencia entre el plano y la casa real es significativa. Hay una diferencia entre el plan y el entregable.

De la misma manera, el código fuente de un programa en un lenguaje compilado es como el plano, si lo compara con bibliotecas, módulos del núcleo, etc., entonces el código fuente y el programa son conceptualmente uno y el mismo. Pero si observa cómo se compila, diseña e implementa el software, los dos no son lo mismo. De nuevo, hay una diferencia entre el plan y la entrega.

tl; dr: A veces, lo que es algo y lo que representa se considera lo mismo, pero otras veces no.

whatsisname
fuente
0

El código fuente es un término general para las líneas de código originales (creadas por humanos). Otros tipos de código que no son fuente pueden ser creados por traducción o por otro programa.

La propiedad intelectual es aún más amplia y puede incluir tanto código fuente como otros códigos o datos.

Un programa se distingue de otro código (fuente u otro) en su integridad. Un programa es un código que es lo suficientemente completo como para que pueda ejecutarse (o está destinado a ejecutarse). No todo el código (fuente o de otro tipo) representa suficiente integridad para ejecutarse. Las bibliotecas, por ejemplo, están destinadas a ser combinadas y utilizadas por otro código, por lo que, por lo general, no se considerarían un programa, ya que no pueden (no están destinadas a ser) ejecutadas.

Esta integridad a veces significa tener un main, que es utilizado por un sistema operativo como punto de entrada para el programa

En términos generales, cuando se ejecuta un programa, eso se denomina proceso.

Erik Eidt
fuente
1
No mencione "propiedad intelectual", ya que es un término intencionalmente destinado a confundir a las personas.
cuál es el
0

El código fuente es la forma preferida del software en el que trabajan los desarrolladores de software humanos . La idea es que el desarrollo de software es un proceso social, por lo que el código fuente es una noción social . Usted escribe el código fuente principalmente para humanos (sus colegas desarrolladores, o incluso usted mismo trabajando en unos pocos meses en el mismo programa), no para computadoras. Para un programa codificado en C, a menudo son (pero no siempre) archivos C y archivos de encabezado, pero el Makefile también es el código fuente. Pero a veces, se utilizan técnicas de metaprogramación : algún programa está generando código C, y luego la entrada.c.hpara ese generador se considera código fuente (incluso si la salida de ese generador es código C). Dos ejemplos: puede usar algún generador de analizador (como GNU bison ) para analizar problemas, luego el .yarchivo de entrada de ese generador es el código fuente. O puede escribir un pequeño script awk o gawk para extraer de una base de datos sqlite algunos datos que se transformarían, por ejemplo, en una gran enum declaración en algún encabezado generado; entonces esa base de datos contendría el código fuente!

En contraste, un programa de computadora está relacionado con la computadora que lo ejecuta. Por lo general, se obtiene compilando un código fuente (escrito en algún lenguaje de programación , y estas son especificaciones escritas en inglés en documentos técnicos, consulte el borrador n1570 para C11 , ¡no herramientas de software!) En un ejecutable binario .

Lea también sobre software libre . Sumérjase en el código fuente de los proyectos de software libre existentes (consulte github o sourceforge para encontrar algunos).

Basile Starynkevitch
fuente