Está en la página 1de 14

Republica Bolivariana De Venezuela

Ministerio Del Poder Popular Para La Educacin Superior


I.U.P Santiago Mario
Catedra: Sistemas Operativos I
Cdigo: 47

Lenguaje De Un Computador

Realizado Por:
Malav. Cesar
C.I 24.763.125

Porlamar, Enero Del 2017


Introduccin
En un lenguaje de computador se puede encontrar tres tipos de
lenguajes generales, estos son, lenguaje de mquina, lenguaje ensamblador
y de alto nivel. En el lenguaje de maquina es difcil de utilizar por que el
programador tiene que introducir los cdigos y comandos en forma binarias,
los lenguajes ensambladores o de bajo nivel. Un modo ms fcil de
comprender el cdigo mquina es dando a cada instruccin un mnemnico,
como por ejemplo STORE, ADD o JUMP. Esta abstraccin da como
resultado el ensamblador, un lenguaje de muy bajo nivel que es especfico
de cada microprocesador, en los lenguajes de alto nivel suelen utilizar
trminos ingleses del tipo LIST, PRINT u OPEN como comandos que
representan una secuencia de decenas o de centenas de instrucciones en
lenguaje mquina. Los comandos se introducen desde el teclado, desde un
programa residente en la memoria o desde un dispositivo de
almacenamiento, y son interceptados por un programa que los traduce a
instrucciones en lenguaje mquina.
Y como muchos programadores o los que estudian este tipos de
carreras, necesitan el conocimiento de estos lenguajes para poder tener un
conocimiento ms amplio y as desempear mejor su trabajo. A continuacin
se le presentara al lector un investigacin detallada de los lenguajes de un
computador.
Lenguajes de computadora.
Los programadores escriben instrucciones en diferentes lenguajes de
programacin, algunos comprensibles de forma directa por la computadora y
otros pasos intermedios de traduccin.
Lenguajes de Computadora.
Existen hoy da cientos de lenguajes de computadora. Estos pueden ser
categorizados en tres tipos generales:
Lenguajes de mquina
Lenguajes ensambladores
Lenguajes de alto nivel

