Actividad 1 Equipo 5

29
Presentación Realiza Mantenimiento Preventivo Profe. Pablo Batún Salazar Marcos Chan Balam Cecyte TSMEC 3”A” 29/10/12 Software de Sistema Marcos Chan Balam Colegio de Estudios Científicos y Tecnológicos del Estado

Transcript of Actividad 1 Equipo 5

Presentación

Realiza Mantenimiento Preventivo

Profe. Pablo Batún Salazar

Marcos Chan Balam

Cecyte TSMEC

3”A”

29/10/12

Software de Sistema

Marcos Chan Balam

Colegio de Estudios Científicos y Tecnológicos del Estado

Tabla de Contenido

TABLA DE CONTENIDO (INDICE)

1.1. BIOS1.1.1.Definición1.1.2.Función1.1.3.Características1.1.4.Actualización

1.2. SISTEMA OPERATIVO1.2.1.Tipos de Sistema Operativo

(comercial y libre)1.2.2.Definición1.2.3.Función 1.2.4.Características1.2.5.Respaldo y actualización

1.3. LENGUAJE DE PROGRAMACIÓN1.3.1.Tipos de lenguaje de programación1.3.2.Definición1.3.3.Función 1.3.4.Características1.3.5.Sintax

Marcos Chan Balam

BIOS

BIOS

Definición

La BIOS (sigla en inglés de basic input/output system),fue inventado por Gary Kildall el creador del sistema operativo CP/M en 1975, siendo el nombre de un archivo del sistema. Las máquinas con CP/M usualmente tenían una ROM muy

simple que hacía que la unidad de diskette leyera datos desde su primera posición de memoria donde se encontraba la primera instrucción del archivo

BIOS que se encargaba de configurar el sistema o programa.

Funcionamiento

Después de un reset o del encendido, el procesador ejecuta la instrucción que encuentra en el llamado vector de reset (16 bytes antes de la instrucción

máxima direccionable en el caso de los procesadores x86), allí se encuentra la primera línea de código del BIOS: es una instrucción de salto incondicional, que

remite a una dirección más baja en la BIOS. En los PC más antiguos el procesador continuaba leyendo directamente en la memoria ROM las

instrucciones (dado que esa memoria era de la misma velocidad de la RAM), ejecutando las rutinas POST para verificar el funcionamiento del

sistema y posteriormente cargando un sistema operativo (de 16 bits) en la RAM, que compartiría funcionalidades de la BIOS.

De acuerdo a cada fabricante del BIOS, realizará procedimientos diferentes, pero en general se carga una copia del firmware hacia la memoria RAM, dado que esta última es más rápida. Desde allí se realiza la

detección y la configuración de los diversos dispositivos que pueden contener un sistema operativo. Mientras se realiza el proceso de búsqueda de un SO, el

programa del BIOS ofrece la opción de acceder a la RAM-CMOS del sistema

Marcos Chan Balam

BIOS

donde el usuario puede configurar varias características del sistema por ejemplo el reloj de tiempo real. La información contenida en la RAM-CMOS es

utilizada durante la ejecución del BIOS para configurar dispositivos como ventiladores, buses y controladores.

Características

La Bios no está preparada para ser manejada de forma manual por completo, la mayoría de sus settings son automáticos. Entre estos podemos incluir el

manejo de latencias, que sólo nos permite modificar el Cas Latency, el resto es inmodificable. En el caso del CPU y Memorias, podemos modificar sus voltajes,

su multiplicador y el LDT (desde 200mhz hasta 1Ghz).Como la placa maneja también un motor integrado de gráficos, éste nos deja compartir memoria desde 16MB hasta 128MB (16MB, 32MB, 64MB y 128MB).

El menú de memoria nos permite cambiar el timingmode entre Auto o manual. Al seleccionar Manual, tenemos acceso a la velocidad de memoria y el Tcl. Lo

que si es raro encontrar, es que podemos setear nuestras memorias a una velocidad superior a la de nuestro procesador, ya que ésta nos permite llegar

hasta 250 Mhz.

TimingMode Auto o ManualMemClockindexcalue (Mhz)

100Mhz, 133Mhz, 166Mhz, 200Mhz, 216Mhz, 233Mhz, 250Mhz

Cas Latency 2, 2.5, 3

Marcos Chan Balam

BIOS

Si la bios nos permite poder exigir un poco tanto a memorias como al procesador,

¿Por qué no intentarlo

más adelante?

Sin embargo, tenemos poco voltaje tanto en memorias como procesador. En resumen no es una placa overclockera y está diseñada para un uso cotidiano sin mayor esfuerzo por parte del usuario. Pero bueno nada se pierde con intentar, y lo mostraremos al final del review. Ahora pasaremos a las pruebas por defecto en el sistema y la respuesta a altas exigencias.

