SlideShare une entreprise Scribd logo
1  sur  23
Presentación




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




Marcos Chan Balam
Tabla de Contenido




Marcos Chan Balam
BIOS




  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


Marcos Chan Balam
BIOS


   del sistema 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 Manual
          MemClockindexcalue         100Mhz, 133Mhz, 166Mhz, 200Mhz, 216Mhz,
          (Mhz)                      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 HammerFid Control Start up - desde 4x hasta el máximo permitido por tu procesador
 qué
  no     Hammer Vid control Start up, desde 0.825v hasta 1.55v
intent CPU Clock              200Mhz - 250Mhz
 arlo    DIMM Voltaje Adjust 2.55 - 2.7v
 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
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 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


Marcos Chan Balam
Sistema Operativo


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


Marcos Chan Balam
Sistema Operativo


   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.




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


Marcos Chan Balam
Sistema Operativo


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 ).

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




Marcos Chan Balam
Sistema Operativo


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á 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



Marcos Chan Balam
Sistema Operativo


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.




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


Marcos Chan Balam
Sistema Operativo


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 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


Marcos Chan Balam
Lenguaje de Programación


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:




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.


Marcos Chan Balam
Lenguaje de Programación


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 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:




Marcos Chan Balam
Lenguaje de Programación



       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, 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


Marcos Chan Balam
Lenguaje de Programación


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.

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.


Marcos Chan Balam
Lenguaje de Programación


       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 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.



Marcos Chan Balam
Lenguaje de Programación


• 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.   Imperativos
   2.   Funcionales
   3.   Lógicos
   4.   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.

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
Lenguaje de Programación




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ímbolo
nú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
        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:


Marcos Chan Balam
Sintaxis


'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




Marcos Chan Balam

Contenu connexe

Tendances

Setup de la computadora
Setup de la computadoraSetup de la computadora
Setup de la computadora
rdiazb
 
C:\documents and settings\sena\my documents\taller hardware
C:\documents and settings\sena\my documents\taller hardwareC:\documents and settings\sena\my documents\taller hardware
C:\documents and settings\sena\my documents\taller hardware
Victor Martinez
 
proceso de arranque de un pc
proceso de arranque de un pcproceso de arranque de un pc
proceso de arranque de un pc
luisalfredoa9
 
Instalacion del sistema operativo
Instalacion del sistema operativoInstalacion del sistema operativo
Instalacion del sistema operativo
Oscar Acevedo
 
componentes ordenadores: BIOS
 componentes ordenadores: BIOS componentes ordenadores: BIOS
componentes ordenadores: BIOS
juaviju
 
Bios, uefi y legacy
Bios, uefi y legacyBios, uefi y legacy
Bios, uefi y legacy
Ezmee XD
 

Tendances (20)

DESARME Y ARMADO DE UN PC
DESARME Y ARMADO DE UN PCDESARME Y ARMADO DE UN PC
DESARME Y ARMADO DE UN PC
 
Bios
BiosBios
Bios
 
Bios,uefi y legacy
Bios,uefi y legacyBios,uefi y legacy
Bios,uefi y legacy
 
Setup de la computadora
Setup de la computadoraSetup de la computadora
Setup de la computadora
 
Conceptos Básicos del Encendido del CPU, BIOS, CMOS & SETUP
Conceptos Básicos del Encendido del CPU, BIOS, CMOS & SETUPConceptos Básicos del Encendido del CPU, BIOS, CMOS & SETUP
Conceptos Básicos del Encendido del CPU, BIOS, CMOS & SETUP
 
C:\documents and settings\sena\my documents\taller hardware
C:\documents and settings\sena\my documents\taller hardwareC:\documents and settings\sena\my documents\taller hardware
C:\documents and settings\sena\my documents\taller hardware
 
Lalo
Lalo Lalo
Lalo
 
BIOS,UEFI Y LEGANCE
BIOS,UEFI Y LEGANCEBIOS,UEFI Y LEGANCE
BIOS,UEFI Y LEGANCE
 
Bios y UEFI
Bios y UEFIBios y UEFI
Bios y UEFI
 
Udbios
UdbiosUdbios
Udbios
 
proceso de arranque de un pc
proceso de arranque de un pcproceso de arranque de un pc
proceso de arranque de un pc
 
