martes, 14 de octubre de 2014

SOFTWARE



SOFTWARE, PROGRAMAS, ARCHIVOS Y MÓDULOS

Llamamos software a las aplicaciones que determinan las tareas que vamos a efectuar en la computadora. Unas aplicaciones, como Microsoft Word, nos a^Tjdan a crear documentos, otras a elaborar presentaciones o a preparar la contabilidad de un negocio En genera], llamamos software al conjunto de instrucciones C|ue dirige a! hardware. E! software consiste en programas, módulos de soporte
y archivos de datos, los cuales en conjunto proporcionan a la computadora las instrucciones y datos necesarios para desempeñar una determinada tarea, como la producción de documentos, edición de videos, navegación por Internet, etcétera.



El software incluye distintos tipos de archivos, de los cuales algunos son programas. Un programa es un conjunto de instrucciones que le indica a la computadora la forma en que debe llevar a cabo una tarea. Dentro del conjunto de archivos contenidos en una aplicación existe un archivo p r i n c i p a l ejecutable; se trata del programa que debemos ejecutar si deseamos iniciar la aplicación de software. También podemos encontrar otro archivo ejecutable que contiene el programa para instalar inicialmente la aplicación, así como el programa ejecutable
pata desinstalar la aplicación de nuestra computadora. Los archivos ejecutables se identifican por la extensión .exe.

 El módulo de soporte proporciona u n conjunto de instrucciones auxiliares que se utilizan junto con el programa principal del software (la aplicación). Este módulo .se encuentra almacenado dentro de su propio archivo y, a diferencia de u n archivo de programa, no está diseñado para que lo ejecute el usuario del sistema, sino que lo utiliza el programa principal cuando así lo requiere.

El módulo de datos contiene cualquier conjunto de datos necesarios para desempeñar alguna tarea que no proporciona el usuario. For ejemplo, Word re\nsa que las palabras estén deletreadas correctamente al comparar las palabras del documento con las de u n diccionario almacenado en el archivo de dalos. Éste es el módulo de datos que se incluye en el software de la aplicación.

Casi todas las aplicaciones de software incluyen una gran cantidad de archivos de los tres tipos. Dichas aplicaciones deben incluir por lo mcTios un archivo de programa ejecutable (exe), varios módulos de soporte y uno o más módulos de datos.

La palabra software puede parecer engañosa, ya que se considera a éste como los componentes
de ia computadora que no son hardware. En este contexto, el software también debe incluir datos
utilizados por el usuario como serian sus documentos o fotografías. Actualmente la tendencia es
llamar a los datos del usuario "datos", y "software" al conjunto de archivos contenidos eir una aplicación
o paquete.

LENGUAJES DE PROGRAMACIÓN

Programadores
Los programadores de computadoras son las personas que escriben las instrucciones de los programas o módulos de soporte que se convierten en los componentes de una aplicación de software o paquete de software, que es el producto terminado que distribuyen los programadores mismos o las empresas productoras. Estas compañías se especializan en empacar, comercializar
y vender el software.

 Antes las empresas, las organizaciones y los individuos tenían que escribir el software que deseaban utilizar; hoy día la mayor parte de los negocios adquieren software comercial para ahorrarse tiempo y gasto que suponen escribir su propio software.

 Casi todo el software está diseñado para crear un ambiente basado en tareas, el cual incluye el diseño de la pantalla, los medios para captar las órdenes y los datos del usuario, las especificaciones para el proceso de datos y u n método para mostrar los resultados en pantalla.

Un lenguaje computacional proporciona las herramientas que el programa utiliza para producir el software. El lenguaje ayuda al programador a generar una enorme lista de instrucciones llamada  código fuente, que es el conjunto de instrucciones escritas en algún lenguaje computacional que define con todo detalle e! ambiente del software, es decir, la presentación visual, la forma en que el usuario introducirá las  órdenes o comandos v la modalidad en que se manejarán los datos.

Lenguaje maquínai, de bajo nivel y de alto nivel
Los programas que el procesador puede ejecutar deben estar en el lenguaje nativo del procesador, llamado lenguaje maquinal, es decir, cada instrucción debe estar en código binario y directamente relacionada con los circuitos del procesador. A este tipo de lenguajes se les clasifica como lenguajes de bajo nivel, los cuales son muy difíciles de entender y exigen que ios programadores codifiquen detalladamente las instrucciones en el lenguaje nativo de la máquina. En la actualidad, la mayoría de los programadores prefieren utilizar lenguajes de alto nivel, como C + + , java, COBOL y Visual Basic, a los que clasifican en función de su legibilidad; esto quiere decir que en la medida que el lenguaje se parezca más al lenguaje maquina! se le considera de bajo nivel. Por el contrario, los lenguajes de alto nivel utilizan enunciados parecidos al inglés que hasta los programadores novatos pueden dominar sin necesidad de contar con grandes conocimientos de ese idioma.

