Anar al contingut

Programa informàtic

De L'Enciclopèdia, la wikipedia en valencià
Programa informàtic
Artícul principal → Software.


Un programa informàtic o programa de computadora és una seqüència d'instruccions o órdens basades en un llenguage de programació que una computadora interpreta per a resoldre un problema o una funció específica.[1][2] Este dispositiu requerix programes per a funcionar, per lo general, eixecutant les instruccions del programa en un processador central.[3]

El programa té un format eixecutable que la computadora pot utilisar directament per a eixecutar les instruccions. El mateix programa en el seu format de còdic font llegible per a humans, del com es deriven els programes eixecutables (per eixemple, compilados), li permet a un programador estudiar i desenrollar els seus algoritmes. Una colecció de programes de computadora i senyas relacionats es coneix com software.

Generalment, el còdic font ho escriuen professionals coneguts com programadorés de computadora.[4] Este còdic s'escriu en un llenguage de programació que seguix un dels següents dos paradigmas: imperatiu o declarativo, i que posteriorment pot ser convertit en un archiu eixecutable (usualment cridat un programa eixecutable o un binario) per un compilador i més vesprada eixecutat per una unitat central de processament. Per una atra part, els programes de computadora es poden eixecutar en l'ajuda d'un intérpret, o poden ser empotrats directament en hardware.

D'acort a les seues funcions, els programes informàtics es classifiquen en software de sistema i software d'aplicació. En les computadores modernes, al fet d'eixecutar varis programes de forma simultànea i eficient, li'l coneix com multitarea.

Programació

[editar | editar còdic]
Artícul principal → Programació.


#include <stdio.h>
#include <conio.h>

int main(void) {
    printf("Hola Món!
");
    getch();
    return 0;
}
Còdic font del programa Hola món escrit en el Llenguage de programació C
public class HelloWorld {
    public static void main(String[] args){
        System.out.println("Hola Món!");
    }
}
Còdic font del programa Hola món escrit en el Llenguage de programació Java
using System;

class Program {
    static void Main(string[] args) {
        Console.WriteLine("Hola Món!");
    }
}
Còdic font del programa Hola món escrit en el Llenguage de programació C#

La programació de computadores és el procés iterativo d'escriure o editar còdic font. Dita edició implica provar, analisar i perfeccionar, i, a voltes, coordinar en atres programadors, en el cas d'un programa desenrollat en conjunt. Una persona que practica esta tècnica se li coneix com programador de computadores, desenrollador de software, o codificador. El procés, a voltes a llarc determini, de programació de computadores normalment li'l coneix com desenroll de software. El terme ingenieria de software s'està convertint en molt popular, ya que esta activitat és vista com una disciplina d'ingenieria.

Paradigmes

[editar | editar còdic]

Els programes d'ordenador es poden classificar segons el paradigma del llenguage de programació utilisat per a produir-los. Dos dels principals paradigmes són imperatius i declarativos.


Els programes escrits en un llenguage imperatiu especifiquen un algoritme utilisant declaracions, expressions i informes.[5] Una declaració associa un nom de variable a un tipo de senyes. Per eixemple: var x: integer; . Una expressió produïx un valor. Per eixemple: 2 + 2 produïx 4. Per últim, una declaració pot assignar una expressió a una variable o usar el valor d'una variable per a alterar les estructures de control del programa. Per eixemple: x := 2 + 2; if x = 4 then fer_alguna cosa(); Una crítica dels llenguages imperatius és el efecte secundari d'una sentència d'assignació en una classe de variables cridades variables no locals.[6]

Els programes escrits en un llenguage declarativo especifiquen les propietats que tenen o que deuen complir-se per a l'eixida. No especifiquen detalls expressats en térmens de fluix de control de la màquina d'eixecució pero sí de les relacions matemàtiques entre els objectes declarats i les seues propietats. Els llenguages funcionals i llògics són dos àmplies categories de llenguages declarativos. El principi darrere dels llenguages funcionals (com Haskell) és el de no permetre efectes secundaris, #lo que fa que siga més fàcil per a raonar sobre els programes com si es tractaren de funcions matemàtiques.[6] El principi darrere dels llenguages llògics (com Prolog) és definir el problema a ser resolt - la meta - i deixar la solució detallada al propi sistema Prolog.[7] L'objectiu es definix proporcionant la llista de sub-objectius. Després, cada subobjetivo es definix més dalt, proporcionant la llista de les seues sub-objectius, etc. Si la ruta de sub-objectius no troba una solució, llavors eixe subobjetivo es retrocedix i una atra via s'intenta sistemàticament.

La forma en que es crea el programa pot ser textual o visual. En un programa de llenguage visual, els elements en lloc de ser textualment especificats són manipulats gràficament.

Compilado o interpretant

[editar | editar còdic]

Un programa de computadora baixe la forma de llenguage de programació de computadores llegible per un humà, li'l crida còdic font. Dit còdic font es pot convertir en una image eixecutable per un compilador o eixecutar-se immediatament en l'ajuda d'un intérpret.

Qualsevol dels programes compilados o interpretats poden ser eixecutats en un procés per lots sense intervenció humana, pero els programes interpretats li permeten a l'usuari escriure comandos en una sessió interactiva. En este cas, els programes són els comandos separats, l'eixecució dels quals es produïx secuencialmente, i per lo tant simultàneament. Quan s'utilisa un llenguage per a donar órdens a una aplicació de software (com un shell d'Unix o una atra interfaç de llínea de comandos), se li crida un llenguage de scripts.