Actualización

Para una referencia de tarjeta madre el fabricante puede publicar varias revisiones del BIOS, en las cuales se solucionan problemas detectados en los primeros lotes, se codifican mejores controladores o se da soporte a nuevos procesadores. La actualización de este firmware puede ser realizado con algún programa para quemar una nueva versión directamente desde el sistema operativo, los programas son propietarios de cada compañía desarrolladora del firmware y por lo general pueden conseguirse en internet junto al BIOS propiamente dicho. La actualización del BIOS es percibida como riesgosa dado que una falla en el procedimiento conduce a que la tarjeta madre no arranque. Debido a ello algunos fabricantes usan sistemas como el bootblock que es una porción de BIOS que está protegida y que no es actualizable como el resto del firmware.

Marcos Chan Balam

HammerFid Control

Start up - desde 4x hasta el máximo permitido por tu procesador

Hammer Vid control

Start up, desde 0.825v hasta 1.55v

CPU Clock 200Mhz - 250MhzDIMM Voltaje Adjust

2.55 - 2.7v

Sistema Operativo

SISTEMA OPERATIVO

Un sistema Operativo (SO) es en sí mismo un programa de computadora. Sin embargo, es un programa muy especial, quizá el más complejo e importante en una computadora. El SO despierta a la computadora y hace que reconozca a la CPU, la memoria, el tecla do, el sistema de vídeo y las unidades de disco.

Además, proporciona la facilidad para que los usuarios se comuniquen con la computadora y sirve de plataforma a partir de la cual se corran programas de aplicación.

Los sistemas operativos más conocidos son los siguientes:

DOS: El famoso DOS, que quiere decir Disk OperatingSystem (sistema operativo de disco), es más conocido por los nombres de PC-DOS y MS-DOS. MS-DOS fue hecho por la compañía de software Microsoft y es en esencia el mismo SO que el PC-DOS.

La razón de su continua popularidad se debe al aplastante volumen de software disponible y a la base instalada de computadoras con procesador Intel.

Cuando Intel liberó el 80286, DOS se hizo tan popular y firme en el mercado que DOS y las aplicaciones DOS representaron la mayoría del mercado de software para PC. En aquel tiempo, la compatibilidad IBM, fue una necesidad para que los productos tuvieran éxito, y la "compatibilidad IBM" significaba computadoras que corrieran DOS tan bien como las computadoras IBM lo hacían.

Aún con los nuevos sistemas operativos que han salido al mercado, todavía el DOS es un sólido contendiente en la guerra de los SO.

Windows 3.1: Microsoft tomo una decisión, hacer un sistema operativo que tuviera una interfaz gráfica amigable para el usuario, y como resultado obtuvo Windows. Este sistema muestra íconos en la pantalla que representan diferentes archivos o programas, a los cuales se puede accesar al darles doble click con el puntero del mouse. Todas las aplicaciones elaboradas para Windows se parecen, por lo que es muy fácil aprender a usar nuevo software una vez aprendido las bases.

Windows 95: En 1995, Microsoft introdujo una nueva y mejorada versión del Windows 3.1. Las mejoras de este SO incluyen soporte multitareas y arquitectura de 32 bits, permitiendo así correr mejores aplicaciónes para mejorar la eficacia del trabajo.

Windows NT: Esta versión de Windows se especializa en las redes y servidores. Con este SO se puede interactuar de forma eficaz entre dos o más computadoras.

OS/2: Este SO fue hecho por IBM. Tiene soporte de 32 bits y su interfaz es muy buena. El problema que presenta este sistema operativo es que no se le ha dad el apoyo que se merece en cuanto a aplicaciones se refiere. Es decir, no se han creado muchas aplicaciones que aprovechen

Marcos Chan Balam

Sistema Operativo

las características de el SO, ya que la mayoría del mercado de software ha sido monopolizado por Windows.

Mac OS: Las computadoras Macintosh no serían tan populares como lo son si no tuvieran el Mac OS como sistema operativo de planta. Este sistema operativo es tan amigable para el usuario que cualquier persona puede aprender a usarlo en muy poco tiempo. Por otro lado, es muy bueno para organizar archivos y usarlos de manera eficaz. Este fue creado por Apple Computer, Inc.

UNIX: El sistema operativo UNIX fue creado por los laboratorios Bell de AT&T en 1969 y es ahora usado como una de las bases para la supercarretera de la información. Unix es un SO multiusuario y multitarea, que corre en diferentes computadoras, desde supercomputadoras, Mainframes, Minicomputadoras, computadoras personales y estaciones de trabajo. Esto quiere decir que muchos usuarios puede estar usando una misma computadora por medio de terminales o usar muchas de ellas.

