Programa de ordenador, Programación, Ejecución y almacenamiento, Categorías funcionales


Un programa de ordenador, o simplemente un programa, es una secuencia de instrucciones escritas para realizar una tarea específica con un ordenador. Un equipo necesita programas para funcionar, por lo general la ejecución de las instrucciones del programa en un procesador central. El programa tiene un formato ejecutable que el equipo puede utilizar directamente para ejecutar las instrucciones. El mismo programa en su forma de código fuente legible, de la que se derivan los programas ejecutables, permite a un programador para estudiar y desarrollar sus algoritmos. Una colección de programas de ordenador y los datos relacionados se conoce como el software.

Código fuente de ordenador se escribe a menudo por los programadores informáticos. El código fuente está escrito en un lenguaje de programación que suele seguir una de dos paradigmas principales: programación imperativa o declarativa. El código fuente se puede convertir en un archivo ejecutable por un compilador y más tarde ejecutado por una unidad central de procesamiento. Alternativamente, los programas de ordenador pueden ser ejecutados con la ayuda de un intérprete, o pueden ser incorporados directamente en el hardware.

Los programas de ordenador se pueden categorizar a lo largo de líneas funcionales: software de sistema y software de aplicación. Dos o más programas informáticos pueden ejecutar simultáneamente en un equipo, un proceso conocido como la multitarea.

Programación

Programación informática es el proceso iterativo de la escritura o la edición de código fuente.

Edición de código fuente incluye medir, analizar y perfeccionar, y en ocasiones en coordinación con otros programadores en un programa desarrollado de forma conjunta.

Una persona que practica esta técnica se le conoce como un programador de computadoras, desarrollo de software y, a veces codificador.

El a veces largo proceso de programación de la computadora que normalmente se conoce como el desarrollo de software.

El término ingeniería de software es cada vez más popular como el proceso es visto como una disciplina de la ingeniería.

Paradigmas

Los programas de ordenador se pueden categorizar por el paradigma de lenguaje de programación utilizado para producirlos. Dos de los principales paradigmas son imperativas y declarativas.

Los programas escritos con un lenguaje imperativo especifican un algoritmo utilizando declaraciones, expresiones y sentencias. Una declaración de las parejas un nombre de variable a un tipo de datos. Por ejemplo: var x: integer;. Una expresión produce un valor. Por ejemplo: 2 2 produce 4 - Por último, una declaración puede asignar una expresión a una variable o usar el valor de una variable para alterar el flujo de control del programa. Por ejemplo: x: = 2 2, si x = 4 entonces hacer_algo; Una de las críticas de los lenguajes imperativos es el efecto secundario de una sentencia de asignación a una clase de variables llamadas variables no locales.

Los programas escritos con un lenguaje declarativo especifican las propiedades que deben ser cumplidos por la salida. Ellos no especifican detalles expresados en términos del flujo de control de la máquina de ejecución, pero de las relaciones matemáticas entre los objetos declarados y sus propiedades. Dos amplias categorías de lenguajes declarativos son los lenguajes funcionales y los lenguajes lógicos. El principio detrás de los lenguajes funcionales es no permitir efectos secundarios, lo que hace que sea más fácil para razonar sobre programas como funciones matemáticas. El principio detrás de lenguajes lógicos es definir el problema a ser resuelto - la meta - y dejar la solución detallada al sistema de Prolog en sí. El objetivo está definido por proporcionar una lista de sub-objetivos. A continuación, cada subobjetivo se define proporcionando además una lista de sus sub-objetivos, etc Si una ruta de sub-objetivos no encuentra una solución, a continuación, que subobjetivo se dio marcha atrás y otro camino se intentó sistemáticamente.

La forma en la que se crea un programa puede ser textual o visual. En un programa de lenguaje visual, los elementos son manipulados gráficamente en vez de especificar textualmente.

Compilación o interpretación

