Programa Informático

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

Programa informático

varios programas de forma simultánea y eficiente, se lo


conoce como multitarea.

1 Programación
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 desarro-
llado en conjunto. Una persona que practica esta técnica
se le conoce como programador de computadoras, desa-
rrollador de software, o codificador. El proceso, a veces
a largo plazo, de programación de computadoras normal-
mente se lo conoce como desarrollo de software. El tér-
mino ingeniería de software se está convirtiendo en muy
popular, ya que esta actividad es vista como una discipli-
na de ingeniería.
Un programa informático escrito en un estilo orientado a objetos.
1.1 Paradigmas
Un programa informático o programa de computado-
ra es una secuencia de instrucciones, escritas para reali- Los programas de ordenador se pueden clasificar según
zar una tarea específica en una computadora.[1] Este dis- el paradigma del lenguaje de programación utilizado pa-
positivo requiere programas para funcionar, por lo ge- ra producirlos. Dos de los principales paradigmas son
neral, ejecutando las instrucciones del programa en un imperativos y declarativos.
procesador central.[2] El programa tiene un formato eje- Los programas escritos con un lenguaje imperativo espe-
cutable que la computadora puede utilizar directamen- cifican un algoritmo utilizando declaraciones, expresio-
te para ejecutar las instrucciones. El mismo programa
nes e informes.[4] Una declaración asocia un nombre de
en su formato de código fuente legible para humanos, variable a un tipo de datos. Por ejemplo: var x: integer; .
del cual se derivan los programas ejecutables (por ejem-
Una expresión produce un valor. Por ejemplo: 2 + 2 pro-
plo, compilados), le permite a un programador estudiar y duce 4. Por último, una declaración puede asignar una
desarrollar sus algoritmos. Una colección de programas
expresión a una variable o usar el valor de una variable
de computadora y datos relacionados se conoce como para alterar las estructuras de control del programa. Por
software.
ejemplo: x := 2 + 2; if x = 4 then hacer_algo(); Una crí-
Generalmente, el código fuente lo escriben profesionales tica de los lenguajes imperativos es el efecto secundario
conocidos como programadores de computadora.[3] Es- de una sentencia de asignación en una clase de variables
te código se escribe en un lenguaje de programación que llamadas variables no locales.[5]
sigue uno de los siguientes dos paradigmas: imperativo Los programas escritos en un lenguaje declarativo espe-
o declarativo, y que posteriormente puede ser converti- cifican las propiedades que tienen o que deben cumplir-
do en un archivo ejecutable (usualmente llamado un pro- se para la salida. No especifican detalles expresados en
grama ejecutable o un binario) por un compilador y más términos de flujo de control de la máquina de ejecución
tarde ejecutado por una unidad central de procesamien- pero sí de las relaciones matemáticas entre los objetos
to. Por otra parte, los programas de computadora se pue- declarados y sus propiedades. Los lenguajes funcionales
den ejecutar con la ayuda de un intérprete, o pueden ser y lógicos son dos amplias categorías de lenguajes decla-
empotrados directamente en hardware. rativos. El principio detrás de los lenguajes funcionales
De acuerdo a sus funciones, los programas informáticos (como Haskell) es el de no permitir efectos secundarios,
se clasifican en software de sistema y software de aplica- lo que hace que sea más fácil para razonar sobre los pro-
ción. En las computadoras de 2015, al hecho de ejecutar gramas como si se tratasen de funciones matemáticas.[5]

1
2 2 EJECUCIÓN Y ALMACENAMIENTO DE LOS PROGRAMAS

El principio detrás de los lenguajes lógicos (como Prolog)