Els compiladors s'utilisen per a traduir el còdic font d'un llenguage de programació, ya siga en còdic objecte o còdic màquina.[8] El còdic objecte d'objecte necessita processament adicional per a convertir-se en còdic màquina, i el còdic màquina és el còdic natiu de l'unitat central de processament, llest per a la seua eixecució. Els programes de computadora compilados es coneixen comunament com a eixecutables, imàgens binarias, o simplement com binarios —una referència al format d'archiu binario utilisat per a almagasenar el còdic eixecutable—.

Els programes de computadora —interpretats en un lot o una sessió interactiva— o be es descodifican i després eixecutats immediatament o es decodifican en alguna representació intermija eficient per a l'eixecució futura. BASIC, Perl i Python són eixemples de programes de computadora eixecutats immediatament. Per una atra part, els programes de computadora de Java es compilan abans d'hora i s'almagasena com un còdic independent de la màquina cridat bytecode. Llavors, dit bytecode és eixecutat a petició d'un intérpret cridat màquina virtual.

La principal desventaja dels intérprets és que els programes de computadora corren més llent que quan són compilados. L'interpretació de còdic resulta més llenta que l'eixecució de la versió compilada perque l'intérpret deu decodificar cada declaració cada volta que es carrega i després realisar l'acció desijada. No obstant, el desenroll de software pot ser més ràpit usant un intérpret perque la prova és immediata quan s'omet el pas de la compilació. Una atra desventaja dels intérprets és que deu estar present a lo manco un en la computadora durant l'eixecució del programa de computadora. Pel contrari, els programes de computadora compilados no necessiten compilador present durant l'eixecució.

No es requerixen propietats d'un llenguage de programació si s'està compilado exclusivament o interpretant-se exclusivament. Per lo general, la classificació reflectix el método més popular d'eixecució del llenguage. Per eixemple, BASIC es considera un llenguage interpretat i C un llenguage compilado, a pesar de l'existència de compiladors de BASIC i intérprets de C. Alguns sistemes utilisen compilació en temps d'eixecució (JIT) per mig de la qual les seccions de la font es compilan 'sobre la marcha' i s'almagasenen per a eixecucions posteriors.

Programes que es automodifican

[editar | editar còdic]

