• No se han encontrado resultados

Lenguajes Lenguajes de programaci´on

N/A
N/A
Protected

Academic year: 2021

Share "Lenguajes Lenguajes de programaci´on"

Copied!
21
0
0

Texto completo

(1)

Lenguajes

Lenguajes de programaci´ on

Jonatan Gom´ ez Perdomo, Ph.D.

[email protected]

Arles Rodr´ıguez, Ph.D.(c)

[email protected]

Camilo Cubides, Ph.D.(c)

[email protected]

Grupo de investigaci´on en vida artificial – Research Group on Artificial Life – (Alife) Departamento de Ingenier´ıa de Sistemas e Industrial

Facultad de Ingenier´ıa

(2)

Lenguajes

Agenda

1

Lenguajes

2

Lenguajes de programaci´ on

3

Lenguajes de bajo y de alto nivel

(3)

Lenguajes

Lenguaje

Un lenguaje es un conjunto de elementos que permite expresarnos y

comunicarnos con otros entes, ya sean personas, animales, computadores,

etc. Un lenguaje est´ a definido por tres elementos, el l´ exico, la sintaxis y la

sem´ antica.

(4)

Lenguajes

L´ exico

El l´ exico de un lenguaje lo conforman las unidades m´ınimas con significado

completo. A cada uno de estas unidades m´ınimas con significado se le

conoce como lexema. Por ejemplo, en el espa˜ nol, las palabras y los

s´ımbolos de puntuaci´ on (que son usados para formar frases, oraciones y

p´ arrafos) conforman el l´ exico. A tales lexemas se les asocia un significado

preciso en t´ erminos de las frases construidas con ellos.

(5)

Lenguajes

Sintaxis

La sintaxis de un lenguaje explica la forma en que se pueden construir

frases en el lenguaje a partir del l´ exico. Usualmente la sintaxis se presenta

como una colecci´ on de reglas de reescritura que se definen con una

gram´ atica. ´ Estas son reglas que indican como unos s´ımbolos de la

gram´ atica pueden ser reescritos por otros s´ımbolos de la gram´ atica o por

lexemas. La idea es que al final del proceso de reescritura s´ olo se tengan

lexemas. Por ejemplo en espa˜ nol una frase se puede reescribir como un

sujeto y un predicado, a su vez un sujeto se puede reescribir como un

art´ıculo, un sustantivo y un adjetivo, finalmente un sustantivo puede ser

reescrito como la palabra perro.

(6)

Lenguajes

Sem´ antica

La sem´ antica de un lenguaje define la forma en que se le asocia significado (sentido) a las frases construidas mediante la gram´ atica. En espa˜ nol la sem´ antica no es f´ acil de definir ya que intervienen elementos muy

elaborados que han sido construidos de manera natural a trav´ es del tiempo

(cada objeto/idea conocido(a) por el ser humano esta asociado(a) con una

palabra). El sentido de una frase o una oraci´ on en espa˜ nol depende mucho

del contexto en el que se escribe o dice la frase y del posible conjunto de

significados el cual es muy grande. Este hecho es lo que hace dif´ıcil, para

los computadores actuales, trabajar directamente en lenguaje natural.

(7)

Lenguajes de programaci´on

Agenda

1

Lenguajes

2

Lenguajes de programaci´ on

3

Lenguajes de bajo y de alto nivel

(8)

Lenguajes de programaci´on

Lenguajes de programaci´ on I

Los computadores hacen exactamente lo que se les dice. En programaci´ on

nosotros tenemos un lenguaje bien definido donde los significados de las

frases son exactas. Esto exige que el programador exprese de forma precisa

lo que desea hacer.

(9)

Lenguajes de programaci´on

Lenguajes de programaci´ on II

El lenguaje espa˜ nol es muy ambiguo. Para el computador no hay puntos intermedios, s´ olo valores de verdad, ceros y unos (verdadero o falso).

Desde este punto, la l´ ogica nos permite entender los lenguajes de

programaci´ on. Los lenguajes de programaci´ on son aquellos lenguajes que