compilados. La interpretación de código resulta más lenta
es definir el problema a ser resuelto - la meta - y dejar la
que la ejecución de la versión compilada porque el intér-
solución detallada al propio sistema Prolog.[6] El objetivo
prete debe decodificar cada declaración cada vez que se
se define proporcionando la lista de sub-objetivos. Luego,carga y luego realizar la acción deseada. Sin embargo, el
cada subobjetivo se define más arriba, proporcionando la desarrollo de software puede ser más rápido usando un in-
lista de sus sub-objetivos, etc. Si la ruta de sub-objetivos
térprete porque la prueba es inmediata cuando se omite el
no encuentra una solución, entonces ese subobjetivo se paso de la compilación. Otra desventaja de los intérpretes
retrocede y otra vía se intenta sistemáticamente. es que debe estar presente al menos uno en la computado-
ra durante la ejecución del programa de computadora. Por
La forma en que se crea el programa puede ser textual o
visual. En un programa de lenguaje visual, los elementos el contrario, los programas de computadora compilados
no necesitan compilador presente durante la ejecución.
en vez de ser textualmente especificados son manipulados
gráficamente. No se requieren propiedades de un lenguaje de progra-
mación si se está compilado exclusivamente o interpre-
tándose exclusivamente. Por lo general, la clasificación
1.2 Compilado o interpretando refleja el método más popular de ejecución del lenguaje.
Por ejemplo, BASIC se considera un lenguaje interpreta-
do y C un lenguaje compilado, a pesar de la existencia de
Un programa de computadora bajo la forma de lengua-
compiladores de BASIC e intérpretes de C. Algunos sis-
je de programación de computadoras legible por un hu-
temas utilizan compilación en tiempo de ejecución (JIT)
mano, se lo llama código fuente. Dicho código fuen-
mediante la cual las secciones de la fuente se compilan
te se puede convertir en una imagen ejecutable por un
'sobre la marcha' y se almacenan para ejecuciones poste-
compilador o ejecutarse inmediatamente con la ayuda de
riores.
un intérprete.
Cualquiera de los programas compilados o interpretados
pueden ser ejecutados en un proceso por lotes sin inter-
vención humana, pero los programas interpretados le per- 1.3 Programas que se auto-modifican
miten al usuario escribir comandos en una sesión interac-
tiva. En este caso, los programas son los comandos sepa-
Un programa informático en ejecución normalmente es
rados, cuya ejecución se produce secuencialmente, y por
tratado como algo diferente de los datos con los cuales
lo tanto simultáneamente. Cuando se utiliza un lenguaje
opera. Sin embargo, en algunos casos ésta distinción es
para dar órdenes a una aplicación de software (como un
ambigua, especialmente cuando un programa se modifica
shell de Unix u otra interfaz de línea de comandos), se le
a sí mismo. El programa modificado es ejecutado secuen-
llama un lenguaje de scripts.
cialmente como parte del mismo programa. En el caso de
Los compiladores se utilizan para traducir el código fuen- programas escritos en código máquina, lenguaje ensam-
te de un lenguaje de programación, ya sea en código obje- blador, Lisp, C, COBOL, PL/1 y Prolog y JavaScript (la
to o código máquina.[7] El código objeto de objeto nece- función eval), entre otros, es posible tener código que se
sita procesamiento adicional para convertirse en código auto-modifica.
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 sim-
plemente como binarios — una referencia al formato de 2 Ejecución y almacenamiento de
archivo binario utilizado para almacenar el código ejecu- los programas
table.
Los programas de computadora — interpretados en un lo- Típicamente, los programas se almacenan en una
te o una sesión interactiva — o bien se descodifican y lue- memoria no volátil (por ejemplo un disco), para que luego
go ejecutados inmediatamente o se decodifican en alguna el usuario de la computadora, directa o indirectamente,
representación intermedia eficiente para la ejecución fu- solicite su ejecución. Al momento de dicha solicitud, el
tura. BASIC, Perl y Python son ejemplos de programas de programa es cargado en la memoria de acceso aleatorio
computadora ejecutados inmediatamente. Por otra parte, o RAM del equipo, bajo el control del software llama-
los programas de computadora de Java se compilan antes do sistema operativo, el cual puede acceder directamente
de tiempo y se almacena como un código independien- al procesador. El procesador ejecuta (corre) el programa,
te de la máquina llamado bytecode. Entonces, dicho by- instrucción por instrucción hasta que termina. A un pro-
tecode es ejecutado a petición de un intérprete llamado grama en ejecución se le suele llamar también proceso.
máquina virtual. Un programa puede terminar su ejecución en forma nor-
La principal desventaja de los intérpretes es que los pro- mal o por causa de un error, dicho error puede ser de
gramas de computadora corren más lento que cuando son software o de hardware.
2.3 Programas generados automáticamente 3

2.1 Programas empotrados en hardware establecer la configuración, se ejecutaba un botón de eje-


cución. Este proceso era repetitivo. Asimismo, los pro-
gramas 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]

2.3 Programas generados automática-