Un programa informàtic en eixecució, normalment és tractat com alguna cosa diferent dels senyas en els quals opera. No obstant, en alguns casos esta distinció és ambigua, especialment quan un programa es modifica a sí mateixa. El programa modificat és eixecutat secuencialmente com a part del mateix programa. En el cas de programes escrits en còdic màquina, llenguage ensamblador, Lisp, d, COlOL, PL/9 i Prolog i JavaScript (la funció eval), entre uns atres, és possible tindre còdic que es automodifica.

Eixecució i almagasenament dels programes

[editar | editar còdic]

Típicament, els programes s'almagasenen en una memòria no volàtil (per eixemple un disc), per a que després l'usuari de la computadora, directa o indirectament, solicite la seua eixecució. Al moment de dita solicitut, el programa és carregat en la memòria d'accés aleatori o RAM de l'equip, baixe el control del software cridat sistema operatiu, el qual pot accedir directament al processador. El processador eixecuta (corre) el programa, instrucció per instrucció fins que termina. A un programa en eixecució se li sol cridar també procés. Un programa pot terminar la seua eixecució en forma normal o per causa d'un error, dit error pot ser de software o de hardware.

Programes empotrats en hardware

[editar | editar còdic]

Alguns programes estan empotrats en el hardware. Una computadora en arquitectura de programes almagasenats requerix un programa inicial almagasenat en el seu ROM para arrancar. El procés d'arrancada és per a identificar i inicializar tots els aspectes del sistema, des dels registres del processador, controladors de dispositius fins al contingut de la memòria RAM.[9] Seguit del procés d'inicialización, este programa inicial càrrega al sistema operatiu i inicializa al contador de programa per a escomençar les operacions normals. Independent de la computadora, un dispositiu d'hardware podria tindre firmware empotrat per al control de les seues operacions. El firmware s'utilisa quan s'espera que el programa canvie en rares ocasions o mai, o quan el programa no deu perdre-se quan hi haja absència d'energia.[10]

Programes carregats manualment

[editar | editar còdic]

Històricament, els programes eren carregats al processador central de forma manual per mig d'interruptors. Una instrucció es representava per una configuració d'estats d'interruptors d'obert o tancats. Despuix d'establir la configuració, s'eixecutava un botó d'eixecució. Este procés era repetitiu. Aixina mateix, els programes es carregaven manualment per mig d'una cinta de paper o targetes perforades. En acabant de que es carregava el programa, s'establia la direcció d'inici per mig d'interruptors i es pressionava el botó d'eixecució.[11]

Programes generats automàticament

[editar | editar còdic]

La programació automàtica és un estil de programació que crea còdic font per mig de classes genèriques, prototips, plantilles, aspectes, i generadors de còdic per a aumentar la productivitat del programador. El còdic font es genera en ferramentes de programació tal com un processador de plantilla o un IDE. La forma més simple d'un generador de còdic font és un processador macro, tal com el preprocesador de C, que reemplaça patrons de còdic font d'acort a regles relativament simples.

Un motor de software dona d'eixida còdic font o llenguage de marcat que simultàneament es torna l'entrada d'un atre procés informàtic. Podem pensar com a analogia un procés manejant a un atre sent el còdic màquina cremat com a combustible. Els servidors d'aplicacions són motors de software que entreguen aplicacions a computadores client. Per eixemple, un software per a wikis és un servidor d'aplicacions que permet als usuaris desenrollar contingut dinàmic ensamblado a partir d'artículs. Les wikis generen HTML, CSS, Java, i Javascript els quals són interpretats per un navegador web.

Eixecució simultànea

[editar | editar còdic]