Definición

Un sistema operativo (SO) es un programa o conjunto de programas que en un sistema informático gestiona los recursos de hardware y provee servicios a los programas de aplicación, ejecutándose en modo privilegiado respecto de los restantes.

Función

Uno de los propósitos del sistema operativo que gestiona el núcleo intermediario consiste en gestionar los recursos de localización y protección de acceso del hardware, hecho que alivia a los programadores de aplicaciones de tener que tratar con estos detalles. La mayoría de aparatos electrónicos que utilizan microprocesadores para funcionar, llevan incorporado un sistema operativo (teléfonos móviles, reproductores de DVD, computadoras, radios, enrutadores, etc.). En cuyo caso, son manejados mediante una Interfaz Gráfica de Usuario, un gestor de ventanas o un entorno de escritorio, si es un celular,

Marcos Chan Balam

Sistema Operativo

mediante una consola o control remoto si es un DVD y, mediante una línea de comandos o navegador web si es un enrutador.

Características

El sistema operativo tiene las siguientes características:

1. Conveniencia. Un Sistema Operativo hace más conveniente el uso de una computadora.

2. Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se usen de la manera más eficiente posible.

3. Habilidad para evolucionar. Un Sistema Operativo deberá construirse de manera que permita el desarrollo, prueba o introducción efectiva de nuevas funciones del sistema sin interferir con el servicio.

4. Encargado de administrar el hardware. El Sistema Operativo se encarga de manejar de una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los recursos.

5. Relacionar dispositivos (gestionar a través del kernel). El Sistema Operativo se debe encargar de comunicar a los dispositivos periféricos, cuando el usuario así lo requiera.

6. Organizar datos para acceso rápido y seguro.7. Manejar las comunicaciones en red. El Sistema Operativo permite al

usuario manejar con alta facilidad todo lo referente a la instalación y uso de las redes de computadoras.

8. Procesamiento por bytes de flujo a través del bus de datos.9. Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fácil

al usuario el acceso y manejo de los dispositivos de Entrada/Salida de la computadora.

10. Técnicas de recuperación de errores.11. Evita que otros usuarios interfieran. El Sistema Operativo evita que los

usuarios se bloqueen entre ellos, informándoles si esa aplicación está siendo ocupada por otro usuario.

12. Generación de estadísticas.13. Permite que se puedan compartir el hardware y los datos entre los

usuarios.

Marcos Chan Balam

Sistema Operativo

Respaldo y Actualización

Respaldo

Los backup o también conocidos como copia de seguridad, es un proceso en el cual el usuario guarda la información de tal manera que lo almacenara en algún dispositivo de almacenamiento y que sea tecnológicamente disponible, como por ejemplo: CD-ROM, Blue Ray, discos virtuales o tan solo en el disco duro, esto se hace por si ocurre alguna perdida de información, se pueda recuperar fácilmente.

Los backups usualmente son usados por algún desastre que ocurra en nuestro sistema operativo, ya sea por un virus o por un borrado de los archivos de nuestro sistema, otra de las razones para utilizar backup es que sirven para restaurar los ficheros que se hayan borrado o se hayan dañado accidentalmente y también en las empresas o negocios los backup cumplen un rol muy importante ya que además que es muy útil es obligatorio, ya que algunas agencias de impuestos requieren esta información como un control del tipo presupuestario, estas las suelen hacer en cintas magnéticas, pero para información común tal solo se debe utilizar disquetes, CD-ROM, discos zip, USB o algún centro de respaldo por Internet.

El concepto de almacenar los datos tiene que llevar una estrategia de cómo va a ser organizada, ya que debe ser ordenada deacuerdo a algún criterio, para lograr esto se puede utilizar desde una hoja de papel registrándolo como un inventario, donde se pueden anotar la fecha de grabación, hasta una sofisticada base de datos relacional.

Pero también se pueden hacer uso de software que están dedicados a hacer backups, se pueden encontrar programas dedicados a este fin pero de uso domestico ya que los software de nivel para un nivel mas avanzado son un poco complicados de configurar, empecemos por Acronis True Image, este programa sirve para crear una copia exacta del disco duro, o también solo una parte, y permite restaurar instantáneamente la maquina con el sistema operativo, tus aplicaciones y tus datos. Además también puedes guardar tu música, videos, fotos, email, contactos y tareas programadas. Lo puedes descargar desde este enlace www.acronis.com.

