PLE:Unidad1

Esta primera unidad es una brebe introducción a la programación de ordenadores. En primer lugar comenzamos una una brebe historia de los lenguajes de programación

=Software=

Se denomina software a todos los componentes intangibles de un ordenador o computadora, es decir, al conjunto de programas y procedimientos necesarios para hacer posible la realización de una tarea específica, en contraposición a los componentes físicos del sistema (hardware). Esto incluye aplicaciones informáticas tales como un procesador de textos, que permite al usuario realizar una tarea, y software de sistema como un sistema operativo, que permite al resto de programas funcionar adecuadamente, facilitando la interacción con los componentes físicos y el resto de aplicaciones.

Probablemente la definición más formal de software es la atribuida a la IEEE en su estándar 729: «la suma total de los programas de cómputo, procedimientos, reglas [,] documentación y datos asociados que forman parte de las operaciones de un sistema de cómputo». Bajo esta definición el concepto de software va más allá de los programas de cómputo en sus distintas formas: código fuente, binario o ejecutable, además de su documentación: es decir, todo lo intangible.

El término «software» fue usado por primera vez en este sentido por John W. Tukey en 1957. En las ciencias de la computación y la ingeniería de software, el software es toda la información procesada por los sistemas informáticos: programas y datos. El concepto de leer diferentes secuencias de instrucciones de la memoria de un dispositivo para controlar cálculos fue inventado por Charles Babbage como parte de su máquina diferencial. La teoría que forma la base de la mayor parte del software moderno fue propuesta por vez primera por Alan Turing en su ensayo de 1936 Los números computables, con una aplicación al Entscheidungsproblem.

Tipología
El software suele dividirse, si bien tal distinción es en cierto modo arbitraria y a veces difusa y confusa, pues no se sabe si sí o si no:


 * Software de sistema, que permite funcionar al hardware. Su objetivo es aislar tanto como sea posible al programador de aplicaciones de los detalles del computador particular que se use, especialmente de las características físicas de la memoria, dispositivos de comunicaciones, impresoras, pantallas, teclados, etcetera. Incluye entre otros:
 * Sistemas operativos
 * Controladores de dispositivo
 * Herramientas de diagnóstico
 * Servidores
 * Sistemas de ventanas
 * Utilidades
 * Software de programación, que proporciona herramientas para ayudar al programador a escribir programas informáticos y a usar diferentes lenguajes de programación de forma práctica. Incluye entre otros:
 * Editores de texto
 * Compiladores
 * Intérpretes
 * Enlazadores
 * Depuradores
 * Los entornos integrados de desarrollo (IDE) agrupan estas herramientas de forma que el programador no necesite introducir múltiples comandos para compilar, interpretar, depurar, etcétera, gracias a que habitualmente cuentan con una interfaz gráfica de usuario (GUI) avanzada.
 * Software de aplicación, que permite a los usuarios llevar a cabo una o varias tareas más específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios. Incluye entre otros:
 * Aplicaciones de automatización industrial
 * Aplicaciones ofimáticas
 * Software educativo
 * Software médico
 * Bases de datos
 * Videojuegos

Formas
El software adopta varias formas en distintos momentos de su ciclo de vida:
 * Código fuente: escrito por programadores. Contiene el conjunto de instrucciones destinadas a la computadora.
 * Código objeto: resultado del uso de un compilador sobre el código fuente. Consiste en una traducción de éste último. El código objeto no es directamente inteligible por el ser humano, pero tampoco es directamente entendible por la computadora. Se trata de una representación intermedia del código fuente. Véase MSIL (Microsoft Intermediate Language)
 * Código ejecutable: resultado de enlazar uno o varios fragmentos de código objeto. Constituye un archivo binario con un formato tal que el sistema operativo es capaz de cargarlo en la memoria de un ordenador, y proceder a su ejecución. El código ejecutable es directamente inteligible por la computadora.

El proceso Software
El proceso de creación de software es materia de la Ingeniería del software. Es un proceso complejo que involucra diversas tareas de gestión y desarrollo.

Como resumen de las etapas para la creación de un software, se pueden mencionar:
 * Análisis.
 * Desarrollo.
 * Construcción.
 * Pruebas (unitarias e integradas).
 * Paso a Producción.

Dentro de estas etapas, existen sub-etapas (para algunos son otras etapas, como por ejemplo, paso a ambiente beta/rc).

=Historia del lenguaje C/C++=

=El lenguaje estructurado C/C++=

=Intérpretes y Compiladores=

=Estructura de un programa en C=