fbpx
Wikipedia

Programa informático

Un programa informático o programa de computadora es una secuencia de instrucciones, escritas para realizar una tarea específica en un computador.[1]​ Este dispositivo requiere programas para funcionar, por lo general, ejecutando las instrucciones del programa en un procesador central.[2]​ El programa tiene un formato ejecutable que la computadora puede utilizar directamente para ejecutar las instrucciones. El mismo programa en su formato de código fuente legible para humanos, del cual se derivan los programas ejecutables (por ejemplo, compilados), le permite a un programador estudiar y desarrollar sus algoritmos. Una colección de programas de computadora y datos relacionados se conoce como software.

Un programa informático escrito en un estilo orientado a objetos

Generalmente, el código fuente lo escriben profesionales conocidos como programadores de computadora.[3]​ Este código se escribe en un lenguaje de programación que sigue uno de los siguientes dos paradigmas: imperativo o declarativo, y que posteriormente puede ser convertido en un archivo ejecutable (usualmente llamado un programa ejecutable o un binario) por un compilador y más tarde ejecutado por una unidad central de procesamiento. Por otra parte, los programas de computadora se pueden ejecutar con la ayuda de un intérprete, o pueden ser empotrados directamente en hardware.

De acuerdo a sus funciones, los programas informáticos se clasifican en software de sistema y software de aplicación. En las computadoras de 2015, al hecho de ejecutar varios programas de forma simultánea y eficiente, se lo conoce como multitarea.

Programación

#include <stdio.h> #include <conio.h> int main(void) { printf("Hola Mundo!\n"); getch(); return 0; } 
Código fuente del programa Hola mundo escrito en el Lenguaje de programación C
public class HelloWorld { public static void main(String[] args){ System.out.println("Hola Mundo!"); } } 
Código fuente del programa Hola mundo escrito en el Lenguaje de programación Java
using System; class Program { static void Main(string[] args) { Console.WriteLine("Hola Mundo!"); } } 
Código fuente del programa Hola mundo escrito en el Lenguaje de programación C#

La programación de computadoras es el proceso iterativo de escribir o editar código fuente. Dicha edición implica probar, analizar y perfeccionar, y, a veces, coordinar con otros programadores, en el caso de un programa desarrollado en conjunto. Una persona que practica esta técnica se le conoce como programador de computadoras, desarrollador de software, o codificador. El proceso, a veces a largo plazo, de programación de computadoras normalmente se lo conoce como desarrollo de software. El término ingeniería de software se está convirtiendo en muy popular, ya que esta actividad es vista como una disciplina de ingeniería.

Paradigmas

Los programas de ordenador se pueden clasificar según el paradigma del lenguaje de programación utilizado para producirlos. Dos de los principales paradigmas son imperativos y declarativos.

Los programas escritos con un lenguaje imperativo especifican un algoritmo utilizando declaraciones, expresiones e informes.[4]​ Una declaración asocia 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 las estructuras de control del programa. Por ejemplo: x := 2 + 2; if x = 4 then hacer_algo(); Una crítica de los lenguajes imperativos es el efecto secundario de una sentencia de asignación en una clase de variables llamadas variables no locales.[5]

Los programas escritos en un lenguaje declarativo especifican las propiedades que tienen o que deben cumplirse para la salida. No especifican detalles expresados en términos de flujo de control de la máquina de ejecución pero sí de las relaciones matemáticas entre los objetos declarados y sus propiedades. Los lenguajes funcionales y lógicos son dos amplias categorías de lenguajes declarativos. El principio detrás de los lenguajes funcionales (como Haskell) es el de no permitir efectos secundarios, lo que hace que sea más fácil para razonar sobre los programas como si se tratasen de funciones matemáticas.[5]​ El principio detrás de los lenguajes lógicos (como Prolog) es definir el problema a ser resuelto - la meta - y dejar la solución detallada al propio sistema Prolog.[6]​ El objetivo se define proporcionando la lista de sub-objetivos. Luego, cada subobjetivo se define más arriba, proporcionando la lista de sus sub-objetivos, etc. Si la ruta de sub-objetivos no encuentra una solución, entonces ese subobjetivo se retrocede y otra vía se intenta sistemáticamente.

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

Compilado o interpretando