Otro programa que es muy bueno es el Norton Ghost 12, este programa es toda una suite que tiene muchas herramientas entre las cuales podemos encontrar, copia de respaldo incrementables, compresión y cifrados avanzados, tiene buen tratamiento con de los puntos de restauración. Para descargarlo tienes que ir a este enlace (http://www.symantec.com/es/mx/norton/products/overview.jsp?pcid=br&pvid=ghost12 ).

Marcos Chan Balam

Sistema Operativo

Otro programa muy importante para hacer backups es el RoxioBackonTrack, este destaca por su sencillez pero Acosta de quitar algunas funciones, se pueden añadir los archivos y de la misma manera organizándolo en alguna categoría como por ejemplo por temas, ya sea música, fotos, videos, etc. Para hacer el proceso de recuperación lo hace de una forma muy simple, basta con ir al icono de restaurar archivos e indicar la ruta donde el backup se encuentra guardado, lo puedes descargar desde aquí, www.roxio.com

Ahora las pérdidas de información son cosas del pasado ya que con estos programas muy útiles es muy fácil poder hacer un backup.

Actualización

Puede decirse que el Sistema Operativo es un programa que permite que otros programas puedan ejecutarse, ofreciéndoles todo lo que ellos necesitan para funcionar correctamente. Es claro entonces que es el programa más importante de todos, por lo que resulta primordial mantenerlo siempre actualizado para tener la certeza de contar siempre con la mejor versión disponible. Todos los demás programas de tu equipo lo van a agradecer.

Los fabricantes de Sistemas Operativos, como Microsoft con Windows, mantienen una permanente estrategia de mejora de sus productos, y si llegan a descubrir alguna falla, de inmediato la corrigen.

Estas mejoras están disponibles sin costo en los sitios Web de los fabricantes para que los usuarios las descarguen fácilmente.

Pasos para actualizarlo.

Las actualizaciones de seguridad ayudan a proteger el equipo frente a virus, gusanos y otras amenazas a medida que se descubren. Los sistemas operativos de Windows® cuentan con la característica de actualizaciones automáticas, que se puede utilizar para descargar las actualizaciones de seguridad más recientes de forma automática. En este paso se indicará cómo activar Actualizaciones automáticas. También se indicará cómo actualizar el equipo con actualizaciones de software anteriores.

Activa la característica Actualizaciones automáticas

Importante: La característica Actualizaciones automáticas que se va a activar sólo descargará actualizaciones futuras de Microsoft. Windows Update seguirá

Marcos Chan Balam

Sistema Operativo

siendo necesario para actualizarse una vez activada Actualizaciones automáticas. (Al final de este paso se indicará la forma de hacerlo.)

1 Haz clic en Inicio y, después en Panel de control. 2 Haz clic en Rendimiento y mantenimiento. 3 Haz clic en Sistema. 4 Haz clic en Actualizaciones automáticas y, a continuación, selecciona Mantener mi equipo al día. 5 Selecciona una opción. Microsoft recomienda encarecidamente seleccionar la opción Descargar automáticamente las actualizaciones e instalarlas en la                 programación especificada y establecer una hora de actualización diaria.

Elige Descargar automáticamente las actualizaciones e instalarlas en la programación especificada.

Importante: Puedes programar la descarga de Actualizaciones automáticas a cualquier hora del día. Recuerda que el equipo debe estar activado a la hora programada. (Se recomienda seleccionar una hora a la que no estés utilizando el equipo para otras tareas.)

6 Si eliges que se te notifiquen las Actualizaciones automáticas en el paso 5, aparecerá un globo de notificación cada vez que haya disponibles nuevas descargas para instalar. Haz click en el globo de notificación para revisar e instalar las actualizaciones.

A continuación, actualízate con Windows Update

Ahora que se ha activado la característica Actualizaciones automáticas se recibirán todas las actualizaciones críticas de forma automática. Sin embargo, Actualizaciones automáticas no descarga las actualizaciones anteriores o aquellas que no sean críticas. Puedes utilizar estas instrucciones a fin de poner el equipo al día con actualizaciones de seguridad anteriores y obtener actualizaciones futuras que no sean críticas.

Marcos Chan Balam

Sistema Operativo

1 Marca esta página.

2 Ve a Windows UpDate (http://windowsupdate.microsoft.com).

3 Sigue las instrucciones que aparecen en el sitio de Windows UpDate para revisar y seleccionar descargas.

4 Cuando hayas terminado, vuelve a esta página y ve al paso 3.

Sugerencia: Algunas descargas requerirán que reinicies el equipo después de la instalación. Asegúrate de volver a Windows UpDate después de reiniciar y comprobar si existen actualizaciones adicionales. Puede que tengas que repetir esta acción en varias ocasiones para asegurarte de que dispones de todas las descargas más recientes.

Importante: Si utilizas productos de Microsoft Office (incluidos Microsoft Word, Microsoft Excel y Microsoft PowerPoint), visita el sitio de Office Update a fin de instalar las versiones de seguridad más recientes para Office

Marcos Chan Balam

Lenguaje de Programación

LENGUAJE DE PROGRAMACIÓN

Tipos de Lenguaje de Programación

1. LENGUAJES DE MÁQUINA

El lenguaje máquina de una computadora consta de cadenas de números binarios (ceros y unos) y es el único que "entienden" directamente los procesadores. Todas las instrucciones preparadas en cualquier lenguaje de máquina tienen por lo menos dos partes. La primera es el comando u operación, que dice a la computadora cuál es la función que va a realizar. Todas las computadoras tienen un código de operación para cada una de sus funciones. La segunda parte de la instrucción es el operando, que indica a la computadora dónde hallar o almacenar los datos y otras instrucciones que se van a manipular; el número de operandos de una instrucción varía en las distintas computadoras. En una computadora de operando único, el equivalente binario de "SUMAR 0814" podría hacer que se sume el valor que se encuentra en la localidad de almacenamiento o dirección 0814 al valor que se encuentra en la unidad aritmética lógica. En una máquina de dos operandos, la representación binaria de "SUMAR 0814 8672" podría hacer que se sume el valor que está en la localidad 8672 al valor que está en la dirección 0814. El formato de operando único es popular en las microcomputadoras más pequeñas; la estructura de dos operandos se encuentra en casi todas las demás máquinas.

Según los estándares actuales, las primeras computadoras eran poco tolerantes. Los programadores tenían que traducir las instrucciones de manera directa a la forma de lenguaje de máquina que comprendían las computadoras. Por ejemplo, un programador que escribiera la instrucción "SUMAR 0814" para una de las primeras máquinas IBM hubiera escrito:

000100000000000000000000000010111000

Además de recordar las docenas de códigos numéricos para los comandos del conjunto de instrucciones de la máquina, el programador tenía que conocer las posiciones donde se almacenan los datos y las instrucciones. La codificación

Marcos Chan Balam

Lenguaje de Programación

inicial muchas veces requería meses, por lo que era costosa y era frecuente que originara errores. Revisar las instrucciones para localizar errores era casi tan tedioso como escribirlas por primera vez. Además, si era necesario modificar un programa posteriormente, la tarea podía llevarse meses.

2. LENGUAJES ENSAMBLADORES

A principios de la década de 1950, y con el fin de facilitar la labor de los programadores, se desarrollaron códigos nemotécnicos para las operaciones y direcciones simbólicas. La palabra nemotécnico se refiere a una ayuda para la memorización. Uno de los primeros pasos para mejorar el proceso de preparación de programas fue sustituir los códigos de operaciones numéricos del lenguaje de máquina por símbolos alfabéticos, que son los códigos nemotécnicos. Todas las computadoras actuales tienen códigos nemotécnicos aunque, naturalmente, los símbolos que se usan varían en las diferentes marcas y modelos. La computadora sigue utilizando el lenguaje de máquina para procesar los datos, pero los programas ensambladores traducen antes los símbolos de código de operación especificados a sus equivalentes en lenguaje de máquina.

Este procedimiento preparó avances posteriores. Si la computadora era capaz de traducir símbolos convenientes en operaciones básicas, ¿por qué no hacer también que realizara otras funciones rutinarias de codificación, como la asignación de direcciones de almacenamiento a los datos? La técnica de direccionamiento simbólico permite expresar una dirección no en términos de su localización numérica absoluta, sino en términos de símbolos convenientes para el programador.

Durante las primeras etapas del direccionamiento simbólico, el programador asigna un nombre simbólico y una dirección real a un dato. Por ejemplo, el programador podría asignar el valor total de mercancía adquirida durante un mes por un cliente de una tienda de departamentos a la dirección 0063, y darle el nombre simbólico TOTAL. Se podría asignar el valor de la mercancía devuelta sin usar durante el mes a la dirección 2047 y dársele el nombre simbólico CRÉDITO. Así, durante el resto del programa, el programador se referirá a los nombres simbólicos, más que a las direcciones, cuando fuera preciso procesar estos datos. Por ejemplo, se podría escribir la instrucción "S CRÉDITO TOTAL" para restar el valor de las mercancías devueltas del importa total de compras para obtener el importe de la factura mensual del cliente. A continuación, el programa ensamblador traduciría la instrucción simbólica a esta cadena de bits:

Marcos Chan Balam

Lenguaje de Programación

Más adelante se hizo otra mejora. Se dejó a la computadora la tarea de asignar y recordar las direcciones de las instrucciones. Lo único que tenía que hacer el programador era indicar a la computadora la dirección de la primera instrucción, y el programa ensamblador se encargaba de almacenar, de manera automática, todas las demás en forma secuencial a partir de ese punto. Así, si se agregaba más tarde otra instrucción al programa, no era necesario modificar las direcciones de todas las instrucciones que seguían al punto de inserción (como tendría que hacerse en el caso de programas escritos en lenguaje de máquina). En vez de ello, el procesador ajustaba automáticamente las localidades de memoria la próxima vez que se ejecutaba el programa.

En la actualidad, los programadores no asignan números de dirección reales a los datos simbólicos, simplemente especifican dónde quieren que se coloque la primera localidad del programa, y el programa ensamblador se encarga de lo demás: asigna localidades tanto para las instrucciones como para los datos.

Estos programas de ensamble, o ensamblador, también permite a la computadora convertir las instrucciones en lenguaje ensamblador del programador en su propio código de máquina. Un programa de instrucciones escrito en lenguaje ensamblador por un programador se llama programa fuente. Después de que el ensamblador convierte el programa fuente en código de máquina a éste se le denomina programa objeto. Para los programadores es más fácil escribir instrucciones en un lenguaje ensamblador que en códigos de lenguajes de máquina, pero es posible que se requieran dos corridas de computadora antes de que se puedan utilizar las instrucciones del programa fuente para producir las salidas deseadas.

Los lenguajes ensambladores tienen ventajas sobre los lenguajes de máquina. Ahorran tiempo y requieren menos atención a detalles. Se incurren en menos errores y los que se cometen son más fáciles de localizar. Además, los programas en lenguaje ensamblador son más fáciles de modificar que los programas en lenguaje de máquina. Pero existen limitaciones. La codificación en lenguaje ensamblador es todavía un proceso lento. Una desventaja importante de estos lenguajes es que tienen una orientación a la máquina. Es decir, están diseñados para la marca y modelo específico de procesador que se utiliza, y es probable que, para una máquina diferente, se tengan que volver a codificar los programas.

3. LENGUAJES DE ALTO NIVEL

Los primeros programas ensambladores producían sólo una instrucción en lenguaje de máquina por cada instrucción del programa fuente. Para agilizar la

codificación, se desarrollaron programas ensambladores que podían producir una cantidad variable de instrucciones en lenguaje de máquina por cada instrucción del programa fuente. Dicho de otra manera, una solamacroinstrucción podía producir varias líneas de código en lenguaje de

Marcos Chan Balam

Lenguaje de Programación

máquina. Por ejemplo, el programador podría escribir "LEER ARCHIVO", y el programa traductor produciría una serie detallada de instrucciones al lenguaje de máquina previamente preparadas, con lo que se copiaría un registro del archivo que estuviera leyendo el dispositivo de entrada a la memoria principal. Así, el programador no se tenía que ocupar de escribir una instrucción por cada operación de máquina realizada.

El desarrollo de las técnicas nemotécnicas y las macroinstrucciones condujo, a su vez, al desarrollo de lenguajes de alto nivel que a menudo están orientados hacia una clase determinada de problemas de proceso. Por ejemplo, se han diseñado varios lenguajes para procesar problemas científico-matemático, asimismo han aparecido otros lenguajes que hacen hincapié en las aplicaciones de proceso de archivos.

A diferencia de los programas de ensamble, los programas en lenguaje de alto nivel se pueden utilizar con diferentes marcas de computadores sin tener que hacer modificaciones considerables. Esto permite reducir sustancialmente el costo de la reprogramación cuando se adquiere equipo nuevo. Otras ventajas de los lenguajes de alto nivel son:

Son más fáciles de aprender que los lenguajes ensambladores. Se pueden escribir más rápidamente. Permiten tener mejor documentación. Son más fáciles de mantener. Un programador que sepa escribir programas en uno de estos lenguajes

no está limitado a utilizar un solo tipo de máquina.

4. LENGUAJES COMPILADOS

Naturalmente, un programa que se escribe en un lenguaje de alto nivel también tiene que traducirse a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente. Se requiere una corrida de compilación antes de procesar los datos de un problema.

Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código binario).

Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores,

Marcos Chan Balam

Lenguaje de Programación

sino hasta que luego de haber compilado el programa, ya no aparecen errores en el código.

5. LENGUAJES INTERPRETADOS

Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de producción futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el código objeto para utilizarlo posteriormente.

La siguiente vez que se utilice una instrucción, se le debe interpretar otra vez y traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo, cada instrucción del ciclo tendrá que volver a ser interpretado cada vez que se ejecute el ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar compilando a cada momento el código completo). El intérprete elimina la necesidad de realizar una corrida de compilación después de cada modificación del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una corrida de producción.