Compiladores y código objeto
Expresar insinicciones conrpletamente en código binario es un proceso demasiado lento, dificil y que está suieto a errores, aun para los más hábiles y experimentados programadores. Los lenguajes de programación se han diseñado para escribir instnicciones parecidas a las de un lenguaje humano, generalmente el inglés, que las computadoras pueden convertir en código binario mediante programas denominados compiladores. .A las instrucciones resultantes en código binario se les denomina código objeto o maquinal, y después del proceso de compilación se genera un nuevo archivo con estas instrucciones Cuando adquirimos un paquete de aplicaciones de software, la mayor parte de
los archivos contenidos en el CD se encuentran compilados, de manera que contienen instrucciones en código maquinal para que el procesador las ejecute; luego, la diferencia entre código fuente y código objeto es que en el primero las instrucciones están escritas en un lenguaje de programación, y en el segundo en lenguaje binario o maquinal.
Intérprete y guiones {scrípts)
Hay una opción diferente al proceso de compilar, consistente en que un intérprete convierte una instrucción tras otra del código fuente al código objeto. Este método es más comían en los programas basados en la Web (páginas de Internet) llamados guiones o scripts, que se escriben en lenguajes como JavaSciipt y VBScript. Los guiones o scripts son instrucciones de alto nivel que llegan a nuestra computadora como parte de la página Web. El intérprete lee la primera instrucción del guion, la convierte en lenguaje maquinal y después la envía al procesador para su ejecución; después, el intérprete convierte la siguiente instrucción, etc. Para ejecutar un guion, la computadora debe contar con el programa intérprete correspondiente. Es común que estos programas se incluyan con el navegador de software o puedan descargarse de la Web. '

Para resumir, consideremos el siguiente ejemplo: supongamos que deseamos ejecutar el programa para elaboración de presentaciones PowerPoint en nuestra computadora, la cual cuenta con el sistema operativo Windows; así, cuando le damos la orden a Windows de que abra el programa, nuestra selección activa el archivo principal ejecutable llamado Powerpnt.exe, el cual se encuentra almacenado en nuestro disco duro en formato compilado. Una copia de las instrucciones de este programa se carga en la memoria RAM para que el procesador las ejecute. Al iniciar el proceso, se abre la ventana del programa PowerPoint, muestra en pantalla el menú y los controles gráficos para
la edición de la presentación; el programa espera a que seleccionemos una opción del menú o control haciendo clic con el ratón en una de estas opciones. Con base en nuestra selección, el programa sigue sus instrucciones y ejecuta la acción especificada en el programa. Muchas de las instrucciones para estas acciones se incluyen en el archivo principal ejecutable, pero tal vez sea necesario llamar a




EVOLUCIÓN DEL SOFTWARE
En los inicios de la era de la computación, programar una computadora significaba alimentar la máquina con 1 y O para obtener los resultados deseados. Con el tiempo los lenguajes han ido evolucionando y se parecen cada vez más al lenguaje humano, pues el objetivo siempre será controlar la máquina a partir de un código (programa) cada vez más sencillo para el hombre. Lo ideal sería programar
las computadoras en e1 mismo lenguaje en que se comunica el programador; por desgracia, las computadoras attn no son tan sofisticadas como para entender el lenguaje natural de las personas.


Categorías de lenguajes de programación
 Los lenguajes de programación se clasifican en dos categorías principales: lenguajes de bajo nivel v lenguajes de alto nivel: asimismo, se clasifican por generación y para dirigirla.

 Lenguajes de bajo nivel
un lenguaje de bajo nivel normalmente incluye comandos específicos para una familia de CPLJ o para un determinado procesador. Estos lenguajes exigen que el programador escriba las instrucciones para el nivel más bajo del hardware, es decir, para los elementos específicos del hardware como el procesador, los registros y las ubicaciones de la memoria RAM. Los lenguajes de bai nivel
incluyen los lenguajes maquinales y los lenguajes ensambladores.

 Lenguajes de alto nivel
