Lenguaje de programación
I.
CONTENIDO.
1. Definición
Un lenguaje de programación es
un lenguaje formal diseñado para realizar procesos que pueden ser llevados 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 (de ser necesario) y se mantiene el código fuente de un programa informático se le llama programación.
También la palabra programación se
define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los
siguientes pasos:
El desarrollo lógico del programa
para resolver un problema en particular.
·
Escritura de la lógica del programa
empleando un lenguaje de programación específico (codificación del programa).
·
Ensamblaje o compilación del programa
hasta convertirlo en lenguaje de máquina.
·
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 estructurar el
contenido de los documentos).
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.
2.
CLASIFICACIÓN
A. BAJO NIVEL.- es aquel en el que sus instrucciones ejercen un
control directo sobre el hardware y están condicionados por la estructura
física de las computadoras que lo soportan. El uso de la palabra bajo en su denominación no implica que el
lenguaje sea menos potente que un lenguaje de
alto nivel, sino que se refiere a la
reducida abstracción entre el lenguaje y el hardware. Por ejemplo,
se utiliza este tipo de lenguajes para programar tareas críticas de los sistemas
operativos, de aplicaciones en
tiempo real o controladores
de dispositivos.
Dicho lenguaje es muy simple o nada
complicado, pero estructurar programas a ese nivel es muy difícil. Dado que
este lenguaje viene dado por las especificaciones técnicas del hardware, no
permite una abstracción fuera de lo estipulado para el microprocesador de un ordenador. Consecuentemente, es fácilmente trasladado
a lenguaje de máquina.
La estructura de los lenguajes son como sigue:
0. Código Binario - Es el lenguaje básico, sólo admite
todo (1) o nada (0). Todo sistema informático está basado en este código, ya
que el 1 (todo, SÍ) quiere decir que se permite el paso de la electricidad y el
0 (nada, NO) no lo permite. Sería la forma en la que están almacenados los
programas, sea en memoria, sea en dispositivos de almacenamiento. De esta forma
son recibidas y ejecutadas cada una de las instrucciones por la CPU del
ordenador.
1. Lenguaje Máquina - Las invocaciones a memoria, como
los procesos aritméticos lógicos son posiciones literales de conmutadores
físicos del hardware en su representación booleana. Estos lenguajes son
literales de tareas.
2. Lenguajes ensambladores - También denominados nemotécnicos o
nemónicos, no son ya programas ejecutables directamente por el ordenador, sino
textos de código fuente que necesitan de alguna herramienta para su conversión
a lenguaje máquina, son los programas llamados ensambladores. Sus instrucciones
suelen ser una denominación abreviada de la instrucción máquina que simbolizan,
y tienen una correspondencia casi directa a las instrucciones máquina que
representan. El código resultante de la ejecución del programa ensamblador
generaría un código binario ejecutable.
Son instrucciones que ensamblan los
grupos de conmutadores necesarios para expresar una mínima lógica aritmética.
Están íntimamente vinculados al hardware. Por norma general están disponibles a
nivel firmware, cmos o chip set. Estos lenguajes están orientados a procesos.
Los procesos se componen de tareas. Contienen tantas instrucciones como la
arquitectura del hardware así haya sido diseñada.
·
Por ejemplo: La arquitectura CISC contiene muchas
más instrucciones a este nivel, que la RISC.
B. NIVEL INTERMEDIO.- es el lenguaje de una
máquina abstracta diseñada para ayudar en el análisis de los programas de
computadora. El término viene de su uso en los compiladores, donde un
compilador primero traduce el código fuente de un programa, en una forma más
apropiada para las transformaciones de mejora del código (forma usualmente
llamada bytecode), como un paso intermedio antes de generar el archivo objeto o
el código máquina para una máquina específica.
Una variante del significado
de "lenguaje intermedio" se da en esos lenguajes de alto nivel que no
soportan o no generan un archivo objeto o código máquina, pero sí generan un
lenguaje intermedio. Luego ese lenguaje intermedio se transfiere a un
compilador que termina de realizar el archivo objeto o el código máquina. Esto
se emplea generalmente por cuestiones de optimización y portabilidad.
C.
NIVEL
ALTO.- se caracteriza por expresar el algoritmo de una manera adecuada a
la capacidad cognitiva humana, en lugar de la
capacidad ejecutora de las máquinas. En los primeros lenguajes, la limitación
era que se orientaban a un área específica y sus instrucciones requerían de una
sintaxis predefinida. Se clasifican como lenguajes procedimentales o lenguajes de bajo nivel. Otra limitación de estos es que se requiere de ciertos conocimientos
de programación para realizar las secuencias de instrucciones lógicas. Los
lenguajes de alto nivel se crearon para que el usuario común pudiese solucionar
un problema de procesamiento de datos de una manera más fácil y rápida. Por
esta razón, a finales de los años 1950 surgió un nuevo tipo de
lenguajes de programación que evitaba estos inconvenientes, a costa de ceder un
poco en las ventajas. Estos lenguajes se llaman de tercera generación o de
nivel alto, en contraposición a los de
bajo nivel o de nivel próximo a la máquina.
3.
GENERACION.
GENERACIONES
DE LENGUAJES DE PROGRAMACIÓN
Los equipos de ordenador (el hardware) han pasado por cuatro generaciones, de las que
las tres primeras (ordenadores con válvulas, transistores y circuitos integrados) están muy claras, la cuarta (circuitos integrados a gran escala) es más discutible.
Algo parecido ha ocurrido con la programación de los ordenadores (el software), que se realiza en lenguajes que
suelen clasificarse en cinco generaciones, de las que las tres primeras son
evidentes, mientras no todo el mundo está de acuerdo en las otras dos. Estas
generaciones no coincidieron exactamente en el tiempo con las de hardware, pero sí de forma aproximada, y son las
siguientes:
·
Primera
generación: Los primeros
ordenadores se programaban directamente en código de máquina (basado en sistema binario), que puede
representarse mediante secuencias de ceros y unos sistema
binario. Cada modelo de
ordenador tiene su propio código, por esa razón se llama lenguaje de máquina.
·
Segunda
generación: Los lenguajes simbólicos, asimismo propios de la máquina, simplifican la
escritura de las instrucciones y las hacen más legibles.
·
Tercera generación: Los lenguajes de alto nivel sustituyen las instrucciones simbólicas por
códigos independientes de la máquina, parecidas al lenguaje humano o al de las Matemáticas.
·
Cuarta
generación: se ha dado
este nombre a ciertas herramientas que permiten construir aplicaciones
sencillas combinando piezas prefabricadas. Hoy se piensa que estas herramientas
no son, propiamente hablando, lenguajes. Algunos proponen reservar el nombre de
cuarta generación para la programación orientada a objetos.
Estos lenguajes tienen una estructura lo más
parecido al idioma inglés, algunas características son:
- Acceso a base de datos.
- Capacidades Gráficas.
- Generación de código automáticamente.
·
Quinta
generación: se llama así a
veces a los lenguajes de la inteligencia artificial, aunque con el fracaso del proyecto japonés de la quinta generación el nombre ha caído en desuso.
Antes de 1940
Los primeros lenguajes
de programación preceden a la computadora moderna. En un inicio los lenguajes
eran códigos.
La máquina del telar de Jacquard, creada en 1801, utilizaba
los orificios en tarjetas perforadas para representar los movimientos de un
brazo de la máquina de tejer, con el objetivo de generar patrones decorativos
automáticamente.
Durante un período de
nueve meses entre 1842 y 1843, Ada Lovelace tradujo las memorias del matemático italiano Luigi Menabrea
acerca de la nueva máquina propuesta porCharles Babbage, la Máquina Analítica. Con estos escritos, ella añadió unas notas en las cuales
especificaba en detalle un método para calcular los números de Bernoulli con esta máquina, el cual es reconocido por muchos historiadores
como el primer programa de computadora del mundo.
Herman Hollerith se percató de que podía codificar la información en tarjetas
perforadas cuando observó a los conductores de trenes codificar la apariencia
de los tickets del tren con la posición de los agujeros perforados en estos. En
1890 Hollerith codificó los datos del censo en tarjetas perforadas.
Los primeros códigos de
computadora estaban especializados según sus aplicaciones. En las primeras
décadas del siglo 20, los cálculos numéricos estaban basados en los números
decimales. Eventualmente se fueron dando cuenta que la lógica podía ser
representada con números, no sólo con palabras. Por ejemplo, Alonzo Church fue capaz de expresar el cálculo lambda a través de fórmulas. La máquina de Turing estableció las bases
para almacenar programas como datos en la arquitectura de von Neuman de una computadora. Sin embargo, a diferencia del cálculo
lambda, el código de Turing no serviría satisfactoriamente como base
pardsafsadfasfdsaa lenguajes de más alto nivel- su principal uso es en el
análisis riguroso en la complejidad algorítmica.
Como muchos “primeros”
en la historia, el primer lenguaje de programación moderno es difícil de
identificar. Desde un inicio, las restricciones de hardware definían el
lenguaje. Las tarjetas perforadas permitían 80 columnas, pero algunas de estas
serían utilizadas para una clasificación de cada tarjeta. FORTRAN incluía
algunas palabras reservadas provenientes del Inglés, como “IF”, “GOTO” (go to)
y “CONTINUE”. El uso del tambor magnético para la memoria
implicaba que los programas informáticos tuvieran que estar intercalados con
las rotaciones del tambor. Por lo tanto los programas eran muy dependientes del
hardware.
Para algunas personas,
lo que sería el primer lenguaje de programación moderno depende de cuánto poder
y legibilidad humana se requería antes de que se concediera el estado de
"lenguaje de programación". Tanto el telar de Jacquard como la Máquina Diferencial de Babbage, tenían
lenguajes muy simples y extremadamente limitados para describir las acciones
que estas máquinas realizaran. Se puede incluso considerar los agujeros
perforados en los rollos de pianola como un limitado lenguaje de dominio específico, a pesar de no estar diseñado para el
consumo humano.
Los años 40
En la década de 1940
fueron creadas las primeras computadoras modernas, con alimentación eléctrica.
La velocidad y capacidad de memoria limitadas forzaron a los programadores a
escribir programas, en lenguaje ensamblador muy afinados. Finalmente se dieron
cuenta de que la programación en lenguaje ensamblador requería de un gran
esfuerzo intelectual y era muy propensa a errores.
En 1948, Konrad Zuse
publicó un artículo acerca de su lenguaje de programación Plankalkül. Sin
embargo, no fue implementado en su vida y sus contribuciones fueron aisladas de
otros desarrollos.
Entre algunos lenguajes
importantes que fueron desarrollados en este período se encuentran:
·
1943 - Plankalkül (Konrad
Zuse), diseñado, pero sin implementar durante medio siglo
·
1943 - el sistema de
codificación ENIAC.
·
1949 - 1954 -- una serie de
conjuntos de instrucciones nemotécnicas, como la de ENIAC, comenzando en 1949
con C-10 para BINAC (que luego evolucionaría en UNIVAC). Cada conjunto de
instrucciones estaba destinado a un fabricante específico.
Las décadas de 1950 y 1960
En los cincuenta, los
tres primeros lenguajes de programación modernos, cuyos descendientes aún
continúan siendo utilizados, son:
·
FORTRAN (1955), creado por John
Backus et al.;
·
LISP (1958), creado por John
McCarthy et al.;
·
COBOL (1959), creado por el
Short Range Committee, altamente influenciado por Grace Hopper.
Otro hito a finales de
1950 fue la publicación, por un comité Americano y Europeo de científicos de la
computación, de un nuevo “lenguaje para algoritmos”; el Reporte deALGOL 60 ("ALGOrithmic Language"). Este reporte consolidó muchas ideas que estaban circulando
en aquel entonces, y proporcionó dos innovaciones importantes para los
lenguajes de programación:
·
Estructuras de bloques anidadas: las secuencias de código y las declaraciones asociadas
se pueden agrupar en bloques sin tener que pertenecer explícitamente a procedimientos
separados;
·
Ámbito léxico: un bloque puede
tener sus propias variables, procedimientos y funciones, invisible al código
fuera de dicho bloque, por ejemplo, ocultamiento de información.
Otra innovación,
relacionada con esto, fue cómo el lenguaje fue descrito:
·
Una notación matemática exacta, Backus-Naur Form (BNF), fue utilizada para
describir la sintaxis del lenguaje. Todos los subsecuentes lenguajes de
programación han utilizado una variante de BNF para describir la porción libre del contexto de su sintaxis.
Algol 60 influenció
particularmente en el diseño de lenguajes posteriores, de los cuales algunos se
hicieron más populares. Los grandes sistemas de Burroughs fueron diseñados para ser programados en un subconjunto
extendido de Algol.
Las ideas fundamentales
de Algol se continuaron, produciendo Algol 68:
·
la sintaxis y la semántica se
hizo aún más ortogonal, con rutinas anónimas, un sistema de tipificación
recursiva con funciones de orden superior, etc.;
·
y no sólo la parte libre del
contexto, sino que tanto la sintaxis como la semántica del lenguaje completo
fueron definidos formalmente, en términos de una gramática
de Van Wijngaarden, un formalismo diseñado
específicamente para este propósito.
Las variadas pero poco
usadas características de Algol 68 (por ejemplo, bloques simultáneos y
paralelos) y su complejo sistema de atajos sintácticos y coerciones automáticas
de tipo lo hicieron impopular entre los ejecutores y se ganó una reputación de
ser difícil. Niklaus Wirth salió del comité de diseño para crear el sencillo lenguaje Pascal.
Algunos de los lenguajes
importantes que fueron desarrollados en este período incluyen:
·
1952 - Autocode
1968-1979: estableciendo paradigmas
fundamentales
El período comprendido
entre finales de 1960 y finales de 1970 trajo un gran florecimiento de
lenguajes de programación. La mayoría de los paradigmas de lenguajes de
programación más importantes y actualmente en uso se inventaron en este
período:
·
Simula, inventado en la década
de 1960 por Nygaard y Dahl como
un superconjunto de Algol 60, fue el primer lenguaje diseñado para apoyar la programación
orientada a objetos.
·
C, en principio un lenguaje de programación sistemas, fue
desarrollado por Dennis Ritchie y Ken Thompson en los Laboratorios Bell entre 1969 y 1973.
·
Smalltalk (mediados de los 70) proporcionaron un completo diseño de un
lenguaje orientado a objetos.
·
Prolog, diseñado en 1972 por Colmerauer, Roussel y Kowalski,
fue el primer lenguaje de programación lógica.
·
ML construyó un sistema de
tipos polimórfico (inventado por Robin Milner en
1973) en el tope de Lisp, pionero en los lenguajes funcionales de programación con tipado estático.
Cada uno de estos
lenguajes generó toda una familia de descendientes, y los lenguajes más
modernos cuentan al menos uno de ellos en su ascendencia.
En los años 60 y 70
también suscitó un debate considerable sobre los méritos de la "programación estructurada", que esencialmente significaba
programación sin el uso deGOTO. Este debate estaba
estrechamente relacionado con el diseño del lenguaje: algunos lenguajes no
incluían GOTO, lo que obligó a la programación estructurada en el programador.
Aunque el debate se recrudecía acaloradamente en ese momento, casi todos los
programadores están de acuerdo en que, incluso en lenguajes que ofrecen GOTO,
es una mala práctica de programación usarlo, excepto en raras circunstancias.
Como resultado de ello, las generaciones posteriores de diseñadores de
lenguajes han encontrado el debate sobre programación estructurada tedioso e
incluso desconcertante.
Algunos lenguajes
importantes que se desarrollaron en este período fueron:
·
1970 - Forth
·
1972 - Smalltalk
·
1972 - Prolog
·
1975 - Scheme
·
1978 - SQL (inicialmente sólo un lenguaje de consulta, posteriormente
ampliado con construcciones de programación)
La década de 1980: consolidación, módulos,
rendimiento
La década de 1980 fueron
años de consolidación relativa en los lenguajes imperativos. En vez de inventar nuevos paradigmas, se comenzó a trabajar a
partir de las ideas inventadas en la década anterior. C++ combinaba la programación orientada a objetos y la programación
de sistemas. El gobierno de Estados Unidos estandarizó Ada, un lenguaje de programación de sistemas destinado a ser
utilizado por contratistas de defensa. En Japón y en otras partes, se gastaron
enormes sumas investigando los llamadoslenguajes de
programación de quinta generación que incorporaban
construcciones de la programación lógica. La comunidad de los lenguajes
funcionales llevaron a cabo la estandarización de ML y Lisp. La investigación
en Miranda, un lenguaje funcional, con evaluación perezosa, comenzó a tomar fuerza en esta década.
Una nueva tendencia
importante en el diseño de lenguajes era un mayor enfoque en la programación de
sistemas a gran escala a través del uso de módulos, una organización a gran
escala de unidades de código. Modula, Ada, y ML desarrollaron sistemas de
módulos notables en la década de 1980. Los sistemas de módulos eran
relacionados con frecuencia con construcciones de programación genéricas, que
serían, en esencia, módulos parametrizados (véase también polimorfismo en programación
orientada a objetos).
Aunque no aparecían
nuevos paradigmas de lenguajes de programación imperativos, muchos
investigadores expandieron las ideas de los lenguajes anteriores y las
adaptaron a nuevos contextos. Por ejemplo, los lenguajes de los sistemas Argus y Emerald adaptaron la programación orientada a objetos para sistemas distribuidos.
La década de 1980
también trajo avances en la implementación de lenguajes de programación. El
movimiento de RISC en la arquitectura de computadoras postulaba que el hardware debía estar diseñado para los compiladores más que para los programadores de ensamblador humanos. Con la
ayuda de las mejoras en la velocidad del procesador, permitiendo técnicas de
compilación cada vez más agresivas, el movimiento RISC despertó un mayor
interés en la tecnología de compilación de los lenguajes de alto nivel.
Las tecnologías de los
lenguajes continuaron sobre estas líneas entrando en la década de 1990.
Algunos lenguajes
importantes que se desarrollaron en este período son:
·
1984 - Common Lisp
·
1986 - Objective-C
·
1986 - Erlang
·
1988 - Tcl
·
1988 - Mathematica
La década de 1990: la era de Internet
El rápido crecimiento de
Internet en la década de 1990 fue el siguiente gran acontecimiento histórico
para los lenguajes de programación. Con la apertura de una plataforma
totalmente nueva para los sistemas informáticos, Internet creó una oportunidad
adoptar nuevos lenguajes. En particular, el lenguaje de programación Java se
hizo popular debido a su pronta integración con el navegador web Netscape
Navigator, y varios lenguajes de scripting alcanzaron un amplio uso en el
desarrollo de aplicaciones personalizadas para servidores web. La década de
1990 no vio ninguna novedad fundamental en los lenguajes imperativos, pero sí
mucha recombinación y la maduración de viejas ideas. Esta era comenzó la
difusión de los lenguajes funcionales. Una filosofía de conducción grande era la productividad del
programador. Surgieron muchos lenguajes de “aplicaciones de desarrollo rápido”
(RAD), los cuales usualmente
venían con un IDE, recolector de basura, y eran descendientes de lenguajes anteriores. Todos estos
lenguajes eran orientados a objeto. Estos incluían Object Pascal, Visual Basic y Java. Java, en particular, recibió mucha atención. Pero más radicales
e innovadores que los lenguajes de RAD eran los nuevos lenguajes de script. Estos no descendían
directamente de otros lenguajes y ofrecieron nuevas sintaxis e incorporación
más liberal de otras características. Muchos consideran estos lenguajes de
script más productivos que los lenguajes de RAD, aunque esto se debe a menudo a
que es más difícil escribir y mantener largos programas que pequeños programas
simples. Sin embargo, no es menos cierto que los programas de script llegaron
para convertirse en los más prominentes en la conexión con la Web.
Algunos lenguajes
importantes que se desarrollaron en este período son:
·
1990 - Haskell
·
1991 - Python
·
1993 - Lua
·
1996 - WebDNA
·
1997 - Rebol
Tendencias actuales
La evolución de los
lenguajes de programación continúa, tanto en la industria como en
investigación. Algunas de las tendencias actuales incluyen:
·
Aumentar el soporte para la programación funcional en lenguajes importantes utilizados comercialmente, incluida la programación
funcional pura para hacer el código más
fácil de razonar y de paralelizar (tanto en macro como en micro-niveles).
·
Mecanismos para añadir al
lenguaje verificación en cuanto a seguridad y confiabilidad: chequeo sintáctico
extendido, control de flujo de información, seguridad de hilos.
·
Desarrollo de software
orientado a componentes.
·
Mayor énfasis en cuanto a
distribución y movilidad.
·
Soporte para Unicode para que el código fuente (texto del programa) no se
limite sólo a los caracteres contenidos en el conjunto de caracteres ASCII, permitiendo, por ejemplo, el uso de caracteres no latinos
basados en guiones o signos de puntuación extendidos.
·
El código abierto como una filosofía de
desarrollo de lenguajes, incluyendo la colección de compiladores de GNU y
lenguajes recientes, como Python, Ruby, y Squeak.
·
Programación Orientada a Aspectos
(AOP).
Algunos lenguajes importantes
desarrollados durante este período incluyen:
·
2000 - ActionScript
·
2003 - Groovy
·
2003 - Scala
·
2007 - Clojure
·
2009 - Go
·
2011 - Dart
El LENGUAJE ENSAMBLADOR, o assembler (en inglés assembly language y la abreviación asm), es unlenguaje de programación de bajo nivel. Consiste en un conjunto de mnemónicos que representan instrucciones básicas para los computadores, microprocesadores, microcontroladores y otros circuitos integrados programables. Implementa una representación simbólica de los códigos de máquina binarios y otras
constantes necesarias para programar una arquitectura de processador y constituye la representación más directa del código máquina específico para cada
arquitectura legible por un programador. Cadaarquitectura de processador tiene su propio lenguaje ensamblador que usualmente es definida
por el fabricante de hardware, y está basada en los mnemónicos que simbolizan los pasos de procesamiento (lasinstrucciones), los registros del procesador, las
posiciones de memoria y otras características
del lenguaje. Un lenguaje ensamblador es por lo tanto específico de cierta arquitectura de computador física (o virtual). Esto está en contraste con la mayoría de los
lenguajes de programación de alto nivel, que idealmente sonportátiles.
Un programa utilitario llamado ensamblador es usado para traducir sentencias del lenguaje ensamblador al
código de máquina del computador objetivo. El ensamblador realiza una
traducción más o menos isomorfa (un mapeo de uno a uno) desde las sentencias mnemónicas a las
instrucciones y datos de máquina. Esto está en contraste con los lenguajes de
alto nivel, en los cuales una sola declaración generalmente da lugar a muchas
instrucciones de máquina.
Lenguajes orientados a problemas
Resultan más eficaces para la resolución de un tipo de problemas a costa de una menor eficiencia para otros. Requieren poca capacitación especial de parte del usuario Son considerados de muy alto nivel Diseñados para resolver problemas específicos
Incluye: lenguajes de consulta y generador de aplicaciones.
Lenguajesdeconsulta:
Permiten a no programadores usar ciertos comandos
de fácil comprensión para la búsqueda y generación de reportes a partir de una
base de datos.
Generadordeaplicaciones:
Quiere decir que cuando se diseña uno de estos
lenguajes, se tiene en cuenta que su finalidad es la resolución de problemas,
prescindiendo de la arquitectura del computador. Contiene varios módulos que
han sido preprogramados para cumplir varias tareas.
Lenguaje orientado a objetos
Se le llama así a cualquier lenguaje de programación que
implemente los conceptos definidos por la programación orientada a objetos.
Cabe notar que los conceptos definidos en
la programación orientada a objetos no
son una condición sino que son para definir que un lenguaje es orientado a objetos. Existen conceptos que pueden estar ausentes en un lenguaje dado y sin
embargo, no invalidar su definición como lenguaje orientado a objetos.
Quizás las condiciones mínimas necesarias
las provee el formalismo que
modeliza mejor las propiedades de un sistema orientado a objetos: los tipos de datos abstractos.
Siguiendo esa idea, cualquier lenguaje que
permita la definición de tipos de datos, de operaciones nuevas sobre esos tipos de datos, y de instanciar el tipo de datos podría
ser considerado orientado a objetos.
Esta definición concuerda incluso con
ciertos ejemplos prácticos, que no son considerados dentro de la programación orientada a objetos, pero que podrían serlo. Por ejemplo, la programación de interfaces gráficas de usuario para
los sistemas X utilizando
infraestructuras de funciones y APIs como Motif, Xview y Xlib,
son realizadas usualmente en lenguaje C, pero organizando el código en una
manera que "parecen objetos" (los Widgets).
II.
RESUMEN
Los
lenguajes de programación son herramientas que nos permiten crear programas y
software. Entre ellos tenemos Delphi, Visual Basic, Pascal, Java, etc..
Una
computadora funciona bajo control de un programa el cual debe estar almacenado
en la unidad de memoria; tales como el disco duro.
Los
lenguajes de programación de una computadora en particular se conocen como
código de máquinas o lenguaje de máquinas. Estos lenguajes codificados en una
computadora específica no podrán ser ejecutados en otra computadora diferente.
Para que estos programas funcionen para diferentes computadoras hay que
realizar una versión para cada una de ellas, lo que implica el aumento del
costo de desarrollo.
Por
otra parte, los lenguajes de programación en código de máquina son
verdaderamente difíciles de entender para una persona que no conoce ningún
lenguaje de programación, ya que están compuestos de códigos numéricos sin
sentido nemotécnico.
Los
lenguajes de programación facilitan la tarea de programación, ya que disponen
de formas adecuadas que permiten ser leidas y escritas por programadores, a su
vez resultan independientes del modelo de computador a utilizar. Los lenguajes
de programación son independientes de las computadoras a utilizar.
Existen
estrategias que permiten ejecutar en una computadora un programa realizado en
un lenguaje de programación simbólico. Los procesadores del lenguaje son los
programas que permiten el tratamiento de la información en forma de texto,
representada en los lenguajes de programación simbólicos.
III.
SUMMARY
Programming languages are tools that allow us to
create programs and software. Among them Delphi, Visual Basic, Pascal, Java,
etc ..
A computer operates under control of a program
which must be stored in the memory unit; such as the hard disk.
Programming languages of a particular computer
code known as machines or machine language. These encoded in a specific
computer languages may not be executed on a different computer. To make these
programs work for different computers have to make a version for each of them,
which involves increasing the development cost.
Moreover, programming languages into machine code
are truly difficult to understand for a person who does not know any
programming language, as they are composed of numerical codes without mnemonic
sense.
Programming languages facilitate programming
task, as they have suitable shapes which can be read and written by programmers
in turn are independent of the computer model used. Programming languages are
independent of computers to use.
There are strategies that allow you to run a
program on a computer made in a symbolic programming language. Language
processors are programs that allow processing information in text form,
represented in symbolic programming languages.
IV.
RECOMENDACIONES.
·
Con los lenguaje de programación de puede
resolver un problema real.
·
Lee buenos libros y cuida siempre hacer
buenas prácticas de programación
·
Tomate tu tiempo en elegir el lenguaje o la
tecnología que más se ajusta a las necesidades de tu proyecto.
V.
CONCLUCIONES.
·
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.
·
Lenguaje de programación es un conjunto de
instrucciones que se utiliza para el procesamiento en un ordenador.
·
Los lenguajes de programación surgen de la
idea de Charles Labagge, en el siglo XIX, los cuales han sido evolucionando a
través del tiempo, donde ahora los lenguajes de programación se especula que
sean más de 200.
VI.
APRECIACION
DE EQUIPO
Como
equipo de trabajo podemos decir que un lenguaje de programación" es un
lenguaje diseñado para describir el conjunto de acciones consecutivas que un
equipo debe ejecutar.
Por
lo tanto, un lenguaje de programación es un modo práctico para que los seres
humanos puedan dar instrucciones a un equipo.
VII.
GLOSARIO
DE TERMINOS
Algoritmo.
Define algoritmo
como un conjunto ordenado y finito de operaciones que permite hallar la
solución de un problema. Método y notación en las distintas fórmulas del
cálculo. El algoritmo constituye
un método para resolver un problema mediante una secuencia de pasos a seguir.
Sintáctica. Se denomina función sintáctica al papel que desempeña una palabra o
morfema o constituyente sintáctico dentro de una construcción sintáctica que la incluye o,
más precisamente, a todas las relaciones de combinación o relaciones sintagas
que una palabra mantiene con los demás vocablos de un contexto.
Semántica. El término semántica se refiere a los aspectos del significado, sentido o
interpretación de signos lingüísticos como símbolos, palabras, expresiones o
representaciones formales.
compilación . Es el proceso por el cual se traducen las instrucciones
escritas en un determinado lenguaje de programación a lenguaje máquina. Además
de un traductor, se pueden necesitar otros programas para crear un programa
objeto ejecutable.
Depuración de
programas es el
proceso de identificar y corregir errores de programación. En inglés se le conoce como debugging, es que se asemeja a
la eliminación de bichos (bugs), manera en que se conoce informalmente a los errores de programación.
VIII.
BIBLIOGRAFIA
O LINKOGRAFIA
No hay comentarios:
Publicar un comentario