6. LENGUAJES DE PROGRAMACIÓN DECLARATIVOS

Se les conoce como lenguajes declarativos en ciencias computacionales a aquellos lenguajes de programación en los cuales se le indica a la computadora qué es lo que se desea obtener o qué es lo que se esta buscando, por ejemplo: Obtener los nombres de todos los empleados que tengan más de 32 años. Eso se puede lograr con un lenguaje declarativo como SQL.

La programación declarativa es una forma de programación que implica la descripción de un problema dado en lugar de proveer una solución para dicho problema, dejando la interpretación de los pasos específicos para llegar a dicha solución a un intérprete no especificado. La programación declarativa adopta, por lo tanto, un enfoque diferente al de la programación imperativa tradicional.

En otras palabras, la programación declarativa provee el "qué", pero deja el "cómo" liberado a la implementación particular del intérprete. Por lo tanto se puede ver que la programación declarativa tiene dos fases bien diferenciadas, la declaración y la interpretación.

Marcos Chan Balam

Lenguaje de Programación

Es importante señalar que a pesar de hacer referencia a intérprete, no hay que limitarse a "lenguajes interpretados" en el sentido habitual del término, sino que también se puede estar trabajando con "lenguajes compilados".

Definición

Un lenguaje de programación es un idioma artificial diseñado para expresar procesos que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.1 Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le llama programación.