Un lenguaje de alto nivel utiliza palabras  gramática basadas en lenguajes humanos para proporcionar lo que los científicos de la computación llaman "nivel de abstracción", lo que oculta la capa del lenguaje ensamblador o maquinal de bajo nivel, haciendo más fácil y entendible la programación.
Estos lenguajes de alto nivel como COBOL., BASIC, java y C, hacen que el proceso de programar sea más fácil, pues reemplazan cadenas ilegibles de 1 y O o comandos elípticos en lenguaje ensamblador por comandos entendibles como PRINT o WRÍTE. Los lenguajes de alto nivel eliminan muchas líneas de código al sustituir una sola instrucción de alto nivel por múltiples instrucciones de bajo nivel; por ejemplo, instrucción de alto nivel suma 7 + 3 y coloca el resultado en la variable Total

Evolución De Los Lenguajes De Bajo A Alto Nivel
Las primeras computadoras se programaban sin lenguajes de programación; los técnicos alambraban los circuitos de la computadora a fin de prepararla para cada tarea de procesamiento. Después surgió la idea de almacenar los programas en la memoria de la computadora, y esto abrió camino para que se escriba a una serie de comandos y los cargaran en la computadora para ejecutarlos. Los lenguajes de programación inicialmente eran muy primitivos, pero evolucionaron luego de varias generaciones hasta convertirse en los lenguajes actuales.


Lenguajes de segunda generación

Un lenguaje ensamblador permite que los programadores utilicen palabras de comando abreviadas, llamadas mnemónicos, como LDA para load, en lugar de los 1 y O que se utilizan en los lenguajes maquinales. Cuando se introdujeron los lenguajes ensambladores, éstos mejoraron en forma significativa los lenguajes maquinales, por lo que llegó a conocérseles como lenguajes de segunda generación. Como sucede con el lenguaje maquinal, el lenguaje ensamblador se clasifica de bajo nivel porque es específico de la máquina para la que se creó, y cada comando en lenguaje ensamblador corresponde a una instrucción en lenguaje maquinal. El lenguaje ensamblador es útil cuando un programador desea manejar directamente lo que sucede en el nivel del hardware. En la actualidad
los programadores utilizan lenguajes ensambladores para escribir software de sistema como compiladores, sistetr.as operativos y controladores de dispositivos

Lenguajes de tercera generación

Cuando se originaron los lenguajes de alto nivel en los años 50, se les denominó lenguajes de tercera veneración, porque traían una importante mejora en relación con los lenguajes maquinales y ensamblador. Estos lenguajes utilizaban palabras de comando fáciles de recordar, como Í'RIN 1 e INPUI, y ocupan el lugar de \'arias líneas de mnemónicos en lenguaje ensamblador o de interminables cadenas
de 1 )' O en lenguaje maquinal. Los lenguajes de tercera generación, como COBCL y FORTRAN, se utilizaron principalmente en los negocios y para aplicaciones científicas. Pascal y BASIC fueron lenguajes muy populares en la enseñanza. El lenguaje C continúa siendo popular actualmente para
el desarrollo de aplicaciones de software y de sistema (por ejemplo, Microsoft Windows y Linux se crearon en este lenguaje).

Muchos científicos de la computación consideraban que los lenguajes de tercera generación eliminaban los errores de programación. Sin duda, los errores fueron menos Recuentes y el tiempo para desarrollar programas disminuyó en forma significativa; sin embargo, los programadores que utilizan lenguajes de tercera generación aún cometen muchos errores. Pese  a esto, el desarrollo de
Lenguajes computacionales siguió progresando.

Lenguajes de cuarta generación
En 1969 los científicos de la computación empezaron a desarrollar lenguajes de alto nivel a los que se llamó lenguajes de cuarta generación; los cuales se parecen más a los lenguajes humanos o 'naturales" que a los de tercera generación. Los lenguajes de cuarta generación, como SQL o RPG-I, eliminan muchas de las estrictas reglas de pronunciación y gramática que complican a los lenguajes de
tercera generación, por lo que se utilizan para aplicaciones de bases de datos; un comando sencillo en SQL puede reemplazar muchas líneas de código de tercera generación.


Lenguajes de quinta generación
En 1982 un grupo de investigadores japoneses empezó a trabajar en un proyecto en el que se utilizaba Prolog (un lenguaje de programación basado en un modelo de programación declarativa que describiremos más adelante). Algunos expertos clasificaron al Prolog y otros lenguajes declarativos como lenguajes de quinta generación; otros no están de acuerdo con esta clasificación, pues para ellos los lenguajes de quinta generación son los que permiten que los programadores utilicen herramientas gráficas o visuales para construir programas, en lugar de escribir líneas de código.