Lenguajes de mquina
Cualquier computadora slo puede entender directamente su propio
lenguaje mquina. El lenguaje mquina es el lenguaje natural de una
computadora particular, aunque el conjunto de instrucciones disponibles
pueda ser similar entre ellas. Est relacionado ntimamente con el diseo
del Hardware de esa computadora. Los lenguajes mquina, por lo general
consisten en cadenas de nmeros (al final reducidos a unos y a ceros) para
formar las rdenes entendibles por el hardware de la mquina. Este fue el
primer lenguaje utilizado en la Programacin de Computadoras, pero dej de
utilizarse por su dificultad y complicacin, siendo sustituido por otros
lenguajes ms fciles e aprender y utilizar, que adems reducen la
posibilidad de cometer errores.
Estas instrucciones sern fciles de leer por la computadora y difciles por
un programador, por lo que se hace difcil escribir programas en cdigo o
lenguaje a mquina y requiere buscar otro lenguaje pare comunicarse con la
computadora, pero que sea ms fcil de escribir y leer por el programador.
Para evitar la tediosa tarea de escribir programas en lenguaje mquina, se
han diseado otros lenguajes de programacin que facilitan la escritura y
posterior ejecucin de los programas.
Las computadoras se hicieron ms populares, se hizo aparente que la
programacin en lenguaje mquina era demasiado lenta, por lo que la mayor
parte de los programadores empezaron a usar abreviaturas similares al
ingls para representar las operaciones elementales de la computadora.
Estas abreviaturas formaron la base de los lenguajes ensambladores.
Lenguajes ensambladores.
El lenguaje ensamblador es un derivado del lenguaje mquina y est
formado por abreviaturas de letras y nmeros llamadas mnemotcnicos. Con
la aparicin de este lenguaje se crearon los programas traductores para
poder pasar los programas escritos en lenguaje ensamblador a lenguaje
mquina, a la velocidad de las computadoras.
El lenguaje ensamblador es un lenguaje de programacin de bajo nivel
para los computadores, microprocesadores, micro controladores, y otros
circuitos integrados programables. En este lenguaje cada instruccin
equivale a una instruccin en lenguaje mquina, utilizando para su escritura
palabras mnemotcnicas en lugar de cadenas de bits.
Este lenguaje permite una optimizacin que no se consigue con
lenguajes de medio y alto nivel. Permite la creacin de programas muy
rpidos y muy pequeos, adems se tiene un control que no se consigue con
un lenguaje de alto nivel. Adems, goza de la ventaja de mnima ocupacin
de memoria y mnimo tiempo de ejecucin, en comparacin con el resultado
de la compilacin del programa equivalente escrito en otros lenguajes.
Lenguajes de alto nivel.
La utilizacin de las computadoras aument con rapidez con la llegada
de los lenguajes ensambladores, pero estos an necesitaban de muchas
instrucciones para llevar a cabo, inclusive, las tareas ms sencillas. Para
acelerar el proceso de programacin, se desarrollaron lenguajes de alto
nivel, en los cuales se podan escribir simples enunciados para poder llevar a
cabo tareas sustanciales.
Los programas de traduccin que convierten los programas de
lenguaje de alto nivel al lenguaje mquina se llaman compiladores. Los
lenguajes de alto nivel les permiten a los programadores escribir
instrucciones que parecen prcticamente como el ingls de todos los das y
contiene notaciones matemticas por lo comn utilizadas.
Estos son lenguajes independientes de la Arquitectura del ordenador.
Por lo que, en principio, un programa escrito en un lenguaje de alto nivel, lo
puedes migrar de una mquina a otra sin ningn tipo de problema. Estos
lenguajes permiten al programador olvidarse por completo del
funcionamiento interno de la mquina para la que estn diseando el
programa. Tan solo necesitan un traductor que entiendan el cdigo fuente
como las caractersticas de la mquina.
Los lenguajes de alto nivel suelen usar tipos de datos para la
programacin y hay lenguajes de propsito general, o sea, lenguajes para
cualquier tipo de aplicacin y lenguajes de propsito especfico, como es el
caso de FORTRAN, utilizado para trabajos cientficos. Es obvio que, los
lenguajes de alto nivel son mucho ms deseables desde el punto de vista del
programador que los lenguajes mquina o los ensambladores. C y C++ son,
de entre los lenguajes de alto nivel, los ms poderosos y los ms utilizados.
Assembler.
Es un lenguaje de programacin de bajo nivel. Consiste en un
conjunto de mnemnicos que representan instrucciones bsicas para
los computadores, microprocesadores, micro-controladores y otros circuitos
integrados programables. Implementa una representacin simblica de
los cdigos de mquina binarios y otras constantes necesarias para
programar una arquitectura de procesador y constituye la representacin
ms directa del cdigo mquina especfico para cada arquitectura legible por
un programador. Cada arquitectura de procesador tiene su propio lenguaje
ensamblador que usualmente es definida por el fabricante de hardware, y
est basada en los mnemnicos que simbolizan los pasos de procesamiento
(las instrucciones), los registros del procesador, las posiciones de memoria y
otras caractersticas del lenguaje. Un lenguaje ensamblador es por lo tanto
especfico de cierta arquitectura de computador fsica (o virtual). Esto est en
contraste con la mayora de los lenguajes de programacin de alto nivel, que
idealmente son porttiles.
Un programa utilitario llamado ensamblador es usado para traducir
sentencias del lenguaje ensamblador al cdigo de mquina del computador
objetivo. El ensamblador realiza una traduccin ms o menos isomorfa (un
mapeo de uno a uno) desde las sentencias mnemnicas a las instrucciones y
datos de mquina. Esto est en contraste con los lenguajes de alto nivel, en
los cuales una sola declaracin generalmente da lugar a muchas
instrucciones de mquina.
Muchos sofisticados ensambladores ofrecen mecanismos adicionales
para facilitar el desarrollo del programa, controlar el proceso de ensamblaje,
y la ayuda de depuracin. Particularmente, la mayora de los ensambladores
modernos incluyen una facilidad de macro (descrita ms abajo), y se
llaman macro ensambladores.
Fue usado principalmente en los inicios del desarrollo de software,
cuando an no se contaba con potentes lenguajes de alto nivel y los recursos
eran limitados. Actualmente se utiliza con frecuencia en ambientes
acadmicos y de investigacin, especialmente cuando se requiere la
manipulacin directa de hardware, alto rendimiento, o un uso de recursos
controlado y reducido. Tambin es utilizado en el desarrollo de controladores
de dispositivo (en ingls, device drivers) y en el desarrollo de sistemas
operativos, debido a la necesidad del acceso directo a las instrucciones de la
mquina. Muchos dispositivos programables (como el micro-controlador) an
cuentan con el ensamblador como la nica manera de ser manipulados.