También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:

El desarrollo lógico del programa para resolver un problema en particular.

Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa).

Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.

Prueba y depuración del programa. Desarrollo de la documentación.

Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como por ejemplo HTML (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación, sino un conjunto de instrucciones que permiten diseñar el contenido de los documentos).

Función

Permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural. Una característica relevante de los lenguajes de programación es precisamente que más de un programador pueda usar un conjunto común de

Marcos Chan Balam

Lenguaje de Programación

instrucciones que sean comprendidas entre ellos para realizar la construcción de un programa de forma colaborativa.

Las funciones se crearon para evitar tener que repetir constantemente fragmentos de código. Una función podría considerarse como una variable que encierra código dentro de si. Por lo tanto cuando accedemos a dicha variable (la función) en realidad lo que estamos es diciendo al programa que ejecute un determinado código predefinido anteriormente.

Todos los lenguajes de programación tienen algunos elementos de formación primitivos para la descripción de los datos y de los procesos o transformaciones aplicadas a estos datos (tal como la suma de dos números o la selección de un elemento que forma parte de una colección). Estos elementos primitivos son definidos por reglas sintácticas y semánticas que describen su estructura y significado respectivamente.

Características

• Facilitan la tarea de programación, ya que disponen de formas adecuadas que permiten ser leídas y escritas por personas.