Unos lenguajes de programación soportan un solo paradigma mientras que otros (llamados lenguajes multiparadigma) soportan más de un paradigma; etr el siguiente cuadro se aprecia una breve  descripción de los paradigmas de- programación más populares en la actualidad


Lenguajes De Programación Populares
Cuando se trata de escribir un programa para resolver una determinada tarea, es necesario que seleccionemos el lenguaje de programación apropiado para la aplicación que vayamos a desarrollar y considerar que el lenguaje elegido cuente con las características necesarias para programar la tarea propuesta y además de que podamos recurrir a alguna persona con experiencia en dicho lenguaje. No podemos decir que exista un lenguaje mejor que otro, ya que cada uno cuenta con características propias que le dan ventajas sobre los demás para determinado tipo de aplicación. A continuación presentamos una lista de los lenguajes más populares en la actualidad

BASIC y Visual Basic

BASIC y Visual Basic son actualmente los lenguajes de programación más populares, pues son fáciles de utilizar y hay versiones disponibles para distintos tipos de computadoras. Beginner's all-pinpose symíwíic insínictioii code (BASIC por sus siglas en inglés) se creó como un lenguaje de alto nivel basado en procedimientos. Las primeras versiones eran demasiado limitadas como
para producir software comercial sofisticado; en cambio. Visual Basic surgió como un lenguaje completo y poderoso que puede utilizarse para proyectos de programación profesionales, y es muy útil para crear programas guiados por eventos con interfaz gráfica para el usuario. La versión más reciente, llamada Visual Basic.NET, incorpora la capacidad orientada a objetos y soporte para
datos XML; además, Visual Basic para Aplicaciones (VBA por sus siglas en inglés) es una parle de Visual Basic que puede utilizarse para automatizar tareas de algunas aplicaciones como Microsoft Word, Excel, Access y Power point

Es un lenguaje basado en procedimientos en y en compilador que proporciona comandos de alto nivel y también de bajo nivel para accesar al hardware. Esta dualidad ofrece bastante flexibilidad a los programadores para escribir sus programas.  Como resultado, programadores experimentados de C pueden hacer sus programas rápida y eficazmente; sin embargo, esta flexibilidad puede hacer que los programas en C resulten difíciles de entender, rastrear y mantener.

C+ +

C + + es una versión orientada a objetos del lenguaje C. Muchos expertos opinan que la naturaleza de la orientación a objetos del C + + hace que los programadores sean más productivos. Definitivamente, para programar en un lenguaje orientado a objetos se necesita una perspectiva totalmente diferente a la de la programación basada en procedimientos, por lo que a los programadores
de C se les dificulta incorporar a sus programas la orientación a objetos que incluye el C++.

C#{C Sharp)

C# (C Sharp) es un lenguaje desarrollado por Microsoft y que se deriva del C+ +. Incluye las características de orientación a objetos de C+ + y pemite desarrollar programas confiables para Internet, Los programas escritos en este lenguaje se compilan dejando instrucciones intermedias (no son maquinales atan) que se graban en un archivo, después otro módulo llamado common ¡anguage mntime
(CLR por sus siglas en inglés) compila rápidamente estas instrucciones, lo que da por resultado instrucciones maquinales para la ejecución del programa. Los compiladores de los lenguajes Visual Basic.NET, Microsoft C + + y C# producen el mismo código intermedio y utilizan el mismo CLR para que los programadores puedan escribir a Sí en cualquier lenguaje y producir el mismo resultado.
Además, estos tres lenguajes se encuentran integrados en Microsoft Visual Studio, el cual es un ambiente de programación que permite a los programadores efectuar sus programas en forma visual, lo que facilita la programación con una interfaz gráfica.

COBOL

COBOL es una abreviatura de common business oriented language. Este lenguaje de alto nivel basado en procedimientos se desarrolló en 1958 para resolver problemas en los negocios, pues los lenguajes que existían (maquinal, ensamblador y FORTRAN) no eran los adecuados para las aplicaciones de
Negocios . Un esfuerzo conjunto de profesionales de la computación, fabricantes de hardware y el gobierno estadounidense permitieron la introducción de este lenguaje, el cual utilizaron como su lenguaje principal más de dos tercios de los usuarios de mainframes en el mundo. Hoy día, COBOL pocas veces se utiliza para desarrollar nuevos programas; los programadores se enfocan más bien en el mantenimiento de los programas antiguos.