Macros.
Es una serie de instrucciones que se almacenan para que se puedan
ejecutar de manera secuencial mediante una sola llamada u orden de
ejecucin. Dicho de otra manera, un macroinstruccin es una instruccin
compleja, formada por otras instrucciones ms sencillas. Esto permite la
automatizacin de tareas repetitivas.
Las macros tienden a almacenarse en el mbito del propio programa
que las utiliza y se ejecutan pulsando una combinacin especial de teclas o
un botn especialmente creado y asignado para tal efecto.
La diferencia entre un macroinstruccin y un programa es que en los
macroinstrucciones la ejecucin es secuencial y no existe otro concepto del
flujo de programa.

Lenguajes Orientados A Procedimientos.


Mtodo de programacin que requiere de una disciplina como
FORTRAN, COBOL, BASIC; C, Pascal y Xbase, El programador escribe el
cdigo en cierto orden para resolver el problema, basado en sus
conocimientos del proceso y de la programacin. La aplicacin resultante
fuerza al usuario a seguir un camino predefinido desde el paso A al paso B.
Un ejemplo tpico es el ingreso de datos.
Procesadores de Lenguajes.
Procesadores de lenguaje es el nombre genrico que reciben todas las aplicaciones
informticas en las cuales uno de los datos fundamentales de entrada es un lenguaje. La
definicin anterior afecta a una gran variedad de herramientas software, algunas de ellas
son las siguientes (expresando entre parntesis el trmino equivalente en lengua inglesa):

Traductores (translators)
Compiladores (compilers)
Ensambladores (assemblers)
Montadores de enlaces o enlazadores (linkers)
Cargadores (loaders)
Intrpretes (interpreters)
Desensambladores (dissemblers)
Descompiladores (decompilers)
Depuradores (debuggers)
Analizadores de rendimiento (profilers)
Optimizadores de cdigo (code optimizers)
Compresores (compressors)
Preprocesadores (preprocessors)
Formateadores (formatters)
Editores (editors)

Ensambladores.
Si el lenguaje fuente es el lenguaje ensamblador (en ingls assembly)
y el lenguaje objeto es el lenguaje mquina, entonces al traductor se le llama
ensamblador (en ingls Assembler). Los ensambladores son traductores
sencillos, en los que el lenguaje fuente tiene una estructura simple, que
permite una traduccin de una sentencia fuente a una instruccin en lenguaje
mquina, guardndose en casi todos los casos esta relacin uno a uno. Hay
ensambladores que tienen macroinstrucciones en su lenguaje.
Estos macroinstrucciones, de acuerdo con su nombre, se suelen
traducir a varias instrucciones de mquina. A este tipo de ensambladores se
les denomina macroensambladores (en ingls macroassembler).
Actualmente la mayor parte de los ensambladores comerciales son
macroensambladores
Compiladores.
Un compilador es un programa informtico que traduce un
programa escrito en un lenguaje de programacin a otro lenguaje
diferente.1 Usualmente el segundo lenguaje es lenguaje de mquina, pero
tambin puede ser un cdigo intermedio (bytecode), o simplemente texto.
Este proceso de traduccin se conoce como compilacin.
La construccin de un compilador involucra la divisin del proceso en una
serie de fases que variar con su complejidad. Generalmente estas fases se
agrupan en dos tareas: el anlisis del programa fuente y la sntesis del
programa objeto.
Anlisis: Se trata de la comprobacin de la correccin del programa
fuente, e incluye las fases correspondientes al Anlisis lxico (que
consiste en la descomposicin del programa fuente en componentes
lxicos), anlisis sintctico (agrupacin de los componentes lxicos en
frases gramaticales) y anlisis semntico (comprobacin de la validez
semntica de las sentencias aceptadas en la fase de anlisis sintctico).
Sntesis: Su objetivo es la generacin de la salida expresada en
el lenguaje objeto y suele estar formado por una o varias combinaciones
de fases de generacin de cdigo (normalmente se trata de cdigo
intermedio o de cdigo objeto) y de optimizacin de cdigo (en las que se
busca obtener un cdigo lo ms eficiente posible).
Alternativamente, las fases descritas para las tareas de anlisis y sntesis se
pueden agrupar en Front-end y Back-end:

Front-end: es la parte que analiza el cdigo fuente, comprueba su validez,