Un programa de computadora bajo la forma de lenguaje de programación de computadoras legible por un humano, se lo llama código fuente. Dicho código fuente se puede convertir en una imagen ejecutable por un compilador o ejecutarse inmediatamente con la ayuda de un intérprete.

Cualquiera de los programas compilados o interpretados pueden ser ejecutados en un proceso por lotes sin intervención humana, pero los programas interpretados le 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 simultáneamente. Cuando se utiliza un lenguaje para dar órdenes a una aplicación de software (como un shell de Unix u otra interfaz de línea de comandos), se le llama un lenguaje de scripts.

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 máquina.[7]​ El código objeto de objeto necesita procesamiento adicional para convertirse en código máquina, y el código máquina es el código nativo de la unidad central de procesamiento, listo para su ejecución. Los programas de computadora compilados se conocen comúnmente como ejecutables, imágenes binarias, o simplemente como binarios —una referencia al formato de archivo binario utilizado para almacenar el código ejecutable—.

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

La principal desventaja de los intérpretes es que los programas de computadora corren más lento que cuando son compilados. La interpretación de código resulta más lenta que la ejecución de la versión compilada porque el intérprete debe 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 usando un intérprete porque la prueba es inmediata cuando se omite el paso de la compilación. Otra desventaja de los intérpretes es que debe estar presente al menos uno en la computadora durante la ejecución del programa de computadora. Por el contrario, los programas de computadora compilados no necesitan compilador presente durante la ejecución.

No se requieren propiedades de un lenguaje de programación si se está compilado exclusivamente o interpretándose exclusivamente. Por lo general, la clasificación refleja el método más popular de ejecución del lenguaje. Por ejemplo, BASIC se considera un lenguaje interpretado y C un lenguaje compilado, a pesar de la existencia de compiladores de BASIC e intérpretes de C. Algunos sistemas utilizan compilación en tiempo de ejecución (JIT) mediante la cual las secciones de la fuente se compilan 'sobre la marcha' y se almacenan para ejecuciones posteriores.

Programas que se automodifican

Un programa informático en ejecución, normalmente es tratado como algo diferente de los datos con los cuales opera. Sin embargo, en algunos casos esta distinción es ambigua, especialmente cuando un programa se modifica a sí mismo. El programa modificado es ejecutado secuencialmente como parte del mismo programa. En el caso de programas escritos en código máquina, lenguaje ensamblador, Lisp, [[d[[]] (lenguaje de programación)|d]], COlOL, PL/9 y Prolog y JavaScript (la función eval), entre otros, es posible tener código que se automodifica.

Ejecución y almacenamiento de los programas

Típicamente, los programas se almacenan en una memoria no volátil (por ejemplo un disco), para que luego el usuario de la computadora, directa o indirectamente, solicite su ejecución. Al momento de dicha solicitud, el programa es cargado en la memoria de acceso aleatorio o RAM del equipo, bajo el control del software llamado sistema operativo, el cual puede acceder directamente al procesador. El procesador ejecuta (corre) el programa, instrucción por instrucción hasta que termina. A un programa en ejecución se le suele llamar también proceso. Un programa puede terminar su ejecución en forma normal o por causa de un error, dicho error puede ser de software o de hardware.

Programas empotrados en hardware

 
El microcontrolador a la derecha de la Memoria USB está controlada por un firmware empotrado

Algunos programas están empotrados en el hardware. Una computadora con arquitectura de programas almacenados requiere un programa inicial almacenado en su ROM para arrancar. El proceso de arranque es para identificar e inicializar todos los aspectos del sistema, desde los registros del procesador, controladores de dispositivos hasta el contenido de la memoria RAM.[8]​ Seguido del proceso de inicialización, este programa inicial carga al sistema operativo e inicializa al contador de programa para empezar las operaciones normales. Independiente de la computadora, un dispositivo de hardware podría tener firmware empotrado para el control de sus operaciones. El firmware se utiliza cuando se espera que el programa cambie en raras ocasiones o nunca, o cuando el programa no debe perderse cuando haya ausencia de energía.[9]

Programas cargados manualmente

 
Interruptores para la carga manual en una Data General Nova 3