FORTRAN

FORTRAN es una abreviatura de formula translator. Este lenguaje es el superviviente más antiguo de los lenguajes de alto nivel; se diseñó originalmente en 1954 para resolver problemas científicos, matemáticos y de ingeniería que exigían cálculos numéricos repetitivos y fórmulas complejas, y pronto se popularizó por su eficiencia, rapidez y utilización de memoria. También ofrecía una librería de subrutinas reprogramadas que los usuarios podían incorporar en sus propios programas; por estas razones hay un amplio grupo de científicos, matemáticos e ingenieros que aún lo utilizan para el manejo de números.


JAVAyJ+ +

JAVA y 1 + + s(5n lenguajes de alto nivel, orientados a objetos y basados en C + + , pero optimizados para el desarrollo de aplicaciones de Internet. Los programadores utilizan estos lenguajes para crear aplicaciones complejas y también pequeños programas llamados applets. Java es un lenguaje muy
popular entre estudiantes de ciencias computacionales. la diferencia entre Java y j + + es que Java no depende de la plataforma, lo que significa que los programas en Java pueden ejecutarse en diíe-

JavaScript
JavaSaipt no debe confundirse con Java, aunque ofrece un subconjunto de características de Java. Este código se encuentra dentro de un documento HTML que el navegador interpreta al recibir la página Web, Este lenguaje se utiliza principalmente para crear páginas Web de naturaleza interactiva.

LISP
LISP (abreviatura de List processor) es un lenguaje que se desarrolló en 1958 en el MIT; de ser un lenguaje para científicos teóricos, ha llegado a convertirse en una herramienta importante que se utiliza para construir programas de inteligencia artificial. Se basa en la premisa de que las deducciones lógicas pueden presentarse y manejarse por medio de listas. LISP se emplea actualmente en sistemas expertos y programas de lenguaje natural.


Prolog
Prolog es un lenguaje de programación declarativo que se utiliza para propósitos de inteligencia artificial. Como sucede con los lenguajes de cuarta generación, este lenguaje no se basa en procedimientos.


Pasca!
pascal se diseñó  en 1971 para ayudar a los estudiantes a aprender a programar computadoras. Se trata de un lenguaje de alto nivel, basado en procedimientos y compilado; aunque se enfoca en la programación estructurada, no se ha adoptado para aplicaciones profesionales y comerciales.


SQL
Slructiaed quay ¡ang}iage (SQL por sus siglas en inglés) se desarrolló con la finalidad de proporcionar un lenguaje estándar para la definición y el manejo de bases de datos. Es de alto nivel, declarativo, el cual permite que programadores y usuarios describan el tipo de información que desean obtener de la base de datos. Aunque la base de datos también puede manejarse por medio de
algún lenguaje basado en procedimientos como COBOL, se considera que SQL es más efectivo, ya que sus comandos se basan en actividades de bases de datos.


CARACTERÍSTICAS DE LOS LENGUAJES DE PROGRAMACIÓN

De 1950 a la fecha se han creado cientos de lenguajes para programar computadoras; algunos se han ideado con el propósito de facilitar el proceso de programación, otros con la finalidad de proporcionar un conjunto de comandos (órdenes para la computadora) efectivos para cierto tipo de aplicación
(de negocios o científica), y otros más se desarrollaron como herramientas para la enseñanza de la programación. A continuación se mencionan las características que describen el funcionamiento de los lenguajes y las tareas para las cuales es apropiado utilizar determinado lenguaje.



Lenguajes basados en procedimientos
En estos lenguajes las instrucciones  le indican a la computadora exactamente qué debe hacer; por ejemplo, si deseamos calcular el sueldo de u n empleado, tenemos que indicarle a la computadora que presente un mensaje en pantalla pidiendo al usuario que introduzca las horas que trabajó el empleado;
que otro mensaje en pantalla pida al usuario que introduzca el sueldo que percibe el empleado por hora y si el empleado trabajó menos de 48 horas, que multiplique el sueldo por las horas trabajadas para obtener el ingreso del empleado, pero si trabajó más de 48 horas, que calcule las horas extra y las multiplique por 2 (para pagar el doble); después que muestre otro mensaje pidiendo al usuario la que reste las deducciones del sueldo bruto, y por último que muestre el sueldo neto asi empleado en pantalla