mente
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 productivi-
dad del programador. El código fuente se genera con
herramientas de programación tal como un procesador
El microcontrolador a la derecha de la Memoria USB está con- de plantilla o un IDE. La forma más simple de un
trolada por un firmware empotrado. generador de código fuente es un procesador macro, tal
como el preprocesador de C, que reemplaza patrones de
Algunos programas están empotrados en el hardware. código fuente de acuerdo a reglas relativamente simples.
Una computadora con arquitectura de programas alma-
cenados requiere un programa inicial almacenado en su Un motor de software da de salida código fuente o
ROM para arrancar. El proceso de arranque es para iden- lenguaje de marcado que simultáneamente se vuelve
tificar e inicializar todos los aspectos del sistema, desde la entrada de otro proceso informático. Podemos pen-
los registros del procesador, controladores de dispositi- sar como analogía un proceso manejando a otro sien-
vos hasta el contenido de la memoria RAM.[8] Seguido do el código máquina quemado como combustible. Los
del proceso de inicialización, este programa inicial carga servidores de aplicaciones son motores de software que
al sistema operativo e inicializa al contador de programa entregan aplicaciones a computadoras cliente. Por ejem-
para empezar las operaciones normales. Independiente de plo, un software para wikis es un sevidor de aplicacio-
la computadora, un dispositivo de hardware podría tener nes que permite a los usuarios desarrollar contenido di-
firmware empotrado para el control de sus operaciones. námico ensamblado a partir de artículos. Las Wikis ge-
El firmware se utiliza cuando se espera que el programa neran HTML, CSS, Java, y Javascript los cuales son
cambie en raras ocasiones o nunca, o cuando el programa interpretados por un navegador web.
no debe perderse cuando haya ausencia de energía.[9]
2.4 Ejecución simultánea
2.2 Programas cargados manualmente
Muchos programas pueden ejecutarse simultáneamente
en la misma computadora, hecho al cual se lo conoce
como multitarea, pudiéndose lograr mediante mecanis-
mos 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]

Interruptores para la carga manual en una Data General Nova


3.
3 Categorías funcionales
Históricamente, los programas eran cargados al procesa- Los programas se pueden categorizar aplicando criterios
dor central de forma manual mediante interruptores. Una funcionales. Estas categorías funcionales son software de
instrucción se representaba por una configuración de es- sistema y software de aplicación. El software de sistema
tados de interruptores de abierto o cerrados. Después de incluye al sistema operativo el cual acopla el hardware
4 7 ENLACES EXTERNOS

con el software de aplicación.[13] El propósito del siste- [8] Silberschatz, Abraham (1994). Operating System Con-
ma operativo es proveer un ambiente en el cual el soft- cepts, Fourth Edition (en inglés). Addison-Wesley. p. 30.
ware de aplicación se ejecuta de una manera conveniente ISBN 0-201-50480-4.
[13]
y eficiente. Además del sistema operativo, el softwa- [9] Tanenbaum, Andrew S. (1990). Structured Computer Or-
re de sistema incluye programas utilitarios que ayudan a ganization, Third Edition. Prentice Hall. p. 11. ISBN 0-
manejar y configurar la computadora. Si un programa no 13-854662-2. (en inglés).
es software de sistema entonces es software de aplicación.
El middleware también es un software de aplicación que [10] Silberschatz, Abraham (1994). Operating System Con-
acopla el software de sistema con la interfaz de usuario. cepts, Fourth Edition (en inglés). Addison-Wesley. p. 6.
También son software de aplicación los programas utili- ISBN 0-201-50480-4.
tarios que ayudan a los usuarios a resolver problemas de [11] Silberschatz, Abraham (1994). Operating System Con-
aplicaciones, como por ejemplo la necesidad de ordena- cepts, Fourth Edition (en inglés). Addison-Wesley. p. 100.
miento. ISBN 0-201-50480-4.

[12] Akhter, Shameem (2006). Multi-Core Programming (en


inglés). Richard Bowles (Intel Press). pp. 11-13. ISBN 0-
4 Véase también 9764832-4-6..

• Algoritmo para la relación entre los programas in- [13] Silberschatz, Abraham (1994). Operating System Con-
cepts, Fourth Edition (en inglés). Addison-Wesley. p. 1.
formáticos y algoritmos
ISBN 0-201-50480-4.
• Aplicación informática

• Archivo cabra para un tipo específico de programa 6 Bibliografía


informático utilizado solo para liberar y estudiar los
efectos de virus informáticos en los sistemas físicos
• Knuth, Donald E. (1997). The Art of Computer Pro-
y virtuales
gramming, Volume 1, 3rd Edition (en inglés). Bos-
• Estructura de datos ton: Addison-Wesley. ISBN 0-201-89683-4.

• Inteligencia artificial • Knuth, Donald E. (1997). The Art of Computer Pro-


gramming, Volume 2, 3rd Edition (en inglés). Bos-
• Sistema multi-agente ton: Addison-Wesley. ISBN 0-201-89684-2.
• Software • Knuth, Donald E. (1997). The Art of Computer Pro-
gramming, Volume 3, 3rd Edition (en inglés). Bos-
ton: Addison-Wesley. ISBN 0-201-89685-0.
5 Referencias
[1] Stair, Ralph M., et al. (2003). Principles of Information 7 Enlaces externos
Systems, Sixth Edition (en inglés). Thomson Learning, Inc.
p. 132. ISBN 0-619-06489-7. • Definición de “Programa” en Webopedia (en inglés)
[2] Silberschatz, Abraham (1994). Operating System Con-
• Definición de “Computer Program” en dictio-
cepts, Fourth Edition (en inglés). Addison-Wesley. p. 58.
nary.com (en inglés)
ISBN 0-201-50480-4.