nos permiten comunicarnos con el computador para ordenarles que hacer.

(10)

Lenguajes de programaci´on

Lenguajes de programaci´ on III

Al principio programar era muy complicado. En el principio los programas se hac´ıan casi que en hardware: se requer´ıa que los programas se

escribieran cableando ciertas compuertas de la m´ aquina para determinar

que el programa hiciera lo que ten´ıa que hacer. El problema consist´ıa en la

forma en la que se cableaban los circuitos. Un error en el cableado en este

sentido era dif´ıcil de detectar.

(11)

Lenguajes de programaci´on

Lenguajes de programaci´ on IV

Posteriormente se pens´ o en separar el programa de la parte f´ısica y as´ı es como llegaron las tarjetas perforadas inspiradas en el invento del telar. Los programas eran representados por huecos en tarjetas. La m´ aquina

realizaba lecturas de aquellos huecos de las tarjetas en un orden espec´ıfico,

de desordenarse las tarjetas el programa dejar´ıa de funcionar.

(12)

Lenguajes de programaci´on

Lenguajes de programaci´ on V

Posteriormente el hombre construy´ o m´ aquinas de c´ alculo para tareas muy espec´ıficas como investigaci´ on y militares, usando dispositivos

electro-mec´ anicos como rel´ es y tubos de vac´ıo. Se programaba revisando

las salidas de los estados de los tubos (encendido ´ o 1 y apagado ´ o 0). A

estos computadores sol´ıan acercarseles insectos en busca de calor da˜ nando

los tubos. De all´ı proviene el termino “bug” (bicho de programaci´ on)

conocido actualmente en programaci´ on como un defecto en el programa.

(13)

Lenguajes de programaci´on

Lenguajes de programaci´ on VI

Estos computadores dieron paso a los elementos transistorizados. Las

m´ aquinas de c´ omputo de esta generaci´ on ten´ıan pocas facilidades de

programaci´ on. La comunicaci´ on se establec´ıa en lenguaje de m´ aquina

(lenguaje binario: ceros y unos). Estos aparatos eran grandes y costosos.

(14)

Lenguajes de bajo y de alto nivel

Agenda

1

Lenguajes

2

Lenguajes de programaci´ on

3

Lenguajes de bajo y de alto nivel

(15)

Lenguajes de bajo y de alto nivel

Lenguaje de m´ aquina I

Es el ´ unico lenguaje que entiende el hardware (m´ aquina) y usa exclusivamente el sistema binario (ceros y unos). Este lenguaje es espec´ıfico para cada hardware (procesador, dispositivos, etc.).

El programa (tanto c´ odigos de instrucci´ on como datos) es almacenado en memoria. La estructura de una instrucci´ on en lenguaje m´ aquina es la siguiente:

CODIGO ARGUMENTO(S)

0010 00011010

1010 10111000

0110 11010001

(16)

Lenguajes de bajo y de alto nivel

Lenguaje de m´ aquina II

Surgi´ o la necesidad de desarrollar un lenguaje de nivel mayor al de la m´ aquina, y se desarroll´ o una forma de construir un lenguaje intermedio que empleara mnem´ onicos (palabras cortas escritas con caracteres alfanum´ ericos), para codificar las operaciones. Los datos y/o direcciones son codificados generalmente como n´ umeros en un sistema hexadecimal.

Generalmente es espec´ıfico (aunque no ´ unico) para cada lenguaje de m´ aquina. La estructura de una instrucci´ on en este lenguaje es la siguiente:

MNEMONICO ARGUMENTO(S) ADD R1, F4

MOV F4, C2

SUB AX, AX

(17)

Lenguajes de bajo y de alto nivel

Lenguaje ensamblador

Un Ensamblador es un software, generalmente escrito en lenguaje de m´ aquina, que es capaz de traducir de lenguaje ensamblador a lenguaje de m´ aquina.

Este lenguaje dio el salto fundamental. Dicho salto se da cuando se logra separar el programa de la m´ aquina empleando los conceptos de m´ aquina de Turing y la arquitectura de Von Neumann. Almacenando el programa en memoria y empleando el hardware como elemento de control.