genera el rbol de derivacin y rellena los valores de la tabla de smbolos.
Esta parte suele ser independiente de la plataforma o sistema para el
cual se vaya a compilar, y est compuesta por las fases comprendidas
entre el anlisis Lxico y la generacin de cdigo intermedio.
Back-end: es la parte que genera el cdigo mquina, especfico de una
plataforma, a partir de los resultados de la fase de anlisis, realizada por
el Front End.
Esta divisin permite que el mismo Back End se utilice para generar el cdigo
mquina de varios lenguajes de programacin distintos y que el mismo Front
End que sirve para analizar el cdigo fuente de un lenguaje de
programacin concreto sirva para generar cdigo mquina en varias
plataformas distintas. Suele incluir la generacin y optimizacin del cdigo
dependiente de la mquina.
Generadores e intrpretes.
Un archivo fuente es el que contiene el texto del cdigo del programa
que ha sido escrito por el equipo de programadores. Las computadoras
solamente pueden ejecutar instrucciones que estn en cdigo mquina, as
que los programas en cdigo fuente no se pueden ejecutar directamente en
la computadora. Un compilador debe, en primer lugar, convertir el archivo
fuente en un archivo intermedio que se llama archivo objeto o archivo cdigo
objeto (figura 24). El archivo objeto contiene una traduccin del cdigo del
programa en lenguaje mquina, pero an no se considera un programa
ejecutable.

Figura. 24. Historia de la compilacin de un programa, desde el cdigo fuente


hasta el cdigo ejecutable.
En ciencias de la computacin, intrprete o interpretador es
un programa informtico capaz de analizar y ejecutar otros programas,
escritos en un lenguaje de alto nivel. Los intrpretes se diferencian de
los compiladores en que mientras estos traducen un programa desde su
descripcin en un lenguaje de programacin al cdigo de mquina del
sistema, los intrpretes slo realizan la traduccin a medida que sea
necesaria, tpicamente, instruccin por instruccin, y normalmente no
guardan el resultado de dicha traduccin.
Usando un intrprete, un solo archivo fuente puede producir
resultados iguales incluso en sistemas sumamente diferentes (ej. una PC y
un PlayStation 3). Usando un compilador, un solo archivo fuente puede
producir resultados iguales solo si es compilado a distintos ejecutables
especficos a cada sistema.

Encadenamiento.
El encadenamiento es un proceso de combinar el cdigo de mquina y
los datos en archivos objeto con archivos de biblioteca para crear un archivo
ejecutable. Como se ver adelante, este proceso es complicado.

El cdigo de C requiere la biblioteca estndar de C y un cdigo de


inicio
especial para ejecutarse. Es mucho ms fcil dejar que el compilador
de C
llame al encadenador con los parmetros correctos que intentar llamar
al encadenador directamente.
Ejemplo:
Por ejemplo encadenar el cdigo para el primer
programa utilizando DJGPP, digite:
Gcc -o first driver.o first.o asm io.o
Esto crea un ejecutable llamado first.exe (o solo first bajo Linux).
Con Borland uno usara:
bcc32 first.obj driver.obj asm io.obj
Borland usa el nombre del primer archivo en la lista para determinar el
nombre del ejecutable. As en el caso anterior el programa debera llamarse
first.exe.
Es posible combinar el paso de compilar y encadenar.
Por ejemplo:
gcc -o first driver.c first.o asm io.o
Ahora gcc compilar driver.C y entonces lo encadenar.
Ejecucin de un programa modulo objeto.
Es un mdulo fuente ensamblado o compilado que est listo para ser
unido a otros para formar un programa ejecutable. Si se trata de todo un
programa (un solo mdulo) se denomina programa objeto.
Encadenamiento (LINKAGE).
Tambin denominado montador, es un programa para crear un cdigo
ejecutable a partir de uno o ms mdulos objeto resolviendo las referencias
existentes entre los mismos y asignando direcciones definitivas a los
elementos reubicables. Tambin extraen las rutinas necesarias de las
libreras para incluirlas en el programa ejecutable final.
Cargadores Ejecucin.
Es una rutina que lee un programa ejecutable y lo almacena en la
memoria principal antes de su ejecucin.
Conclusin
Este trabajo se realiz con la intencin de llevarle al estudiante o lector
una investigacin, que sea de fcil manejo y comprensin para lograr un
mayor entendimiento sobre el tema ya antes mencionado.
Bibliografa
http://www.unamerida.com/AE277227-B2E7-4AA6-8EB6-
49251A979878/FinalDownload/DownloadId-
BF43DB9592985E2C612BA7F139EAC763/AE277227-B2E7-
4AA6-8EB6-49251A979878/documentos/golfredo/t15.pdf
https://es.wikipedia.org/wiki/Compilador
https://es.wikipedia.org/wiki/Macro
https://es.wikipedia.org/wiki/Lenguaje_ensamblador
http://liscarol09.blogspot.com/2010/07/lenguajes-de-un-
computador.html
https://www.ecured.cu/Lenguajes_de_Computadora
http://html.rincondelvago.com/lenguajes-de-
programacion_8.html
https://rossherreradeluxe.wordpress.com/category/sistemas-
operativos/

También podría gustarte