[3] «Algorithms and Computer Programming» (en inglés). • Esta obra contiene una traducción total derivada
Consultado el 8 de setiembre de 2014. de Computer program de Wikipedia en inglés, con-
[4] Wilson, Leslie B. (1993). Comparative Programming Lan- cretamente de esta versión, publicada por sus edi-
guages, Second Edition (en inglés). Addison-Wesley. p. 75. tores bajo la Licencia de documentación libre de
ISBN 0-201-56885-3. GNU y la Licencia Creative Commons Atribución-
CompartirIgual 3.0 Unported. infativapty
[5] Wilson, Leslie B. (1993). Comparative Programming Lan-
guages, Second Edition (en inglés). Addison-Wesley. p.
213. ISBN 0-201-56885-3.

[6] Wilson, Leslie B. (1993). Comparative Programming Lan-


guages, 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.
5

8 Origen del texto y las imágenes, colaboradores y licencias


8.1 Texto
• Programa informático Fuente: https://es.wikipedia.org/wiki/Programa_inform%C3%A1tico?oldid=93995532 Colaboradores: Ejmeza,
Taichi, Magister Mathematicae, Chobot, Vitamine, GermanX, Gaijin, The Photographer, Banfield, CEM-bot, Jorgelrm, Nagul, Baiji,
Jgomo3, Dorieo, Escarbot, RoyFocker, Cratón, Isha, JAnDbot, Jugones55, Gsrdzl, CommonsDelinker, Vsuarezp, Gacq, Humberto, Ama-
nuense, Idioma-bot, Pólux, Biasoli, Cinevoro, VolkovBot, Technopat, Queninosta, Matdrodes, Elabra sanchez, Shooke, Lucien leGrey,
Gerakibot, SieBot, PaintBot, Rigenea, Bigsus-bot, BOTarate, Mel 23, Tirithel, Javierito92, Marcecoro, HUB, Estirabot, Eduardosalg, Bo-
tellín, Leonpolanco, Alejandrocaro35, Botito777, Petruss, Açipni-Lovrij, UA31, SergioN, MARC912374, AVBOT, David0811, Angel
GN, SubSevenMoRpHeEuS, MarcoAurelio, NjardarBot, Diegusjaimes, Mikiguti, CarsracBot, Arjuno3, Saloca, Luckas-bot, Spirit-Black-
Wikipedista, Roinpa, Dangelin5, Axel.axel, Nixón, ArthurBot, SuperBraulio13, Xqbot, Jkbw, Igna, Botarel, D'ohBot, BOTirithel, Vubo,
AnselmiJuan, PatruBOT, KamikazeBot, Rudol0075, Foundling, EmausBot, Bachi 2805, Savh, ZéroBot, HRoestBot, Grillitus, Rubpe19,
Jcaraballo, MadriCR, AStarBot, MerlIwBot, Vagobot, MetroBot, BiTAlejandro, Elvisor, DanielithoMoya, Helmy oved, Makecat-bot, Elial-
bert94, Addbot, Balles2601, Amautita12, AVIADOR-bot, Jarould, Crystallizedcarbon, Kevin15jdr, Beromawiki, Ks-M9, Aldotron, Gru-
pouoc y Anónimos: 195

8.2 Imágenes
• Archivo:Dg-nova3.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/9/99/Dg-nova3.jpg Licencia: Copyrighted free use Co-
laboradores: Photograph taken by Qu1j0t3. Artista original: User Qu1j0t3 on en.wikipedia
• Archivo:Object-Oriented-Programming-Methods-And-Classes-with-Inheritance.png Fuente: https://upload.wikimedia.org/
wikipedia/commons/3/37/Object-Oriented-Programming-Methods-And-Classes-with-Inheritance.png Licencia: CC BY-SA 3.0
Colaboradores: Taking a screenshot, then editing using Paint.NET Artista original: Carrot Lord
• Archivo:USB_flash_drive.JPG Fuente: https://upload.wikimedia.org/wikipedia/commons/2/2c/USB_flash_drive.JPG Licencia: CC-
BY-SA-3.0 Colaboradores: ? Artista original: ?

8.3 Licencia del contenido


• Creative Commons Attribution-Share Alike 3.0

También podría gustarte