Un programa de ordenador en la forma de un lenguaje de programación legible por humanos se llama código fuente. El código fuente se puede convertir en una imagen ejecutable por un compilador o ejecutado inmediatamente con la ayuda de un intérprete.

Cualquiera de los programas compilados o interpretados pueden ser ejecutadas en un proceso por lotes sin intervención humana, pero los programas interpretados permiten al usuario escribir comandos en una sesión interactiva. En este caso, los programas son los comandos separados, cuya ejecución se produce secuencialmente, y por lo tanto juntos. Cuando se utiliza un lenguaje para dar órdenes a una aplicación de software que se llama un lenguaje de scripting.

Los compiladores se utilizan para traducir el código fuente de un lenguaje de programación ya sea en código objeto o código de máquina. El código objeto necesita tratamientos posteriores a convertirse en código de máquina, y el código de máquina es el código nativo de la unidad central de procesamiento, listo para su ejecución. Programas informáticos compilados se refieren comúnmente como ejecutables, imágenes binarias, o simplemente como los binarios - una referencia al formato de archivo binario usado para almacenar el código ejecutable.

Programas informáticos interpretados - en un lote o una sesión interactiva - o bien se descodifican y luego ejecutados inmediatamente o se decodifican en una representación intermedia eficiente para la ejecución futura. BASIC, Perl y Python son ejemplos de programas informáticos ejecutados inmediatamente. Por otra parte, los programas de ordenador Java se compilan antes de tiempo y se almacena como un código independiente de la máquina llamado bytecode. Bytecode es ejecutado a continuación, a petición de un intérprete llamado máquina virtual.

La principal desventaja de los intérpretes es que los programas de ordenador se ejecutan más lenta que cuando se compila. Interpretación de código es más lento que ejecutar la versión compilada porque el intérprete tiene que decodificar cada declaración cada vez que se carga y luego realizar la acción deseada. Sin embargo, el desarrollo de software puede ser más rápido utilizando un intérprete porque la prueba es inmediata cuando se omitió la etapa de compilación. Otra desventaja de los intérpretes es que al menos uno debe estar presente en el equipo durante la ejecución del programa de ordenador. Por el contrario, los programas de ordenador compilados necesitan sin presencia del compilador durante la ejecución.

No hay propiedades de un lenguaje de programación requieren que ser compilado o interpretado exclusivamente exclusiva. La clasificación refleja generalmente el método más popular de ejecución idioma. Por ejemplo, se cree que de BASIC como lenguaje C y un lenguaje compilado interpretadas, a pesar de la existencia de los compiladores de BASIC y C intérpretes. Algunos sistemas utilizan sólo en tiempo de compilación por lo que las secciones de la fuente se compilan 'sobre la marcha' y almacenados para posteriores ejecuciones.

Los programas de auto-modificación

Un programa de ordenador en ejecución se trata normalmente como diferentes de los datos, el programa opera en. Sin embargo, en algunos casos, esta distinción es borrosa cuando un programa informático modifica a sí mismo. El programa de ordenador modificado posteriormente se ejecuta como parte del mismo programa. Auto-modificación del código es posible que los programas escritos en código de máquina, el lenguaje ensamblador, Lisp, C, COBOL, PL/1, Prolog y JavaScript entre otros.

Ejecución y almacenamiento

Típicamente, los programas de ordenador se almacenan en la memoria no volátil hasta que se solicite, ya sea directamente o indirectamente a ser ejecutado por el usuario de la computadora. Al recibirse dicha petición, el programa se carga en memoria de acceso aleatorio, mediante un programa informático llamado un sistema operativo, donde puede ser accedido directamente por el procesador central. El procesador central se ejecuta el programa, instrucción por instrucción, hasta la terminación. Un programa en ejecución se llama un proceso. La terminación es normal, ya sea por auto-terminación o por error - error de software o hardware.

Programas integrados