Esto dio origen a los sistemas operativos, logrando que la m´ aquina

completa pudiera controlar otro programa.

(18)

Lenguajes de bajo y de alto nivel

Lenguajes de alto nivel I

Posteriormente se plante´ o la idea de generar un lenguaje mas parecido al lenguaje natural y que realizara la compilaci´ on del programa y generara un programa de c´ odigo de m´ aquina. Lenguajes como Basic empleaban interpretes tomando cada instrucci´ on y traduci´ endola a Ensamblador y de Ensamblador a c´ odigo de m´ aquina.

Se plante´ o la idea de tomar un c´ odigo y traducirlo completamente a

lenguaje de m´ aquina mediante un proceso de compilaci´ on. El lenguaje de

programaci´ on C entra en esta categor´ıa de lenguajes.

(19)

Lenguajes de bajo y de alto nivel

Lenguajes de alto nivel II

Dichos lenguajes est´ an basados en una estructura gramatical para codificar estructuras de control y/o instrucciones. Cuenta con un conjunto de palabras reservadas (escritas en lenguaje natural).

Estos lenguajes permiten el uso de s´ımbolos aritm´ eticos y relacionales para

describir c´ alculos matem´ aticos, y generalmente representan las cantidades

num´ ericas mediante sistema decimal.

(20)

Lenguajes de bajo y de alto nivel

Lenguajes de alto nivel III

Gracias a su estructura gramatical, estos lenguajes permiten al

programador olvidar el direccionamiento de memoria (donde cargar datos y/o instrucciones en la memoria), ya que este se realiza mediante el uso de conceptos como el de variable. Los compiladores e interpretes son software capaz de traducir de un lenguaje de alto nivel al lenguaje ensamblador espec´ıfico de una m´ aquina. Los primeros toman todo el programa en lenguaje de alto nivel, lo pasan a lenguaje ensamblador y luego lo ejecutan.

Los ´ ultimos toman instrucci´ on por instrucci´ on, la traducen y la van

ejecutando.

(21)

Lenguajes de bajo y de alto nivel

Lenguajes de alto nivel IV

Posteriormente se desarrollaron lenguajes intermedios que tomaran una

parte compilada y otra interpretada. Es cuando surgen lenguajes como

Java y Python. Java compila su c´ odigo y genera c´ odigo bytecode que se

ejecuta en una m´ aquina virtual espec´ıfica que conoce las instrucciones de

bytecode permitiendo su ejecuci´ on en diferentes sistemas operativos.

Referencias

Documento similar

Gastos derivados de la recaudación de los derechos económicos de la entidad local o de sus organis- mos autónomos cuando aquélla se efectúe por otras enti- dades locales o

1. LAS GARANTÍAS CONSTITUCIONALES.—2. C) La reforma constitucional de 1994. D) Las tres etapas del amparo argentino. F) Las vías previas al amparo. H) La acción es judicial en

Rossi Jiménez, Carlos Manuel Guevara Plaza, Antonio Jesús Enciso García-Oliveros, Manuel N. Universidad de Málaga Institución Ferial de Madrid Organización de actividades y

Esta U.D.A. de Podología nace con la voluntad de dar respuesta a la necesidad de contribuir a la integración de conocimiento, actitudes y habilidades en la formación de

De la Salud de la Universidad de Málaga y comienza el primer curso de Grado en Podología, el cual ofrece una formación generalista y profesionalizadora que contempla

Como en el caso de los tipos enteros, los lenguajes suelen soportar varios tipos real, de modo que el programador pueda seleccionar aquel cuyo rango y precisi´on en el coeficiente

Fuente de emisión secundaria que afecta a la estación: Combustión en sector residencial y comercial Distancia a la primera vía de tráfico: 3 metros (15 m de ancho)..

En este sentido, Handel, De Soto y London (1968), máximos ex- ponentes de la tesis de que 10s sujetos utilizan imagenes espaciales para resolver problemas de deducción,