Sei sulla pagina 1di 14

Lenguaje de programacin

Captura de la microcomputadora Commodore PET-32 mostrando un programa en el


lenguaje de programacin BASIC, bajo el emulador ICE en una distribucin
!"#$%inu&'
#n ejemplo de cdigo (uente escrito en el lenguaje de programacin )a*a, +ue
imprimir, el mensaje -.ello /orld0- a la salida est,ndar cuando es compilado 1
ejecutado
#n lenguaje de programacin es un lenguaje (ormal dise2ado para e&presar procesos
+ue pueden ser lle*ados a cabo por m,+uinas como las computadoras'
Pueden usarse para crear programas +ue controlen el comportamiento (3sico 1 lgico de
una m,+uina, para e&presar algoritmos con precisin, o como modo de comunicacin
4umana'
5
Est, (ormado por un conjunto de s3mbolos 1 reglas sint,cticas 1 sem,nticas +ue de(inen
su estructura 1 el signi(icado de sus elementos 1 e&presiones' Al proceso por el cual se
escribe, se prueba, se depura, se compila 6de ser necesario7 1 se mantiene el cdigo
(uente de un programa in(orm,tico se le llama programacin'
Tambi8n la palabra programacin se de(ine como el proceso de creacin de un
programa de computadora, mediante la aplicacin de procedimientos lgicos, a tra*8s
de los siguientes pasos9
El desarrollo lgico del programa para resol*er un problema en particular'
Escritura de la lgica del programa empleando un lenguaje de programacin
espec3(ico 6codi(icacin del programa7'
Ensamblaje o compilacin del programa 4asta con*ertirlo en lenguaje de
m,+uina'
Prueba 1 depuracin del programa'
:esarrollo de la documentacin'
E&iste un error com;n +ue trata por sinnimos los t8rminos <lenguaje de programacin<
1 <lenguaje in(orm,tico<' %os lenguajes in(orm,ticos engloban a los lenguajes de
programacin 1 a otros m,s, como por ejemplo .T=% 6lenguaje para el marcado de
p,ginas >eb +ue no es propiamente un lenguaje de programacin, sino un conjunto de
instrucciones +ue permiten estructurar el contenido de los documentos7'
Permite especi(icar de manera precisa sobre +u8 datos debe operar una computadora,
cmo deben ser almacenados o transmitidos 1 +u8 acciones debe tomar bajo una *ariada
gama de circunstancias' Todo esto, a tra*8s de un lenguaje +ue intenta estar
relativamente pr&imo al lenguaje 4umano o natural' #na caracter3stica rele*ante de los
lenguajes de programacin es precisamente +ue m,s de un programador pueda usar un
conjunto com;n de instrucciones +ue sean comprendidas entre ellos para reali?ar la
construccin de un programa de (orma colaborati*a'
ndice
5 .istoria
2 Elementos
o 2'5 ariables 1 *ectores
o 2'2 Condicionantes
o 2'3 Bucles
o 2'@ Aunciones
o 2'B Sinta&is
o 2'C Sem,ntica est,tica
o 2'D Sistema de tipos
2'D'5 %enguajes tipados *ersus lenguajes no tipados
2'D'2 Tipos est,ticos *ersus tipos din,micos
2'D'3 Tipos d8biles 1 tipos (uertes
3 Implementacin
@ T8cnica
o @'5 Paradigmas
B 8ase tambi8n
C Ee(erencias
D Enlaces e&ternos
Historia
Cdigo Aortran en una tarjeta per(orada, mostrando el uso especiali?ado de las
columnas 5-B, C 1 D3-FG'
Para +ue la computadora entienda nuestras instrucciones debe usarse un lenguaje
espec3(ico conocido como cdigo m,+uina, el cual la m,+uina comprende (,cilmente,
pero +ue lo 4ace e&cesi*amente complicado para las personas' :e 4ec4o slo consiste
en cadenas e&tensas de n;meros G 1 5'
Para (acilitar el trabajo, los primeros operadores de computadoras decidieron 4acer un
traductor para reempla?ar los G 1 5 por palabras o abstraccin de palabras 1 letras
pro*enientes del ingl8sH 8ste se conoce como lenguaje ensamblador' Por ejemplo, para
sumar se usa la letra A de la palabra inglesa add 6sumar7' El lenguaje ensamblador sigue
la misma estructura del lenguaje m,+uina, pero las letras 1 palabras son m,s (,ciles de
recordar 1 entender +ue los n;meros'
%a necesidad de recordar secuencias de programacin para las acciones usuales lle* a
denominarlas con nombres (,ciles de memori?ar 1 asociar9 ADD 6sumar7, SUB 6restar7,
MUL 6multiplicar7, CALL 6ejecutar subrutina7, etc' A esta secuencia de posiciones se le
denomin -instrucciones-, 1 a este conjunto de instrucciones se le llam lenguaje
ensamblador' Posteriormente aparecieron di(erentes lenguajes de programacin, los
cuales reciben su denominacin por+ue tienen una estructura sint,ctica similar a los
lenguajes escritos por los 4umanos, denominados tambi8n lenguajes de alto ni*el'
%a primera programadora de computadora conocida (ue Ada %o*elace, 4ija de Anabella
=ilbanIe B1ron 1 %ord B1ron' Anabella introdujo en las matem,ticas a Ada +uien,
despu8s de conocer a C4arles Babbage, tradujo 1 ampli una descripcin de su m,+uina
anal3tica' Incluso aun+ue Babbage nunca complet la construccin de cual+uiera de sus
m,+uinas, el trabajo +ue Ada reali? con 8stas le 4i?o ganarse el t3tulo de primera
programadora de computadoras del mundo' El nombre del lenguaje de programacin
Ada (ue escogido como 4omenaje a esta programadora'
A (inales de 5JB3, )o4n BacIus someti una propuesta a sus superiores en IB= para
desarrollar una alternati*a m,s pr,ctica al lenguaje ensamblador para programar la
computadora central IB= DG@' El 4istrico e+uipo Aortran de BacIus consisti en los
programadores Eic4ard !oldberg, S4eldon A' Best, .arlan .erricI, Peter S4eridan, Eo1
"utt, Eobert "elson, Ir*ing Killer, %ois .aibt 1 :a*id Sa1re'
2
El primer manual para el lenguaje Aortran apareci en octubre de 5JBC, con el primer
compilador Aortran entregado en abril de 5JBD' Esto era un compilador optimi?ado,
por+ue los clientes eran reacios a usar un lenguaje de alto ni*el a menos +ue su
compilador pudiera generar cdigo cu1o desempe2o (uera comparable al de un cdigo
4ec4o a mano en lenguaje ensamblador'
En 5JCG, se cre CLBL%, uno de los lenguajes usados a;n en la actualidad, en
in(orm,tica de gestin'
A medida +ue la complejidad de las tareas +ue reali?aban las computadoras aumentaba,
se 4i?o necesario disponer de un m8todo m,s e(iciente para programarlas' Entonces, se
crearon los lenguajes de alto ni*el, como lo (ue BASIC en las *ersiones introducidas en
los microordenadores de la d8cada de 5JFG' =ientras +ue una tarea tan sencilla como
sumar dos n;meros puede necesitar *arias instrucciones en lenguaje ensamblador, en un
lenguaje de alto ni*el bastar, una sola sentencia'
Elementos
Variables y vectores
%as *ariables podr3an cali(icarse como contenedores de datos 1 por ello se di(erencian
seg;n el tipo de dato +ue son capaces de almacenar' En la ma1or3a de lenguajes de
programacin se re+uiere especi(icar un tipo de *ariable concreto para guardar un dato
concreto' Por ejemplo, en )a*a, si deseamos guardar una cadena de te&to deberemos
especi(icar +ue la *ariable es del tipo String' Por otra parte, en lenguajes como el P.P
este tipo de especi(icacin de *ariables no es necesario' Adem,s, e&isten *ariables
compuestas por *arias *ariables llamadas *ectores' #n *ector no es m,s +ue un
conjunto de *ariables consecuti*as en memoria 1 del mismo tipo guardadas dentro de
una *ariable contenedor' A continuacin, un listado con los tipos de *ariables 1 *ectores
m,s comunes9
ariables tipo C4ar9 Estas *ariables contienen un ;nico car,cter, es decir, una
letra, un signo o un n;mero'
ariables tipo Int9 Contienen un n;mero entero'
ariables tipo (loat9 Contienen un n;mero decimal'
ariables tipo String9 Contienen cadenas de te&to, o lo +ue es lo mismo, es un
*ector con *arias *ariables del tipo C4ar'
ariables del tipo Boolean9 Solo pueden contener un G o un 5' El cero es
considerado para muc4os lenguajes como el literal -Aalse-, mientras +ue el 5 se
considera -True-'
Condicionantes
%os condicionantes son estructuras de cdigo +ue indican +ue, para +ue cierta parte del
programa se ejecute, deben cumplirse ciertas premisasH por ejemplo9 +ue dos *alores
sean iguales, +ue un *alor e&ista, +ue un *alor sea ma1or +ue otro''' Estos
condicionantes por lo general solo se ejecutan una *e? a lo largo del programa' %os
condicionantes m,s conocidos 1 empleados en programacin son9
If9 Indica una condicin para +ue se ejecute una parte del programa'
Else if9 Siempre *a precedido de un -I(- e indica una condicin para +ue se
ejecute una parte del programa siempre +ue no cumpla la condicin del i( pre*io
1 si se cumpla con la +ue el -else i(- especi(i+ue'
Else9 Siempre precedido de -I(- 1 en ocasiones de -Else I(-' Indica +ue debe
ejecutarse cuando no se cumplan las condiciones pr8*ias'
Bucles
%os bucles son parientes cercanos de los condicionantes, pero ejecutan constantemente
un cdigo mientras se cumpla una determinada condicin' %os m,s (recuentes son los
siguientes9
For9 Ejecuta un cdigo mientras una *ariable se encuentre entre 2 determinados
par,metros'
While9 Ejecuta un cdigo mientras se cumpla la condicin +ue solicita'
.a1 +ue decir +ue a pesar de +ue e&istan distintos tipos de bucles, ambos son capaces
de reali?ar e&actamente las mismas (unciones' El empleo de uno u otro depende, por lo
general, del gusto del programador'
Funciones
%as (unciones se crearon para e*itar tener +ue repetir constantemente (ragmentos de
cdigo' #na (uncin podr3a considerarse como una *ariable +ue encierra cdigo dentro
de si' Por lo tanto cuando accedemos a dic4a *ariable 6la (uncin7 en realidad lo +ue
estamos es diciendo al programa +ue ejecute un determinado cdigo prede(inido
anteriormente'
Todos los lenguajes de programacin tienen algunos elementos de (ormacin primiti*os
para la descripcin de los datos 1 de los procesos o trans(ormaciones aplicadas a estos
datos 6tal como la suma de dos n;meros o la seleccin de un elemento +ue (orma parte
de una coleccin7' Estos elementos primiti*os son de(inidos por reglas sint,cticas 1
sem,nticas +ue describen su estructura 1 signi(icado respecti*amente'
Sintaxis
Con (recuencia se resaltan los elementos de la sinta&is con colores di(erentes para
(acilitar su lectura' Este ejemplo est, escrito en P1t4on'
A la (orma *isible de un lenguaje de programacin se le conoce como sinta&is' %a
ma1or3a de los lenguajes de programacin son puramente te&tuales, es decir, utili?an
secuencias de te&to +ue inclu1en palabras, n;meros 1 puntuacin, de manera similar a
los lenguajes naturales escritos' Por otra parte, 4a1 algunos lenguajes de programacin
+ue son m,s gr,(icos en su naturale?a, utili?ando relaciones *isuales entre s3mbolos
para especi(icar un programa'
%a sinta&is de un lenguaje de programacin describe las combinaciones posibles de los
s3mbolos +ue (orman un programa sint,cticamente correcto' El signi(icado +ue se le da
a una combinacin de s3mbolos es manejado por su sem,ntica 61a sea (ormal o como
parte del cdigo duro de la re(erencia de implementacin7' :ado +ue la ma1or3a de los
lenguajes son te&tuales, este art3culo trata de la sinta&is te&tual'
%a sinta&is de los lenguajes de programacin es de(inida generalmente utili?ando una
combinacin de e&presiones regulares 6para la estructura l8&ica7 1 la "otacin de
BacIus-"aur 6para la estructura gram,tica7' Este es un ejemplo de una gram,tica
simple, tomada de %isp9
expresin ::= tomo | lista
tomo ::= nmero | smbolo
nmero ::= [+!" [#$##%#!+
smbolo ::= [#A##&#! [#a##'#!()
lista ::= #*# expresin) #+#
Con esta gram,tica se especi(ica lo siguiente9
una expresin puede ser un tomo o una listaH
un tomo puede ser un nmero o un smboloH
un nmero es una secuencia continua de uno o m,s d3gitos decimales, precedido
opcionalmente por un signo m,s o un signo menosH
un smbolo es una letra seguida de cero o m,s caracteres 6e&clu1endo espacios7H
1
una lista es un par de par8ntesis +ue abren 1 cierran, con cero o m,s e&presiones
en medio'
Algunos ejemplos de secuencias bien (ormadas de acuerdo a esta gram,tica9
<,-./0<, <*+<, <*a b 1-.- *,++<
"o todos los programas sint,cticamente correctos son sem,nticamente correctos'
=uc4os programas sint,cticamente correctos tienen inconsistencias con las reglas del
lenguajeH 1 pueden 6dependiendo de la especi(icacin del lenguaje 1 la solide? de la
implementacin7 resultar en un error de traduccin o ejecucin' En algunos casos, tales
programas pueden e&4ibir un comportamiento inde(inido' Adem,s, incluso cuando un
programa est, bien de(inido dentro de un lenguaje, toda*3a puede tener un signi(icado
+ue no es el +ue la persona +ue lo escribi estaba tratando de construir'
#sando el lenguaje natural, por ejemplo, puede no ser posible asignarle signi(icado a
una oracin gramaticalmente *,lida o la oracin puede ser (alsa9
-%as ideas *erdes 1 descoloridas duermen (uriosamente- es una oracin bien
(ormada gramaticalmente pero no tiene signi(icado com;nmente aceptado'
-)uan es un soltero casado- tambi8n est, bien (ormada gramaticalmente pero
e&presa un signi(icado +ue no puede ser *erdadero'
El siguiente (ragmento en el lenguaje C es sint,cticamente correcto, pero ejecuta una
operacin +ue no est, de(inida sem,nticamente 6dado +ue p es un apuntador nulo, las
operaciones p2real 1 p2im no tienen ning;n signi(icado79
1omplex )p = 3ULL4
1omplex abs5p = s6rt *p2real ) p2real + p2im ) p2im+4
Si la declaracin de tipo de la primera l3nea (uera omitida, el programa disparar3a un
error de compilacin, pues la *ariable -p- no estar3a de(inida' Pero el programa ser3a
sint,cticamente correcto toda*3a, dado +ue las declaraciones de tipo pro*een
in(ormacin sem,ntica solamente'
%a gram,tica necesaria para especi(icar un lenguaje de programacin puede ser
clasi(icada por su posicin en la )erar+u3a de C4omsI1' %a sinta&is de la ma1or3a de los
lenguajes de programacin puede ser especi(icada utili?ando una gram,tica Tipo-2, es
decir, son gram,ticas libres de conte&to' Algunos lenguajes, inclu1endo a Perl 1 a %isp,
contienen construcciones +ue permiten la ejecucin durante la (ase de an,lisis' %os
lenguajes +ue permiten construcciones +ue permiten al programador alterar el
comportamiento de un anali?ador 4acen del an,lisis de la sinta&is un problema sin
decisin ;nica, 1 generalmente oscurecen la separacin entre an,lisis 1 ejecucin' En
contraste con el sistema de macros de %isp 1 los blo+ues BE!I" de Perl, +ue pueden
tener c,lculos generales, las macros de C son meros reempla?os de cadenas, 1 no
re+uieren ejecucin de cdigo'
Semntica esttica
%a sem,ntica est,tica de(ine las restricciones sobre la estructura de los te&tos *,lidos
+ue resulta imposible o mu1 di(3cil e&presar mediante (ormalismos sint,cticos est,ndar'
Para los lenguajes compilados, la sem,ntica est,tica b,sicamente inclu1e las reglas
sem,nticas +ue se pueden *eri(icar en el momento de compilar' Por ejemplo el c4e+ueo
de +ue cada identi(icador sea declarado antes de ser usado 6en lenguajes +ue re+uieren
tales declaraciones7 o +ue las eti+uetas en cada bra?o de una estructura case sean
distintas' =uc4as restricciones importantes de este tipo, como la *alidacin de +ue los
identi(icadores sean usados en los conte&tos apropiados 6por ejemplo no sumar un
entero al nombre de una (uncin7, o +ue las llamadas a subrutinas tengan el n;mero 1
tipo de par,metros adecuado, puede ser implementadas de(ini8ndolas como reglas en
una lgica conocida como sistema de tipos' Ltras (ormas de an,lisis est,ticos, como los
an,lisis de (lujo de datos, tambi8n pueden ser parte de la sem,ntica est,tica' Ltros
lenguajes de programacin como )a*a 1 CM tienen un an,lisis de(inido de asignaciones,
una (orma de an,lisis de (lujo de datos, como parte de su sem,ntica est,tica'
Sistema de tipos
Art3culo principal9 Sistema de tipos
#n sistema de tipos de(ine la manera en la cual un lenguaje de programacin clasi(ica
los *alores 1 e&presiones en tipos, cmo pueden ser manipulados dic4os tipos 1 cmo
interact;an' El objeti*o de un sistema de tipos es *eri(icar 1 normalmente poner en
*igor un cierto ni*el de e&actitud en programas escritos en el lenguaje en cuestin,
detectando ciertas operaciones in*,lidas' Cual+uier sistema de tipos decidible tiene sus
*entajas 1 des*entajas9 mientras por un lado rec4a?a muc4os programas incorrectos,
tambi8n pro43be algunos programas correctos aun+ue poco comunes' Para poder
minimi?ar esta des*entaja, algunos lenguajes inclu1en lagunas de tipos, con*ersiones
e&pl3citas no c4ecadas +ue pueden ser usadas por el programador para permitir
e&pl3citamente una operacin normalmente no permitida entre di(erentes tipos' En la
ma1or3a de los lenguajes con tipos, el sistema de tipos es usado solamente para c4ecar
los tipos de los programas, pero *arios lenguajes, generalmente (uncionales, lle*an a
cabo lo +ue se conoce como in(erencia de tipos, +ue le +uita al programador la tarea de
especi(icar los tipos' Al dise2o 1 estudio (ormal de los sistemas de tipos se le conoce
como teora de tipos'
Lenguajes tipados versus lenguajes no tipados
El texto que sigue es una traduccin defectuosa o incompleta.
Si +uieres colaborar con /iIipedia, busca el art3culo original 1 mejora o (inali?a esta
traduccin'
Puedes dar a*iso al autor principal del art3culo pegando el siguiente cdigo en su p,gina de
discusin9 77s8bst:A9iso mal tra:81i:o|Len;8a<e :e pro;rama1in==
>>>>
Se dice +ue un lenguaje tiene tipos si la especi(icacin de cada operacin de(ine tipos de
datos para los cuales la operacin es aplicable, con la implicacin de +ue no es aplicable
a otros tipos' Por ejemplo, -este texto entre 1omillas- es una cadena' En la
ma1or3a de los lenguajes de programacin, di*idir un n;mero por una cadena no tiene
ning;n signi(icado' Por tanto, la ma1or3a de los lenguajes de programacin modernos
rec4a?aran cual+uier intento de ejecutar dic4a operacin por parte de alg;n programa'
En algunos lenguajes, estas operaciones sin signi(icado son detectadas cuando el
programa es compilado 6*alidacin de tipos -est,tica-7 1 son rec4a?adas por el
compilador, mientras en otros son detectadas cuando el programa es ejecutado
6*alidacin de tipos -din,mica-7 1 se genera una e&cepcin en tiempo de ejecucin'
#n caso especial de lenguajes de tipo son los lenguajes de tipo sencillo' Estos son con
(recuencia lenguajes de marcado o de scripts, como EENN o S!=%, 1 solamente
cuentan con un tipo de datosH com;nmente cadenas de caracteres +ue luego son usadas
tanto para datos num8ricos como simblicos'
En contraste, un lenguaje sin tipos, como la ma1or3a de los lenguajes ensambladores,
permiten +ue cual+uier operacin se apli+ue a cual+uier dato, +ue por lo general se
consideran secuencias de bits de *arias longitudes' %enguajes de alto ni*el sin datos
inclu1en BCP% 1 algunas *ariedades de Aort4'
En la pr,ctica, aun+ue pocos lenguajes son considerados con tipo desde el punto de
*ista de la teor3a de tipos 6es decir, +ue *eri(ican o rec4a?an todas las operaciones7, la
ma1or3a de los lenguajes modernos o(recen alg;n grado de manejo de tipos' Si bien
muc4os lenguajes de produccin pro*een medios para brincarse o sub*ertir el sistema
de tipos'
Tipos estticos versus tipos dinmicos
El texto que sigue es una traduccin defectuosa o incompleta.
Si +uieres colaborar con /iIipedia, busca el art3culo original 1 mejora o (inali?a esta
traduccin'
Puedes dar a*iso al autor principal del art3culo pegando el siguiente cdigo en su p,gina de
discusin9 77s8bst:A9iso mal tra:81i:o|Len;8a<e :e pro;rama1in==
>>>>
En lenguajes con tipos estticos se determina el tipo de todas las e&presiones antes de la
ejecucin del programa 6t3picamente al compilar7' Por ejemplo, 5 1 62O27 son
e&presiones enterasH no pueden ser pasadas a una (uncin +ue espera una cadena, ni
pueden guardarse en una *ariable +ue est, de(inida como (ec4a'
%os lenguajes con tipos est,ticos pueden manejar tipos explcitos o tipos inferidos' En el
primer caso, el programador debe escribir los tipos en determinadas posiciones
te&tuales' En el segundo caso, el compilador infiere los tipos de las e&presiones 1 las
declaraciones de acuerdo al conte&to' %a ma1or3a de los lenguajes populares con tipos
est,ticos, tales como COO, CM 1 )a*a, manejan tipos e&pl3citos' In(erencia total de los
tipos suele asociarse con lenguajes menos populares, tales como .asIell 1 =%' Sin
embargo, muc4os lenguajes de tipos e&pl3citos permiten in(erencias parciales de tipoH
tanto )a*a 1 CM, por ejemplo, in(ieren tipos en un n;mero limitado de casos'
%os lenguajes con tipos din,micos determinan la *alide? de los tipos in*olucrados en las
operaciones durante la ejecucin del programa' En otras palabras, los tipos est,n
asociados con valores en ejecucin en lugar de expresiones textuales' Como en el caso
de lenguajes con tipos in(eridos, los lenguajes con tipos din,micos no re+uieren +ue el
programador escriba los tipos de las e&presiones' Entre otras cosas, esto permite +ue
una misma *ariable se pueda asociar con *alores de tipos distintos en di(erentes
momentos de la ejecucin de un programa' Sin embargo, los errores de tipo no pueden
ser detectados autom,ticamente 4asta +ue se ejecuta el cdigo, di(icultando la
depuracin de los programas, no obstante, en lenguajes con tipos din,micos se suele
dejar de lado la depuracin en (a*or de t8cnicas de desarrollo como por ejemplo B:: 1
T::' Eub1, %isp, )a*aScript 1 P1t4on son lenguajes con tipos din,micos'
Tipos d!iles " tipos fuertes
%os lenguajes dbilmente tipados permiten +ue un *alor de un tipo pueda ser tratado
como de otro tipo, por ejemplo una cadena puede ser operada como un n;mero' Esto
puede ser ;til a *eces, pero tambi8n puede permitir ciertos tipos de (allas +ue no pueden
ser detectadas durante la compilacin o a *eces ni si+uiera durante la ejecucin'
%os lenguajes fuertemente tipados e*itan +ue pase lo anterior' Cual+uier intento de
lle*ar a cabo una operacin sobre el tipo e+ui*ocado dispara un error' A los lenguajes
con tipos (uertes se les suele llamar de tipos seguros'
%enguajes con tipos d8biles como Perl 1 )a*aScript permiten un gran n;mero de
con*ersiones de tipo impl3citas' Por ejemplo en )a*aScript la e&presin - ) x con*ierte
impl3citamente x a un n;mero, 1 esta con*ersin es e&itosa inclusi*e cuando x es n8ll,
8n:e?ine:, un Arra@ o una cadena de letras' Estas con*ersiones impl3citas son ;tiles
con (recuencia, pero tambi8n pueden ocultar errores de programacin'
%as caracter3sticas de estticos 1 fuertes son a4ora generalmente consideradas conceptos
ortogonales, pero su trato en di(erentes te&tos *aria' Algunos utili?an el t8rmino de tipos
fuertes para re(erirse a tipos fuertemente estticos o, para aumentar la con(usin,
simplemente como e+ui*alencia de tipos estticos' :e tal manera +ue C 4a sido llamado
tanto lenguaje de tipos (uertes como lenguaje de tipos est,ticos d8biles'
Implementacin
Cdigo (uente de un programa escrito en el lenguaje de programacin )a*a'
%a implementacin de un lenguaje es la +ue pro*ee una manera de +ue se ejecute un
programa para una determinada combinacin de so(t>are 1 4ard>are' E&isten
b,sicamente dos maneras de implementar un lenguaje9 compilacin e interpretacin'
Compilacin9 es el proceso +ue traduce un programa escrito en un lenguaje de
programacin a otro lenguaje de programacin, generando un programa
e+ui*alente +ue la m,+uina ser, capa? interpretar' %os programas traductores
+ue pueden reali?ar esta operacin se llaman compiladores' Pstos, como los
programas ensambladores a*an?ados, pueden generar muc4as l3neas de cdigo
de m,+uina por cada proposicin del programa (uente'
Interpretacin9 es una asignacin de signi(icados a las (rmulas bien (ormadas
de un lenguaje (ormal' Como los lenguajes (ormales pueden de(inirse en
t8rminos puramente sint,cticos, sus (rmulas bien (ormadas pueden no ser m,s
+ue cadenas de s3mbolos sin ning;n signi(icado' #na interpretacin otorga
signi(icado a esas (rmulas'
Se puede tambi8n utili?ar una alternati*a para traducir lenguajes de alto ni*el' En lugar
de traducir el programa (uente 1 grabar en (orma permanente el cdigo objeto +ue se
produce durante la compilacin para utili?arlo en una ejecucin (utura, el programador
slo carga el programa (uente en la computadora junto con los datos +ue se *an a
procesar' A continuacin, un programa int8rprete, almacenado en el sistema operati*o
del disco, o incluido de manera permanente dentro de la m,+uina, con*ierte cada
proposicin del programa (uente en lenguaje de m,+uina con(orme *a1a siendo
necesario durante el procesamiento de los datos' El cdigo objeto no se graba para
utili?arlo posteriormente'
%a siguiente *e? +ue se utilice una instruccin, se la deber, interpretar otra *e? 1
traducir a lenguaje m,+uina' Por ejemplo, durante el procesamiento repetiti*o de los
pasos de un ciclo o bucle, cada instruccin del bucle tendr, +ue *ol*er a ser interpretada
en cada ejecucin repetida del ciclo, lo cual 4ace +ue el programa sea m,s lento en
tiempo de ejecucin 6por+ue se *a re*isando el cdigo en tiempo de ejecucin7 pero
m,s r,pido en tiempo de dise2o 6por+ue no se tiene +ue estar compilando a cada
momento el cdigo completo7' El int8rprete elimina la necesidad de reali?ar una
compilacin despu8s de cada modi(icacin del programa cuando se +uiere agregar
(unciones o corregir erroresH pero es ob*io +ue un programa objeto compilado con
antelacin deber, ejecutarse con muc4a ma1or rapide? +ue uno +ue se debe interpretar a
cada paso durante una ejecucin del cdigo'
%a ma1or3a de lenguajes de alto ni*el permiten la programacin multipropsito, aun+ue
muc4os de ellos (ueron dise2ados para permitir programacin dedicada, como lo (ue el
Pascal con las matem,ticas en su comien?o' Tambi8n se 4an implementado lenguajes
educati*os in(antiles como %ogo mediante una serie de simples instrucciones' En la
actualidad son mu1 populares algunos lenguajes especialmente indicados para
aplicaciones >eb, como Perl, P.P, Eub1, P1t4on o )a*aScript'
Tcnica
%ibros sobre di*ersos lenguajes de programacin'
Para escribir programas +ue proporcionen los mejores resultados, cabe tener en cuenta
una serie de detalles'
Correccin' #n programa es correcto si 4ace lo +ue debe 4acer tal 1 como se
estableci en las (ases pre*ias a su desarrollo' Para determinar si un programa
4ace lo +ue debe, es mu1 importante especi(icar claramente +u8 debe 4acer el
programa antes de desarrollarlo 1, una *e? acabado, compararlo con lo +ue
realmente 4ace'
Claridad' Es mu1 importante +ue el programa sea lo m,s claro 1 legible posible,
para (acilitar as3 su desarrollo 1 posterior mantenimiento' Al elaborar un
programa se debe intentar +ue su estructura sea sencilla 1 co4erente, as3 como
cuidar el estilo en la edicinH de esta (orma se *e (acilitado el trabajo del
programador, tanto en la (ase de creacin como en las (ases posteriores de
correccin de errores, ampliaciones, modi(icaciones, etc' Aases +ue pueden ser
reali?adas incluso por otro programador, con lo cual la claridad es a;n m,s
necesaria para +ue otros programadores puedan continuar el trabajo (,cilmente'
Algunos programadores llegan incluso a utili?ar Arte ASCII para delimitar
secciones de cdigo' Ltros, por di*ersin o para impedir un an,lisis cmodo a
otros programadores, recurren al uso de cdigo o(uscado'
Eficiencia' Se trata de +ue el programa, adem,s de reali?ar a+uello para lo +ue
(ue creado 6es decir, +ue sea correcto7, lo 4aga gestionando de la mejor (orma
posible los recursos +ue utili?a' "ormalmente, al 4ablar de e(iciencia de un
programa, se suele 4acer re(erencia al tiempo +ue tarda en reali?ar la tarea para
la +ue 4a sido creado 1 a la cantidad de memoria +ue necesita, pero 4a1 otros
recursos +ue tambi8n pueden ser de consideracin al obtener la e(iciencia de un
programa, dependiendo de su naturale?a 6espacio en disco +ue utili?a, tr,(ico de
red +ue genera, etc'7'
Portabilidad' #n programa es portable cuando tiene la capacidad de poder
ejecutarse en una plata(orma, 1a sea 4ard>are o so(t>are, di(erente a a+uella en
la +ue se elabor' %a portabilidad es una caracter3stica mu1 deseable para un
programa, 1a +ue permite, por ejemplo, a un programa +ue se 4a desarrollado
para sistemas !"#$%inu& ejecutarse tambi8n en la (amilia de sistemas
operati*os /indo>s' Esto permite +ue el programa pueda llegar a m,s usuarios
m,s (,cilmente'
Paradigmas
%os programas se pueden clasi(icar por el paradigma del lenguaje +ue se use para
producirlos' %os principales paradigmas son9 imperati*os, declarati*os 1 orientacin a
objetos'
%os programas +ue usan un lenguaje imperati*o especi(ican un algoritmo, usan
declaraciones, e&presiones 1 sentencias'
3
#na declaracin asocia un nombre de *ariable
con un tipo de dato, por ejemplo9 9ar x: inte;er4' #na e&presin contiene un *alor,
por ejemplo9 - + - contiene el *alor @' Ainalmente, una sentencia debe asignar una
e&presin a una *ariable o usar el *alor de una *ariable para alterar el (lujo de un
programa, por ejemplo9 x := - + -4 i? x == / tAen Aa'5al;o*+4' #na cr3tica
com;n en los lenguajes imperati*os es el e(ecto de las sentencias de asignacin sobre
una clase de *ariables llamadas -no locales-'
@
%os programas +ue usan un lenguaje declarati*o especi(ican las propiedades +ue la
salida debe conocer 1 no especi(ica cual+uier detalle de implementacin' :os amplias
categor3as de lenguajes declarati*os son los lenguajes (uncionales 1 los lenguajes
lgicos' %os lenguajes (uncionales no permiten asignaciones de *ariables no locales, as3,
se 4acen m,s (,cil, por ejemplo, programas como (unciones matem,ticas'
@
El principio
detr,s de los lenguajes lgicos es de(inir el problema +ue se +uiere resol*er 6el objeti*o7
1 dejar los detalles de la solucin al sistema'
B
El objeti*o es de(inido dando una lista de
sub-objeti*os' Cada sub-objeti*o tambi8n se de(ine dando una lista de sus sub-objeti*os,
etc' Si al tratar de buscar una solucin, una ruta de sub-objeti*os (alla, entonces tal sub-
objeti*o se descarta 1 sistem,ticamente se prueba otra ruta'
%a (orma en la cual se programa puede ser por medio de te&to o de (orma *isual' En la
programacin *isual los elementos son manipulados gr,(icamente en *e? de
especi(icarse por medio de te&to'
Vase tambin
Ane&o9%enguajes de programacin
Programacin estructurada
Programacin modular
Programacin orientada a objetos
Programacin imperati*a
Programacin declarati*a
paradigma de programacin
%enguajes esot8ricos
Referencias
5' Q=arIR 62G5G7' L<Eeill1 =edia, Inc' 6ed'79 S%earning P1t4on, Aourt4
EditionT 6libro7' L<Eeill1' Consultado el 55 de (ebrero de 2G5G'
2' 4ttp9$$>>>'so(t>arepreser*ation'org$projects$ALETEA"$inde&'4tmlMB1
UALETEA"UprojectUmembers
3' /ilson, %eslie B' 65JJ37' Comparative Programming Languages
Second Edition' Addison-/esle1' pp' DB' ISB" G-2G5-BCFFB-3' 6en ingl8s7'
@' /ilson, %eslie B' 65JJ37' Comparative Programming Languages
Second Edition' Addison-/esle1' pp' 253' ISB" G-2G5-BCFFB-3' 6en ingl8s7'
B' /ilson, %eslie B' 65JJ37' Comparative Programming Languages
Second Edition' Addison-/esle1' pp' 2@@' ISB" G-2G5-BCFFB-3' 6en ingl8s7'

Potrebbero piacerti anche