• Los lenguajes de programación representan en forma simbólica y en manera de un texto los códigos que podrán ser leídos por una persona.

• Son independientes de las computadoras a utilizar.

• Describe el conjunto de acciones consecutivas que un equipo debe ejecutar.

• permite mayor portabilidad

Podemos distinguir un lenguajes de programación dependiendo del tipo al que pertenezca. Existen varios tipos de lenguaje de programación:

1. Imperativos2. Funcionales3. Lógicos4. Orientado a objetos

Los lenguajes imperativos se caracterizan por el hecho de que el significado de un programa no es más que un conjunto de instrucciones o órdenes que le indican al computador cómo debe realizar una tarea. Un ejemplo de este tipo de ódenes pueden ser: “dame esto”, “suma esto”, etc.

Los lenguajes funcionales estan constituidos únicamente por definiciones de funciones matemáticas. No utiliza las asignaciones (más adelante lo veremos) ni son construcciones estructuradas.

Marcos Chan Balam

Lenguaje de Programación

Los lenguajes lógicos se caracterizan por el uso de la lógica de predicados.

Por último, los lenguajes orientados a objetos, se caracteriza por el uso de objetos y sus iteracciones para diseñar aplicaciones y programas.

En este curso trataremos con un lenguaje imperativo. A continuación vamos a conocer sus elementos.

Elementos de los lenguajes imperativos:

– Los datos: elemento de información que puede obtener un valor dentro de un conjunto de valores.

Para llevar a cabo el almacenamiento de datos dentro de la memória, se utilizan una série de elementos o entidades: las constantes y las variables. A continuación se define cada una de ellas:

- Constantes: almacenan un dato que permanecerá intacto o constante en la memoria durante la duración de la ejecución de un programa.

- Variables: almacenan un dato el valor del cual puede variar en la memoria durante el tiempo de ejecucuión del programa.

Marcos Chan Balam

Sintaxis

SINTAXIS

Con frecuencia se resaltan los elementos de la sintaxis con colores diferentes para facilitar su lectura. Este ejemplo está escrito en Python.