Algunos programas están incorporados en el hardware. Una computadora con programa almacenado requiere un programa informático inicial almacenada en su memoria de sólo lectura para arrancar. El proceso de arranque es para identificar e inicializar todos los aspectos del sistema, a partir de los registros del procesador a los controladores de dispositivo se refiere a contenido de la memoria. Tras el proceso de inicialización, este programa de ordenador inicial carga el sistema operativo y establece el contador de programa para comenzar las operaciones normales. Independiente del equipo host, un dispositivo de hardware podría haber encajado firmware para controlar su funcionamiento. Firmware se utiliza cuando se espera que rara vez o nunca el programa de ordenador para cambiar, o cuando el programa no debe perderse cuando el equipo está apagado.

Programación manual

Los programas de ordenador históricamente fueron manualmente de entrada al procesador central a través de interruptores. Una instrucción estuvo representada por una configuración de encendido/apagado configuración. Después de ajustar la configuración, se pulsa un botón de ejecución. A continuación, se repitió este proceso. Los programas de ordenador también históricamente fueron manualmente entrada a través de la cinta de papel o tarjetas perforadas. Después de que se cargue el medio, la dirección de inicio se estableció por medio de interruptores y pulsa el boton de ejecutar.

Generación automática del programa

Programación generativa es un estilo de programación informática que genera código fuente a través de las clases genéricas, prototipos, plantillas, aspectos, y generadores de código para mejorar la productividad del programador. El código fuente se genera con herramientas de programación, tales como un procesador de plantilla o un entorno de desarrollo integrado. La forma más simple de generador de código fuente es un procesador de macros, tales como el preprocesador de C, que sustituye a los patrones en el código fuente de acuerdo con reglas relativamente simples.

Motores de software de código fuente de salida o código de marcado que al mismo tiempo convertirse en la entrada de otro proceso informático. Los servidores de aplicaciones son motores de software que ofrecen aplicaciones en los equipos cliente. Por ejemplo, un Wiki es un servidor de aplicaciones que permite a los usuarios crear contenido dinámico ensamblado de artículos. Wikis generan HTML, CSS, Java y JavaScript, que son interpretados por un navegador web.

Ejecución simultánea

Muchos sistemas operativos admiten la multitarea que permite a muchos programas de computadora que parecen funcionar simultáneamente en una computadora. Los sistemas operativos pueden ejecutar varios programas a través de planificación de procesos - un mecanismo de software para conmutar la CPU entre los procesos a menudo lo que los usuarios pueden interactuar con cada programa mientras se ejecuta. En hardware, modernos equipos con varios días o equipos con procesadores multi-núcleo puede ejecutar varios programas.

Un programa de ordenador puede calcular simultáneamente más de una operación utilizando hilos o procesos separados. Subprocesos múltiples procesadores están optimizados para ejecutar múltiples hilos de manera eficiente.

Categorías funcionales

Los programas de ordenador se pueden categorizar a lo largo de líneas funcionales. Las principales categorías funcionales son software de sistema y software de aplicación. El software del sistema incluye el sistema operativo que se acopla hardware con software de aplicación. El propósito del sistema operativo es proporcionar un entorno en el que el software de aplicación se ejecuta de una manera conveniente y eficiente. Además del sistema operativo, software de sistema incluye programas de utilidad que ayudan a administrar y sintonizar el equipo. Si un programa de ordenador no es el software de sistema, entonces es software de aplicación. El software de aplicación incluye el middleware, que acopla el software del sistema con la interfaz de usuario. El software de aplicación también incluye programas de utilidades que ayudan a los usuarios a resolver problemas de aplicación, como la necesidad de clasificar.

A veces, los entornos de desarrollo para el desarrollo de software se consideran como una categoría funcional por sí solo, sobre todo en el contexto de la interacción persona-ordenador y diseño de lenguajes de programación. Los entornos de desarrollo se reúnen software del sistema y software de aplicación para el propósito específico de ayudar a los programadores crear nuevos programas.