Instalacion del sistema operativo
Instalacion del sistema operativoInstalacion del sistema operativo
Instalacion del sistema operativo
 
componentes ordenadores: BIOS
 componentes ordenadores: BIOS componentes ordenadores: BIOS
componentes ordenadores: BIOS
 
Configuracion del bios
Configuracion del biosConfiguracion del bios
Configuracion del bios
 
Bios
BiosBios
Bios
 
Bios ventajas y desventajas
Bios ventajas y desventajas Bios ventajas y desventajas
Bios ventajas y desventajas
 
Terminos de computación2
Terminos de computación2Terminos de computación2
Terminos de computación2
 
La BIOS
La BIOSLa BIOS
La BIOS
 
Informatica
InformaticaInformatica
Informatica
 
Bios, uefi y legacy
Bios, uefi y legacyBios, uefi y legacy
Bios, uefi y legacy
 

En vedette

O fogo imagens
O fogo   imagensO fogo   imagens
O fogo imagens
8Apedome
 
Ejercicio propuesto mh
Ejercicio propuesto mhEjercicio propuesto mh
Ejercicio propuesto mh
AlvaroBachaco
 
Palaciode monserrate sintra!!!
Palaciode monserrate sintra!!!Palaciode monserrate sintra!!!
Palaciode monserrate sintra!!!
gutaschimidt2011
 
Aula 08 experimentação 01
Aula 08 experimentação 01Aula 08 experimentação 01
Aula 08 experimentação 01
Venise Melo
 
3 e 4_-_comandos_de_leitura_e_escrita_identacao
3 e 4_-_comandos_de_leitura_e_escrita_identacao3 e 4_-_comandos_de_leitura_e_escrita_identacao
3 e 4_-_comandos_de_leitura_e_escrita_identacao
Disys do Brasil
 
Уладзімір Булаўскі, vitebsk4.me – “ Фестываль актыўнага адпачынку”
Уладзімір Булаўскі, vitebsk4.me – “ Фестываль актыўнага адпачынку”Уладзімір Булаўскі, vitebsk4.me – “ Фестываль актыўнага адпачынку”
Уладзімір Булаўскі, vitebsk4.me – “ Фестываль актыўнага адпачынку”
budzma
 
Apadrinamientos lectores
Apadrinamientos lectoresApadrinamientos lectores
Apadrinamientos lectores
Crispinilla
 

En vedette (20)

O fogo imagens
O fogo   imagensO fogo   imagens
O fogo imagens
 
Porqué los jueves de lucha
Porqué los jueves de luchaPorqué los jueves de lucha
Porqué los jueves de lucha
 
Cuidados para el carro
Cuidados para el carroCuidados para el carro
Cuidados para el carro
 
Roma
RomaRoma
Roma
 
Ejercicio propuesto mh
Ejercicio propuesto mhEjercicio propuesto mh
Ejercicio propuesto mh
 
Jornal FG - 02-04-2011
Jornal FG - 02-04-2011Jornal FG - 02-04-2011
Jornal FG - 02-04-2011
 
Conferência Ethos 360°: Elias Targilene
Conferência Ethos 360°: Elias TargileneConferência Ethos 360°: Elias Targilene
Conferência Ethos 360°: Elias Targilene
 
Picapedrers
PicapedrersPicapedrers
Picapedrers
 
Asas para amanhã
Asas para amanhãAsas para amanhã
Asas para amanhã
 
Palaciode monserrate sintra!!!
Palaciode monserrate sintra!!!Palaciode monserrate sintra!!!
Palaciode monserrate sintra!!!
 
Aula 08 experimentação 01
Aula 08 experimentação 01Aula 08 experimentação 01
Aula 08 experimentação 01
 
Aula 03 net art
Aula 03 net artAula 03 net art
Aula 03 net art
 
3 e 4_-_comandos_de_leitura_e_escrita_identacao
3 e 4_-_comandos_de_leitura_e_escrita_identacao3 e 4_-_comandos_de_leitura_e_escrita_identacao
3 e 4_-_comandos_de_leitura_e_escrita_identacao
 
Ciencias Social
Ciencias SocialCiencias Social
Ciencias Social
 
Manual on line
Manual on lineManual on line
Manual on line
 