Como se aprecia, estos lenguajes son útiles  para programas que siguen un algo ritmo de estructura lineal gradual, es decir, tienen un punto inicial y un punto de terminación. El flujo de la ejecución del principio al final del programa es esencialmente lineal; esto quiere decir que la computadora inicia con la primera instrucción y continúa la ejecución de las instrucciones una tras otra hasta llegar al final del programa.

Lenguajes orientados a objetos
Los lenguajes orientados a objetos se basan en u n modelo de la programación que u t i l i z a objetos. Un objeto es una entidad o elemento que un programa manipula. Por ejemplo, un botón en la pantalla es un objeto; no todos los objetos se representan como botones o gráficos en pantalla. Es decir, u n programa orientado a objetos útil para el registro de estudiantes en un curso puede incluir
Cursos, alumnos y maestros a manera de objetos. Los objetos se agrupan por clase. Una clase es la definición de sus objetos, así, la clase estudiante puede contener objetos denominados Juan Pérez, Julia Reyes, etc. El programador define una clase como una lista de atributos y métodos. U n atributo es una simple característica de la clase; por ejemplo, la clase estudiante tiene atributos como número de estudiante, nombre, carrera, dirección, saldo, etc. El método es cualquier comportamiento que un objeto desempeña. El método Registrar Alumno se ocupa de relacionar al alumno con el curso y el maestro del curso registrado, y el método PagarCurso se ocupa de modificar el saldo del estudiante para restar el pago efectuado.

Lenguajes declarativos ^
Un lenguaje declarativo permite que el programador escriba un programa mediante la especificación de un conjunto de estatutos y reglas que definen las condiciones para resolver el problema. Estos lenguajes incluyen un mecanismo que trabaja con las reglas para determinar una solución. El hecho de describir un problema y las reglas que conllevan a una solución hace hincapié en palabras
y no en fórmulas matemáticas; por esta razón, los lenguajes declarativos son útiles para programas que manejan ideas y conceptos en lugar de números. A diferencia de u n programa elaborado con un lenguaje basado en procedimientos, un programa elaborado con un lenguaje declarativo no le indica a la computadora cómo resolver el problema, sino que describe el problema.

Lenguajes HTML
Normalmente HTML se clasifica como un lenguaje de marcas (markup languagé). Éste se compone de "etiquetas" especiales que se insertan entre el texto; por ejemplo, insertamos etiquetas HTML como <C> y <\C> en u n documento para especificar que el bloque de texto que se encuentra entre dichas etiquetas deberá centrarse en el momento en que se muestre la página en el navegador.


Lenguaje de guiones
El lenguaje de guiones (o scñpts) define una tarea en forma de guión. Los guiones exigen que se ejecute una aplicación huésped, pues éstos no pueden ejecutarse como una aplicación independiente Los lenguajes de guiones como Visual Basic Applications (VBA) y JavaScript se encuentran disponibles para muchas aplicaciones de software entre las que se hallan procesadores de texto, hojas de
cálculo y bases de datos; también se pueden utilizar para automatizar tareas y crear macros dentro de las aplicaciones. Estos lenguajes son más fáciles de utilizar que otros lenguajes de programación, pero tienen menores capacidades y opciones de control. Son una buena opción para quienes no son programadores, o para programadores novatos que desean automatizar algunas tareas que desempeña  su aplicación de software.

Lenguajes de bajo nivel
Estos lenguajes exigen que el programador escriba las instrucciones para el nivel más bajo del hardware de la computadora, es decir, para los elementos específicos del hardware como el procesador, Necesita manejar directamente lo que suceda en nivel de hardware utilizan estos lenguajes para escribir software de sistemas como compiladores sistemas operativos y controladores de dispositivos. El lenguaje maquinal es un lenguaje de bajo nivel que el procesador ejecuta directamente, ya que sus instrucciones se representan por medio de combinaciones de los dígitos 1 y 0. Los lenguajes maquinales son muy difíciles de entender y manejar, y varían mucho de un procesador a otro. Los programadores los utilizaban en las primeras computadoras cuando todavía no se ha desarrollado  otros lenguajes.

Un lenguaje ensamblador es otro tipo de lenguaje de bajo nivel que utiliza comandos simples como LDA y S7A en lugar de I. y 0. Cada instrucción de un lenguaje de bajo nivel corresponde a una sola instrucción para el procesador, por ejemplo, una instrucción en un lenguaje ensamblador de bajo nivel como MMR MJ REGI le indica a la computadora que mueva un numero desde una localidad de la memoria RAM hacia un registro. Al codificar un lenguaje de bajo nivel es necesario proporciona varias instrucciones para indicarle a la computadora la forma en que debe desempeñar una simple operación como la suma de 2 números. La siguiente sección de programa, está escrita en lenguaje ensamblador y le indica a la computadora que sume 2 números:

Lenguajes de alto nivel
Un lenguaje de alto nivel permite que el programador utilice instrucciones más parecidas al lenguaje humano. Por ejemplo, para sumar dos números y dejar el resultado en la variable Total, en el lenguaje COBOL se utiliza la instrucción "ADD 2 TO 3 GIVING Total" en lugar de las seis instrucciones del lenguaje ensamblador que  se aprecian en la tabla anterior Cuando se crearon los lenguajes de alto nivel en los ai"!0s cincuenta, los científicos pensaban que se eliminarían los errores de programación, pero esto no sucedió, pues también ocurren errores de lógica y durante la ejecución; sin embargo, los lenguajes de alto nivel reducen significativamente los errores de programación, lo que permite escribir programas en un tiempo menor que con los lenguajes de bajo nivel. Los programas escritos
en lenguajes de alto nivel deben traducirse a instrucciones que la computadora pueda ejecutar; en consecuencia, la computadora debe "compilarlos" o "interpretarlos".



Lenguajes compilados
Un compilador traduce u n programa escrito en un lenguaje de alto nivel en instrucciones de bajo nivel para que el programa pueda ejecutarse. Los comandos que escribimos en un lenguaje de alto nivel se denominan código fuente; las instrucciones de bajo nivel que resultan de la compilación del código fuente se conocen como código objeto. Algunos compiladores producen archivos ejecutables que contienen instrucciones de código maquinal; otros producen archivos que contienen instrucciones de código intermedio

Lenguajes intermedios
Un lenguaje intermedio es un conjunto de instrucciones de bajo nivel que pueden recompilarse fácil y rápidamente en lenguaje maquinal; por ejemplo, cuando se compila el código fuente.


Byte code. Es le código se distribuye después a los propietarios de computadoras compatibles con PC o con Macintosh; luego el código (byte code) se compila en lenguaje maquinal por m e d i o de un software llamado máquina virtual de Java (IVM por sus siglas en inglés) cuando el programa se vaya a ejecutar La máquina virtual JVM de una PC compila el código bytecode en instrucciones de lenguaje
maquinal que puedan funcionar en un procesador Pentium. La máquina virtual J V M de una Macintosh contiene el código bytecode en lenguaje maquinal para procesadores Power PC.

Los programadores normalmente utilizan  lenguajes compilados para escribir programas que necesiten una buena velocidad de ejecución, entre los que se hallan aplicaciones, sistemas operativos y utilerías. La mayor parte de los lenguajes basados en procedimientos y orientados a objetos se compilan.



Lenguajes interpretados
Un lenguaje interpretado utiliza un interpretador en lugar de un compilador para crear el código que la computadora ejecutará. Cuando corremos un programa que se encuentra escrito en un lenguaje de este tipo, el interpretador del lenguaje lee una tras otra las instrucciones, las convierte en lenguaje maquinal y las ejecuta. Casi todos los lenguajes declarativos y de guiones utilizan un
interpretador en lugar de compilador Con el lenguaje interpretado no es necesario esperar a que se compile el programa, por lo que el proceso de pruebas exige menos tiempo, pero la ejecución de los programas escritos en estos lenguajes
se lleva más tiempo que en los programas compilados, porque  la computadora debe traducir cada instrucción conforme va ejecutando  un programa con muchos ciclos es particularmente ineficaz en un lenguaje interpretado porque las instrucciones que se encuentran en el ciclo tienen que traducirse cada vez que se ejecuta el ciclo.