A la forma visible de un lenguaje de programación se le conoce como sintaxis. La mayoría de los lenguajes de programación son puramente textuales, es decir, utilizan secuencias de texto que incluyen palabras, números y puntuación, de manera similar a los lenguajes naturales escritos. Por otra parte, hay algunos lenguajes de programación que son más gráficos en su naturaleza, utilizando relaciones visuales entre símbolos para especificar un programa.

La sintaxis de un lenguaje de programación describe las combinaciones posibles de los símbolos que forman un programa sintácticamente correcto. El significado que se le da a una combinación de símbolos es manejado por su semántica (ya sea formal o como parte del código duro de la referencia de implementación). Dado que la mayoría de los lenguajes son textuales, este artículo trata de la sintaxis textual.

La sintaxis de los lenguajes de programación es definida generalmente utilizando una combinación de expresiones regulares (para la estructura léxica) y la Notación de Backus-Naur (para la estructura gramática). Este es un ejemplo de una gramática simple, tomada de Lisp:

expresión ::= átomo | listaátomo ::= número | símbolonúmero ::= [+-]? ['0'-'9']+símbolo ::= ['A'-'Z'] ['a'-'z'].*lista ::= '(' expresión* ')'

Con esta gramática se especifica lo siguiente:

una expresión puede ser un átomo o una lista; un átomo puede ser un número o un símbolo; un número es una secuencia continua de uno o más dígitos decimales,

precedido opcionalmente por un signo más o un signo menos; un símbolo es una letra seguida de cero o más caracteres (excluyendo

espacios); y

Marcos Chan Balam

Sintaxis

una lista es un par de paréntesis que abren y cierran, con cero o más expresiones en medio.

Algunos ejemplos de secuencias bien formadas de acuerdo a esta gramática:

'12345', '()', '(a b c232 (1))'

No todos los programas sintácticamente correctos son semánticamente correctos. Muchos programas sintácticamente correctos tienen inconsistencias con las reglas del lenguaje; y pueden (dependiendo de la especificación del lenguaje y la solidez de la implementación) resultar en un error de traducción o ejecución. En algunos casos, tales programas pueden exhibir un comportamiento indefinido. Además, incluso cuando un programa está bien definido dentro de un lenguaje, todavía puede tener un significado que no es el que la persona que lo escribió estaba tratando de construir.

Usando el lenguaje natural, por ejemplo, puede no ser posible asignarle significado a una oración gramaticalmente válida o la oración puede ser falsa:

"Las ideas verdes y descoloridas duermen furiosamente" es una oración bien formada gramaticalmente pero no tiene significado comúnmente aceptado.

"Juan es un soltero casado" también está bien formada gramaticalmente pero expresa un significado que no puede ser verdadero.

El siguiente fragmento en el lenguaje C es sintácticamente correcto, pero ejecuta una operación que no está definida semánticamente (dado que p es un apuntador nulo, las operaciones p->real y p->im no tienen ningún significado):

complex *p = NULL;complexabs_p = sqrt (p->real * p->real + p->im * p->im);

Si la declaración de tipo de la primera línea fuera omitida, el programa dispararía un error de compilación, pues la variable "p" no estaría definida. Pero el programa sería sintácticamente correcto todavía, dado que las declaraciones de tipo proveen información semántica solamente.

La gramática necesaria para especificar un lenguaje de programación puede ser clasificada por su posición en la Jerarquía de Chomsky. La sintaxis de la mayoría de los lenguajes de programación puede ser especificada utilizando una gramática Tipo-2, es decir, son gramáticas libres de contexto. Algunos lenguajes, incluyendo a Perl y a Lisp, contienen construcciones que permiten la ejecución durante la fase de análisis. Los lenguajes que permiten construcciones que permiten al programador alterar el comportamiento de un analizador hacen del análisis de la sintaxis un problema sin decisión única, y generalmente oscurecen la separación entre análisis y ejecución. En contraste con el sistema de macros de Lisp y los bloques BEGIN de Perl, que pueden tener cálculos generales, las macros de C son meros reemplazos de cadenas, y no requieren ejecución de código.

Marcos Chan Balam

Referencias

<REFERENCIAS>

http://es.wikipedia.org/wiki/BIOS

http://es.wikipedia.org/wiki/Sistema_operativo

http://es.wikipedia.org/wiki/Lenguaje_de_programacion

http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n#Sintaxis

http://blogs.technet.com/b/seguridaddigitalmexico/archive/2008/04/10/tips-para-actualizar-tu-sistema-operativo-windows.aspx

http://www.cabinas.net/informatica/como-hacer-un-backup.asp

Marcos Chan Balam