Уладзімір Булаўскі, vitebsk4.me – “ Фестываль актыўнага адпачынку”
Уладзімір Булаўскі, vitebsk4.me – “ Фестываль актыўнага адпачынку”Уладзімір Булаўскі, vitebsk4.me – “ Фестываль актыўнага адпачынку”
Уладзімір Булаўскі, vitebsk4.me – “ Фестываль актыўнага адпачынку”
 
Nod32,avast!(2)
Nod32,avast!(2)Nod32,avast!(2)
Nod32,avast!(2)
 
Apadrinamientos lectores
Apadrinamientos lectoresApadrinamientos lectores
Apadrinamientos lectores
 
Sidney
SidneySidney
Sidney
 
Aula tf 6 contribuições
Aula tf 6   contribuiçõesAula tf 6   contribuições
Aula tf 6 contribuições
 

Similaire à Actividad 1 Equipo 5 (20)

Todo lo relacionado sobre la bios
Todo lo relacionado sobre la biosTodo lo relacionado sobre la bios
Todo lo relacionado sobre la bios
 
Bios
BiosBios
Bios
 
BIOS
BIOSBIOS
BIOS
 
Todo lo relacionado sobre la bios
Todo lo relacionado sobre la biosTodo lo relacionado sobre la bios
Todo lo relacionado sobre la bios
 
Bios kya
Bios kyaBios kya
Bios kya
 
Bios
BiosBios
Bios
 
Slideshare bios
Slideshare biosSlideshare bios
Slideshare bios
 
Yo
Yo Yo
Yo
 
Bios
BiosBios
Bios
 
Bios
BiosBios
Bios
 
Drivers
DriversDrivers
Drivers
 
Bios
BiosBios
Bios
 
Bios
BiosBios
Bios
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Administra S.O
Administra S.OAdministra S.O
Administra S.O
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Gabriela zambrano
Gabriela zambranoGabriela zambrano
Gabriela zambrano
 
La bios
La biosLa bios
La bios
 
La bios
La biosLa bios
La bios
 
Definición de setup
Definición de setupDefinición de setup
Definición de setup
 

Dernier

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Dernier (11)

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 

Actividad 1 Equipo 5

  • 1. Presentación Colegio de Estudios Científicos y Tecnológicos del Estado Marcos Chan Balam
  • 3. BIOS 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 Marcos Chan Balam
  • 4. BIOS del sistema 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 Manual MemClockindexcalue 100Mhz, 133Mhz, 166Mhz, 200Mhz, 216Mhz, (Mhz) 233Mhz, 250Mhz Cas Latency 2, 2.5, 3 Marcos Chan Balam
  • 5. BIOS Si la bios nos permite poder exigir un poco tanto a memorias como al procesador, ¿Por HammerFid Control Start up - desde 4x hasta el máximo permitido por tu procesador qué no Hammer Vid control Start up, desde 0.825v hasta 1.55v intent CPU Clock 200Mhz - 250Mhz arlo DIMM Voltaje Adjust 2.55 - 2.7v 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
  • 6. 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 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 Marcos Chan Balam
  • 7. Sistema Operativo 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, 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. Marcos Chan Balam
  • 8. Sistema Operativo 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. 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 Marcos Chan Balam
  • 9. Sistema Operativo 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 ). 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 Marcos Chan Balam
  • 10. Sistema Operativo 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á 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 Marcos Chan Balam
  • 11. Sistema Operativo 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. 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 Marcos Chan Balam
  • 12. Sistema Operativo de seguridad más recientes para Office Marcos Chan Balam
  • 13. 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 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 Marcos Chan Balam
  • 14. Lenguaje de Programación 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: 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. Marcos Chan Balam
  • 15. Lenguaje de Programación 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 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: Marcos Chan Balam
  • 16. Lenguaje de Programación 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, 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 Marcos Chan Balam
  • 17. Lenguaje de Programación 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. 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. Marcos Chan Balam
  • 18. Lenguaje de Programación 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 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. Marcos Chan Balam
  • 19. Lenguaje de Programación • 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. Imperativos 2. Funcionales 3. Lógicos 4. 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. 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
  • 21. 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ímbolo nú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 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: Marcos Chan Balam
  • 22. Sintaxis '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