Históricamente, los programas eran cargados al procesador central de forma manual mediante interruptores. Una instrucción se representaba por una configuración de estados de interruptores de abierto o cerrados. Después de establecer la configuración, se ejecutaba un botón de ejecución. Este proceso era repetitivo. Asimismo, los programas se cargaban manualmente mediante una cinta de papel o tarjetas perforadas. Después de que se cargaba el programa, se establecía la dirección de inicio mediante interruptores y se presionaba el botón de ejecución.[10]

Programas generados automáticamente

La programación automática es un estilo de programación que crea código fuente mediante clases genéricas, prototipos, plantillas, aspectos, y generadores de código para aumentar la productividad del programador. El código fuente se genera con herramientas de programación tal como un procesador de plantilla o un IDE. La forma más simple de un generador de código fuente es un procesador macro, tal como el preprocesador de C, que reemplaza patrones de código fuente de acuerdo a reglas relativamente simples.

Un motor de software da de salida código fuente o lenguaje de marcado que simultáneamente se vuelve la entrada de otro proceso informático. Podemos pensar como analogía un proceso manejando a otro siendo el código máquina quemado como combustible. Los servidores de aplicaciones son motores de software que entregan aplicaciones a computadoras cliente. Por ejemplo, un software para wikis es un sevidor de aplicaciones que permite a los usuarios desarrollar contenido dinámico ensamblado a partir de artículos. Las wikis generan HTML, CSS, Java, y Javascript los cuales son interpretados por un navegador web.

Ejecución simultánea

Muchos programas pueden ejecutarse simultáneamente en la misma computadora, hecho al cual se lo conoce como multitarea, pudiéndose lograr mediante mecanismos de software o de hardware. Los sistemas operativos modernos pueden ejecutar varios programas a través del planificador de procesos — un mecanismo de software para conmutar con frecuencia la cantidad de procesos del procesador de modo que los usuarios puedan interactuar con cada programa mientras estos están corriendo.[11]​ También se puede lograr la multitarea por medio del hardware; las computadoras modernas que usan varios procesadores o procesadores con varios núcleos pueden correr muchos programas a la vez.[12]

Categorías funcionales

Los programas se pueden categorizar aplicando criterios funcionales. Estas categorías funcionales son software de sistema y software de aplicación. El software de sistema incluye al sistema operativo el cual acopla el hardware con el software de aplicación.[13]​ El propósito del sistema operativo es proveer un ambiente en el cual el software de aplicación se ejecuta de una manera conveniente y eficiente.[13]​ Además del sistema operativo, el software de sistema incluye programas utilitarios que ayudan a manejar y configurar la computadora. Si un programa no es software de sistema entonces es software de aplicación. El middleware también es un software de aplicación que acopla el software de sistema con la interfaz de usuario. También son software de aplicación los programas utilitarios que ayudan a los usuarios a resolver problemas de aplicaciones, como por ejemplo la necesidad de ordenamiento.

Véase también

Referencias

  1. Stair, Ralph M., et al. (2003). Principles of Information Systems, Sixth Edition (en inglés). Thomson Learning, Inc. p. 132. ISBN 0-619-06489-7. 
  2. Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition (en inglés). Addison-Wesley. p. 58. ISBN 0-201-50480-4. 
  3. «Algorithms and Computer Programming» (en inglés). Consultado el 8 de setiembre de 2014. 
  4. Wilson, Leslie B. (1993). Comparative Programming Languages, Second Edition (en inglés). Addison-Wesley. p. 75. ISBN 0-201-56885-3. 
  5. Wilson, Leslie B. (1993). Comparative Programming Languages, Second Edition (en inglés). Addison-Wesley. p. 213. ISBN 0-201-56885-3. 
  6. Wilson, Leslie B. (1993). Comparative Programming Languages, Second Edition (en inglés). Addison-Wesley. p. 244. ISBN 0-201-56885-3. 
  7. «What is a Compiler?» (en inglés). Consultado el 10 de enero de 2012. 
  8. Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition (en inglés). Addison-Wesley. p. 30. ISBN 0-201-50480-4. 
  9. Tanenbaum, Andrew S. (1990). Structured Computer Organization, Third Edition. Prentice Hall. p. 11. ISBN 0-13-854662-2.  (en inglés).
  10. Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition (en inglés). Addison-Wesley. p. 6. ISBN 0-201-50480-4. 
  11. Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition (en inglés). Addison-Wesley. p. 100. ISBN 0-201-50480-4. 
  12. Akhter, Shameem (2006). Multi-Core Programming (en inglés). Richard Bowles (Intel Press). pp. 11-13. ISBN 0-9764832-4-6. .
  13. Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition (en inglés). Addison-Wesley. p. 1. ISBN 0-201-50480-4. 