Lenguajes dirigidos por eventos
un evento de un programa es una acción a la que el programa debe responder (por ejemplo, un clic del ratón o la presión de alguna tecla). Un lenguaje dirigido por eventos les facilita a los programadores la creación de programas que verifican y responden constantemente a u n conjunto de eventos. La mayor parte de los programas que utilizan interfaz gráfica son dirigidos por eventos, ya
que muestran controles en pantalla como los menúes y realizan una acción determinada cuando el usuario activa alguno de los controles.

 Para crear u n programa dirigido por eventos las líneas del código del programa se agregan a objetos gráficos como botones o iconos. Los usuarios manipulan el objeto para generar u n evento, como por ejemplo hacer clic en el botón "Aceptar"; el evento de clic hace c[ue se ejecuten las instrucciones  que se agregaron a ese objeto (botón "Aceptar").


 Componentes
 En la práctica, los programas orientados a objetos y dirigidos por eventos contienen muchos objetos que creó el diseñador del programa, pero también otros que se adquirieron posteriormente. Un componente es un objeto o módulo previamente escrito que los programadores pueden adaptar y agregar a
sus propios programas. Existen componentes para casi todos los lenguajes populares en la actualidad; por lo general, se denomina programación por componentes a aquella que utiliza componentes.

 Muchos componentes actúan como una "caja negra" porque el código del programa se encuentra compilado y por lo tanto, "oculto" a los programadores y también a los usuarios. A los programadores se les permite manipular las propiedades de un componente Una propiedad es cualquier característica de un componente que describe la forma en que éste aparecerá en pantalla, la forma
en que responderá a la actividad del ratón y lo que puede hacer con la salida. Como sucede con un  programa orientado a objetos, un componente acepta la entrada a manera de "mensajes" y utiliza estos mensajes para "efectuar esta actividad" mediante la elaboración de una tarea, como sería efectuar
un cálculo o desplegar un menú en pantalla.

Como ejemplo, supongamos que deseamos escribir u n software que dé seguimiento a la proporción de alumnos de primaria, secundaria y preparatoria de una escuela, ya que el director desea generar gráficos que comparen periódicamente la población de alumnos de cada nivel.

CATEGORÍAS DE SOFTWARE
Los programas que se han rechazado pata distintos propósitos pueden clasificarse en dos categorías; software de sistema y software de aplicación.



Software de sistema
Este software controla y coordina la operación del equipo que existe en un sistema computacional, lo que quiere decir que su principal propósito es ayudar al sistema de cómputo a monitorearse para funcionar eficazmente. El tipo de software de sistema más importante es un conjunto de programas llamado sistema operativo; se trata del nucleo de cualquier sistema de computación El .sistema operativo supervisa y controla todas las actividades de entrada, salida y procesamiento de un sistema de cómputo; además, e! hardware )• el software del sistema se controlan por medio del sistema operativo.

Software de aplicación
una vez que a un sistema computacional se le ha instalado el software de sistema, se le puede agregar el software de aplicación, mismo que nos permite utilizar la computadora para resolver un determinado problema o desempeñar una tarea específica. En la actualidad, además de las herramientas de productividad como los procesadores de palabras, las hojas de cálculo y los programas
de bases de dalos, se dispone de miles de aplicaciones de distintos tipos para resolver diversos problemas y tareas rutinarias  en ámbitos como negocios, gobierno, ciencia, medicina, ingeniería, leyes, educación, etcétera.

Sistemas operativos populares
Entre los sistemas operativos mas populares se hallan Microsoft Windows y Mac OS; Microsoft Windows CE y Palm OS controlan la mayor parle de las computadoras de mano o handheld. Los sistemas operativos más populares en computadoras que actúan como servidores son Linux y UNIX. Windows es el sistema operativo que se utiliza en forma más generalizada en computadoras personales; su interfaz muestra mensajes en pantalla y controles que se han diseñado para controlarse con el ratón.
El software para Windows es cualquier tipo de paquete de aplicación que se ha diseñado para que corta en computadoras que utilizan el sistema operativo Windows; por ejemplo, el programa Microsoft Word para Windows es un programa de procesamiento de palabras (o de aplicación) que se conoce como software para Windows.

Compatibilidad en sistemas operativos
Decimos que las computadoras que operan de la misma manera son "compatibles"; dos de los factores más importantes que influyen en la compatibilidad y definen la plataforma computacional son el microprocesador y el sistema operativo. Actualmente dos de las plataformas computacionales más populares para computadoras personales son PC y MAC.
La plataforma llamada PC se basa en el diseño de una de las primeras computadoras personales, la IBM PC, que fue muy destacada; las computadoras descendientes de la IBM PC son las que se utilizan en la actualidad. Hay diversos fabricantes, como IBM, Hewlet-Packard, Toshiba, Dell, Gateway y Compaq, que ofrecen una amplia gama de modelos de estas computadoras. El sistema
operativo Windows se diseñó específicamente para estas computadoras personales y, por lo tanto, la plataforma PC se conoce como "plataforma de Windows". Por otro lado, la plataforma MAC se basa en el diseño que desarrolló Macintosh para sus propias computadoras personales; este sistema operativo se creó casi exclusivamente por Apple Computer

No hay comentarios.:

Publicar un comentario