Molts programes poden eixecutar-se simultàneament en la mateixa computadora, fet al com li'l coneix com multitarea, podent-se conseguir per mig de mecanismes de software o de hardware. Els sistemes operatius moderns poden eixecutar varis programes a través del planificador de processos — un mecanisme de software per a commutar en freqüència la cantitat de processos del processador de modo que els usuaris puguen interactuar en cada programa mentres estos estan corrent.[12] També es pot conseguir la multitarea per mig de l'hardware; les computadores modernes que usen varis processadors o processadors en varis núcleus poden córrer molts programes al mateix temps.[13]

Categories funcionals

[editar | editar còdic]

Els programes es poden categorizar aplicant criteris funcionals. Estes categories funcionals són software de sistema i software d'aplicació. El software de sistema inclou al sistema operatiu el qual acopla el hardware en el software d'aplicació.[14] El propòsit del sistema operatiu és proveir un ambient en el qual el software d'aplicació s'eixecuta d'una manera convenient i eficient.[14] Ademés del sistema operatiu, el software de sistema inclou programes utilitaris que ajuden a manejar i configurar la computadora. Si un programa no és software de sistema llavors és software d'aplicació. El middleware també és un software d'aplicació que acopla el software de sistema en la interfaç d'usuari. També són software d'aplicació els programes utilitaris que ajuden als usuaris a resoldre problemes d'aplicacions, com per eixemple la necessitat d'ordenament.

Vore també

[editar | editar còdic]

Referències

[editar | editar còdic]
  1. https://cursos.aiu.edu/Programacion%30de%20Computadores/PDF/Tema%301.pdf (Espanyol)
  2. Erro en la cita: L'element <ref> no és vàlit; puix no n'hi ha una referència en text nomenada pis-ch4-p142
  3. Erro en la cita: L'element <ref> no és vàlit; puix no n'hi ha una referència en text nomenada osc-ch3-p58
  4. «Algorithms and Computer Programming» (en anglés). Archivat des d'el original, el 8 d'agost de 2018. Consultat el 8 de setembre de 2014.
  5. Wilson (1993). Comparative Programming Languages, Second Edition (en anglés), Addison-Wesley, pp. 75. ISBN 0-201-56885-3.
  6. 6,0 6,1 Wilson (1993). Comparative Programming Languages, Second Edition (en anglés), Addison-Wesley, pp. 213. ISBN 0-201-56885-3.
  7. Wilson (1993). Comparative Programming Languages, Second Edition (en anglés), Addison-Wesley, pp. 244. ISBN 0-201-56885-3.
  8. «What is a Compiler?» (en anglés). Consultat el 10 de giner de 2012.
  9. Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition (en anglés), Addison-Wesley, pp. 30. ISBN 0-201-50480-4.
  10. Tanenbaum, Andrew S. (1990). Structured Computer Organization, Third Edition, Prentice Hall, pp. 11. ISBN 0-13-854662-2. (en anglés).
  11. Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition (en anglés), Addison-Wesley, pp. 6. ISBN 0-201-50480-4.
  12. Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition (en anglés), Addison-Wesley, pp. 100. ISBN 0-201-50480-4.
  13. Akhter, Shameem (2006). Multi-Core Programming (en anglés), Richard Bowles (Intel Press), pp. 11-13. ISBN 0-9764832-4-6..
  14. 14,0 14,1 Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition (en anglés), Addison-Wesley, pp. 1. ISBN 0-201-50480-4.

Bibliografia

[editar | editar còdic]
  • Knuth, Donald I. (1997). The Art of Computer Programming, Volume 1, 3rd Edition (en anglés), Boston: Addison-Wesley. ISBN 0-201-89683-4.
  • Knuth, Donald I. (1997). The Art of Computer Programming, Volume 2, 3rd Edition (en anglés), Boston: Addison-Wesley. ISBN 0-201-89684-2.
  • Knuth, Donald I. (1997). The Art of Computer Programming, Volume 3, 3rd Edition (en anglés), Boston: Addison-Wesley. ISBN 0-201-89685-0.

Enllaços externs

[editar | editar còdic]


Referències

[editar | editar còdic]