Bibliografía

  • Knuth, Donald E. (1997). The Art of Computer Programming, Volume 1, 3rd Edition (en inglés). Boston: Addison-Wesley. ISBN 0-201-89683-4. 
  • Knuth, Donald E. (1997). The Art of Computer Programming, Volume 2, 3rd Edition (en inglés). Boston: Addison-Wesley. ISBN 0-201-89684-2. 
  • Knuth, Donald E. (1997). The Art of Computer Programming, Volume 3, 3rd Edition (en inglés). Boston: Addison-Wesley. ISBN 0-201-89685-0. 

Enlaces externos

  •   Datos: Q40056
  •   Multimedia: Software

programa, informático, artículo, principal, software, véase, también, aplicación, informática, programa, informático, programa, computadora, secuencia, instrucciones, escritas, para, realizar, tarea, específica, computador, este, dispositivo, requiere, program. Articulo principal Software Vease tambien Aplicacion informatica Un programa informatico o programa de computadora es una secuencia de instrucciones escritas para realizar una tarea especifica en un computador 1 Este dispositivo requiere programas para funcionar por lo general ejecutando las instrucciones del programa en un procesador central 2 El programa tiene un formato ejecutable que la computadora puede utilizar directamente para ejecutar las instrucciones El mismo programa en su formato de codigo fuente legible para humanos del cual se derivan los programas ejecutables por ejemplo compilados le permite a un programador estudiar y desarrollar sus algoritmos Una coleccion de programas de computadora y datos relacionados se conoce como software Un programa informatico escrito en un estilo orientado a objetos Generalmente el codigo fuente lo escriben profesionales conocidos como programadores de computadora 3 Este codigo se escribe en un lenguaje de programacion que sigue uno de los siguientes dos paradigmas imperativo o declarativo y que posteriormente puede ser convertido en un archivo ejecutable usualmente llamado un programa ejecutable o un binario por un compilador y mas tarde ejecutado por una unidad central de procesamiento Por otra parte los programas de computadora se pueden ejecutar con la ayuda de un interprete o pueden ser empotrados directamente en hardware De acuerdo a sus funciones los programas informaticos se clasifican en software de sistema y software de aplicacion En las computadoras de 2015 al hecho de ejecutar varios programas de forma simultanea y eficiente se lo conoce como multitarea Indice 1 Programacion 1 1 Paradigmas 1 2 Compilado o interpretando 1 3 Programas que se automodifican 2 Ejecucion y almacenamiento de los programas 2 1 Programas empotrados en hardware 2 2 Programas cargados manualmente 2 3 Programas generados automaticamente 2 4 Ejecucion simultanea 3 Categorias funcionales 4 Vease tambien 5 Referencias 6 Bibliografia 7 Enlaces externosProgramacion EditarArticulo principal Programacion include lt stdio h gt include lt conio h gt int main void printf Hola Mundo n getch return 0 Codigo fuente del programa Hola mundo escrito en el Lenguaje de programacion Cpublic class HelloWorld public static void main String args System out println Hola Mundo Codigo fuente del programa Hola mundo escrito en el Lenguaje de programacion Javausing System class Program static void Main string args Console WriteLine Hola Mundo Codigo fuente del programa Hola mundo escrito en el Lenguaje de programacion C La programacion de computadoras es el proceso iterativo de escribir o editar codigo fuente Dicha edicion implica probar analizar y perfeccionar y a veces coordinar con otros programadores en el caso de un programa desarrollado en conjunto Una persona que practica esta tecnica se le conoce como programador de computadoras desarrollador de software o codificador El proceso a veces a largo plazo de programacion de computadoras normalmente se lo conoce como desarrollo de software El termino ingenieria de software se esta convirtiendo en muy popular ya que esta actividad es vista como una disciplina de ingenieria Paradigmas Editar Los programas de ordenador se pueden clasificar segun el paradigma del lenguaje de programacion utilizado para producirlos Dos de los principales paradigmas son imperativos y declarativos Los programas escritos con un lenguaje imperativo especifican un algoritmo utilizando declaraciones expresiones e informes 4 Una declaracion asocia un nombre de variable a un tipo de datos Por ejemplo var x integer Una expresion produce un valor Por ejemplo 2 2 produce 4 Por ultimo una declaracion puede asignar una expresion a una variable o usar el valor de una variable para alterar las estructuras de control del programa Por ejemplo x 2 2 if x 4 then hacer algo Una critica de los lenguajes imperativos es el efecto secundario de una sentencia de asignacion en una clase de variables llamadas variables no locales 5 Los programas escritos en un lenguaje declarativo especifican las propiedades que tienen o que deben cumplirse para la salida No especifican detalles expresados en terminos de flujo de control de la maquina de ejecucion pero si de las relaciones matematicas entre los objetos declarados y sus propiedades Los lenguajes funcionales y logicos son dos amplias categorias de lenguajes declarativos El principio detras de los lenguajes funcionales como Haskell es el de no permitir efectos secundarios lo que hace que sea mas facil para razonar sobre los programas como si se tratasen de funciones matematicas 5 El principio detras de los lenguajes logicos como Prolog es definir el problema a ser resuelto la meta y dejar la solucion detallada al propio sistema Prolog 6 El objetivo se define proporcionando la lista de sub objetivos Luego cada subobjetivo se define mas arriba proporcionando la lista de sus sub objetivos etc Si la ruta de sub objetivos no encuentra una solucion entonces ese subobjetivo se retrocede y otra via se intenta sistematicamente La forma en que se crea el programa puede ser textual o visual En un programa de lenguaje visual los elementos en vez de ser textualmente especificados son manipulados graficamente Compilado o interpretando Editar Un programa de computadora bajo la forma de lenguaje de programacion de computadoras legible por un humano se lo llama codigo fuente Dicho codigo fuente se puede convertir en una imagen ejecutable por un compilador o ejecutarse inmediatamente con la ayuda de un interprete Cualquiera de los programas compilados o interpretados pueden ser ejecutados en un proceso por lotes sin intervencion humana pero los programas interpretados le permiten al usuario escribir comandos en una sesion interactiva En este caso los programas son los comandos separados cuya ejecucion se produce secuencialmente y por lo tanto simultaneamente Cuando se utiliza un lenguaje para dar ordenes a una aplicacion de software como un shell de Unix u otra interfaz de linea de comandos se le llama un lenguaje de scripts Los compiladores se utilizan para traducir el codigo fuente de un lenguaje de programacion ya sea en codigo objeto o codigo maquina 7 El codigo objeto de objeto necesita procesamiento adicional para convertirse en codigo maquina y el codigo maquina es el codigo nativo de la unidad central de procesamiento listo para su ejecucion Los programas de computadora compilados se conocen comunmente como ejecutables imagenes binarias o simplemente como binarios una referencia al formato de archivo binario utilizado para almacenar el codigo ejecutable Los programas de computadora interpretados en un lote o una sesion interactiva o bien se descodifican y luego ejecutados inmediatamente o se decodifican en alguna representacion intermedia eficiente para la ejecucion futura BASIC Perl y Python son ejemplos de programas de computadora ejecutados inmediatamente Por otra parte los programas de computadora de Java se compilan antes de tiempo y se almacena como un codigo independiente de la maquina llamado bytecode Entonces dicho bytecode es ejecutado a peticion de un interprete llamado maquina virtual La principal desventaja de los interpretes es que los programas de computadora corren mas lento que cuando son compilados La interpretacion de codigo resulta mas lenta que la ejecucion de la version compilada porque el interprete debe decodificar cada declaracion cada vez que se carga y luego realizar la accion deseada Sin embargo el desarrollo de software puede ser mas rapido usando un interprete porque la prueba es inmediata cuando se omite el paso de la compilacion Otra desventaja de los interpretes es que debe estar presente al menos uno en la computadora durante la ejecucion del programa de computadora Por el contrario los programas de computadora compilados no necesitan compilador presente durante la ejecucion No se requieren propiedades de un lenguaje de programacion si se esta compilado exclusivamente o interpretandose exclusivamente Por lo general la clasificacion refleja el metodo mas popular de ejecucion del lenguaje Por ejemplo BASIC se considera un lenguaje interpretado y C un lenguaje compilado a pesar de la existencia de compiladores de BASIC e interpretes de C Algunos sistemas utilizan compilacion en tiempo de ejecucion JIT mediante la cual las secciones de la fuente se compilan sobre la marcha y se almacenan para ejecuciones posteriores Programas que se automodifican Editar Un programa informatico en ejecucion normalmente es tratado como algo diferente de los datos con los cuales opera Sin embargo en algunos casos esta distincion es ambigua especialmente cuando un programa se modifica a si mismo El programa modificado es ejecutado secuencialmente como parte del mismo programa En el caso de programas escritos en codigo maquina lenguaje ensamblador Lisp d lenguaje de programacion d COlOL PL 9 y Prolog y JavaScript la funcion eval entre otros es posible tener codigo que se automodifica Ejecucion y almacenamiento de los programas EditarTipicamente los programas se almacenan en una memoria no volatil por ejemplo un disco para que luego el usuario de la computadora directa o indirectamente solicite su ejecucion Al momento de dicha solicitud el programa es cargado en la memoria de acceso aleatorio o RAM del equipo bajo el control del software llamado sistema operativo el cual puede acceder directamente al procesador El procesador ejecuta corre el programa instruccion por instruccion hasta que termina A un programa en ejecucion se le suele llamar tambien proceso Un programa puede terminar su ejecucion en forma normal o por causa de un error dicho error puede ser de software o de hardware Programas empotrados en hardware Editar El microcontrolador a la derecha de la Memoria USB esta controlada por un firmware empotrado Algunos programas estan empotrados en el hardware Una computadora con arquitectura de programas almacenados requiere un programa inicial almacenado en su ROM para arrancar El proceso de arranque es para identificar e inicializar todos los aspectos del sistema desde los registros del procesador controladores de dispositivos hasta el contenido de la memoria RAM 8 Seguido del proceso de inicializacion este programa inicial carga al sistema operativo e inicializa al contador de programa para empezar las operaciones normales Independiente de la computadora un dispositivo de hardware podria tener firmware empotrado para el control de sus operaciones El firmware se utiliza cuando se espera que el programa cambie en raras ocasiones o nunca o cuando el programa no debe perderse cuando haya ausencia de energia 9 Programas cargados manualmente Editar Interruptores para la carga manual en una Data General Nova 3 Historicamente los programas eran cargados al procesador central de forma manual mediante interruptores Una instruccion se representaba por una configuracion de estados de interruptores de abierto o cerrados Despues de establecer la configuracion se ejecutaba un boton de ejecucion Este proceso era repetitivo Asimismo los programas se cargaban manualmente mediante una cinta de papel o tarjetas perforadas Despues de que se cargaba el programa se establecia la direccion de inicio mediante interruptores y se presionaba el boton de ejecucion 10 Programas generados automaticamente Editar La programacion automatica es un estilo de programacion que crea codigo fuente mediante clases genericas prototipos plantillas aspectos y generadores de codigo para aumentar la productividad del programador El codigo fuente se genera con herramientas de programacion tal como un procesador de plantilla o un IDE La forma mas simple de un generador de codigo fuente es un procesador macro tal como el preprocesador de C que reemplaza patrones de codigo fuente de acuerdo a reglas relativamente simples Un motor de software da de salida codigo fuente o lenguaje de marcado que simultaneamente se vuelve la entrada de otro proceso informatico Podemos pensar como analogia un proceso manejando a otro siendo el codigo maquina quemado como combustible Los servidores de aplicaciones son motores de software que entregan aplicaciones a computadoras cliente Por ejemplo un software para wikis es un sevidor de aplicaciones que permite a los usuarios desarrollar contenido dinamico ensamblado a partir de articulos Las wikis generan HTML CSS Java y Javascript los cuales son interpretados por un navegador web Ejecucion simultanea Editar Veanse tambien Proceso informatica y Multiprocesamiento Muchos programas pueden ejecutarse simultaneamente en la misma computadora hecho al cual se lo conoce como multitarea pudiendose lograr mediante mecanismos de software o de hardware Los sistemas operativos modernos pueden ejecutar varios programas a traves del planificador de procesos un mecanismo de software para conmutar con frecuencia la cantidad de procesos del procesador de modo que los usuarios puedan interactuar con cada programa mientras estos estan corriendo 11 Tambien se puede lograr la multitarea por medio del hardware las computadoras modernas que usan varios procesadores o procesadores con varios nucleos pueden correr muchos programas a la vez 12 Categorias funcionales EditarLos programas se pueden categorizar aplicando criterios funcionales Estas categorias funcionales son software de sistema y software de aplicacion El software de sistema incluye al sistema operativo el cual acopla el hardware con el software de aplicacion 13 El proposito del sistema operativo es proveer un ambiente en el cual el software de aplicacion se ejecuta de una manera conveniente y eficiente 13 Ademas del sistema operativo el software de sistema incluye programas utilitarios que ayudan a manejar y configurar la computadora Si un programa no es software de sistema entonces es software de aplicacion El middleware tambien es un software de aplicacion que acopla el software de sistema con la interfaz de usuario Tambien son software de aplicacion los programas utilitarios que ayudan a los usuarios a resolver problemas de aplicaciones como por ejemplo la necesidad de ordenamiento Vease tambien EditarAlgoritmo para la relacion entre los programas informaticos y algoritmos Aplicacion informatica Archivo cabra para un tipo especifico de programa informatico utilizado solo para liberar y estudiar los efectos de virus informaticos en los sistemas fisicos y virtuales Estructura de datos Inteligencia artificial Sistema multi agente Software Software de aplicacionReferencias Editar Stair Ralph M et al 2003 Principles of Information Systems Sixth Edition en ingles Thomson Learning Inc p 132 ISBN 0 619 06489 7 Silberschatz Abraham 1994 Operating System Concepts Fourth Edition en ingles Addison Wesley p 58 ISBN 0 201 50480 4 Algorithms and Computer Programming en ingles Consultado el 8 de setiembre de 2014 Wilson Leslie B 1993 Comparative Programming Languages Second Edition en ingles Addison Wesley p 75 ISBN 0 201 56885 3 a b Wilson Leslie B 1993 Comparative Programming Languages Second Edition en ingles Addison Wesley p 213 ISBN 0 201 56885 3 Wilson Leslie B 1993 Comparative Programming Languages Second Edition en ingles Addison Wesley p 244 ISBN 0 201 56885 3 What is a Compiler en ingles Consultado el 10 de enero de 2012 Silberschatz Abraham 1994 Operating System Concepts Fourth Edition en ingles Addison Wesley p 30 ISBN 0 201 50480 4 Tanenbaum Andrew S 1990 Structured Computer Organization Third Edition Prentice Hall p 11 ISBN 0 13 854662 2 en ingles Silberschatz Abraham 1994 Operating System Concepts Fourth Edition en ingles Addison Wesley p 6 ISBN 0 201 50480 4 Silberschatz Abraham 1994 Operating System Concepts Fourth Edition en ingles Addison Wesley p 100 ISBN 0 201 50480 4 Akhter Shameem 2006 Multi Core Programming en ingles Richard Bowles Intel Press pp 11 13 ISBN 0 9764832 4 6 a b Silberschatz Abraham 1994 Operating System Concepts Fourth Edition en ingles Addison Wesley p 1 ISBN 0 201 50480 4 Bibliografia EditarKnuth Donald E 1997 The Art of Computer Programming Volume 1 3rd Edition en ingles Boston Addison Wesley ISBN 0 201 89683 4 Knuth Donald E 1997 The Art of Computer Programming Volume 2 3rd Edition en ingles Boston Addison Wesley ISBN 0 201 89684 2 Knuth Donald E 1997 The Art of Computer Programming Volume 3 3rd Edition en ingles Boston Addison Wesley ISBN 0 201 89685 0 Enlaces externos EditarDefinicion de Programa en Webopedia en ingles Definicion de Computer Program en dictionary com en ingles Esta obra contiene una traduccion total derivada de Computer program de la Wikipedia en ingles concretamente de esta version publicada por sus editores bajo la Licencia de documentacion libre de GNU y la Licencia Creative Commons Atribucion CompartirIgual 3 0 Unported Datos Q40056 Multimedia SoftwareObtenido de https es wikipedia org w index php title Programa informatico amp oldid 136181783, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos