FORMULACION
DEL PROBLEMA:
LO QUE TRATAREMOS EN ESTE PROYECTO, ES UN SEMI COMPILADOR QUE NOS PERMITA REALIZAR,
LAS INSTRUCCIONES MAS BASICAS, QUE TIENE UN VERDADERO COMPILADOR, PARA ELLO
UTILIZAREMOS TÉCNICAS ESPECIFICAS QUE MAS ADELANTE EXPLICAREMOS.
OBJETIVO
DE LA INVESTIGACION:
EL OBJETIVO PRINCIPAL DE ESTE INVESTIGACION, ES
TENER UN ANALIZIS PREVIO A LA REALIZACIÓN DEL COMPILADOR, HACI TAMBIEN ES
UTILIZAR LAS HERRAMIENTAS Y LOS CONOCIMIENTOS QUE POCO A POCO IREMOS OBTENIENDO
DE LA MATERIA DE LENGUAJES Y AUTOMAS, Y TAMBIEN PODER TENER UNA IDEA MAS FIRME
COMO TRABAJAN LOS DISTINTOS TIPOS DE
COMPILADORES.
EVALUACIÓN
DEL PROYECTO:
SE TRATARA DE HACER UN
COMPILADOR QUE ESTE DENTRO DE LAS NORMAS DE LOS DEMAS COMPILADORES, CON LAS
FUNCIONES BASICAS COMO ANTERIORMENTE MENCIONAMOS, ASI COMO UNAS CARACTERÍSTICAS
EXTRAS QUE SE LE INCLUIRAN.
LA MÁXIMA LIMITACIÓN PARA
ESTE PROYECTO ES EL TIEMPO, DADO QUE PARA HACER UN COMPILADOR NO SE LLEVA 1 NI
2 MESES, SINO MUCHO MAS, TANTO DE CODIFICACIÓN, Y ADEMÁS UNA AMPLIA EXPERIENCIA
EN PROGRAMACIÓN Y CONOCIMIENTO INTERNO DEL HARDWARE.
|
AÑO |
LENGUAJE |
INVENTOR |
DESCRIPCION |
|
1900s |
BINARIO |
Bool |
primer lenguaje |
|
1946 |
Plankalkul |
Konrad Zuse |
creado para jugar al
ajedrez |
|
1949 |
Short Code |
|
lenguaje traducido a mano |
|
1950 |
ASM
(ensamblador) |
|
lenguaje
ensamblador |
|
1951 |
A-0 |
fue el primer compilador |
|
|
1952 |
AUTOCODE |
Alick E. Glennie |
compilador muy rudimentario |
|
1956 |
FORTRAN |
IBM |
sistema
de TRAducción de FORmulas matemáticas |
|
1956 |
COBOL |
|
Compilador |
|
1958 |
ALGOL 58 |
|
|
|
1960 |
LISP |
|
Interprete orientado a la Inteligencia Artificial |
|
1961 |
FORTRAN IV |
IBM |
sistema de TRAducción de FORmulas matemáticas |
|
1961 |
COBOL 61
Extendido |
|
|
|
1960 |
ALGOL 60
Revisado |
|
|
|
1964 |
PASCAL |
Niklaus Wirth |
programacion
estructurada |
|
1964 |
BASIC |
Universidad de Dartmouth (california) |
Beginners All
Purpose Symbolic Instruction Code |
|
1965 |
SNOBOL |
|
|
|
1965 |
APL |
|
solo
anotacion |
|
1965 |
COBOL 65 |
|
|
|
1966 |
PL/I |
|
|
|
1966 |
FORTRAN 66 |
IBM |
sistema de TRAducción de FORmulas matemáticas |
|
1967 |
SIMULA 67 |
|
|
|
1968 |
ALGOL 68 |
|
|
|
1968 |
SNOBOL4 |
|
|
|
1970s |
GW-BASIC |
|
antiguo y
clasico BASIC |
|
1970 |
APL/360 |
|
|
|
1972 |
SMALLTALK |
Centro de Investigación de Xerox en Palo Alto |
pequeño y rapido |
|
1972 |
C |
Laboratorios
Bell |
lenguaje
con tipos |
|
1974 |
COBOL 74 |
|
|
|
1975 |
PL /I |
|
Lenguaje
sencillo |
|
1977 |
FORTRAN
77 |
IBM |
sistema
de TRAducción de FORmulas matemáticas |
|
1980s |
SMALLTALK/V |
Digitalk |
pequeño y
rapido |
|
1980 |
C con
clases |
Laboratorios
Bell |
lenguaje
con clases |
|
1981 |
PROLOG |
Ministerio Japonés de Comercio Internacional e
Industria (MITI) |
Lenguaje estandar para la Inteligencia Artificial |
|
1982 |
ADA |
Ministerio de Defensa de los EE.UU |
lenguaje muy seguro |
|
1984 |
C++ |
AT&T Bell Laboratories (Bjarne Stroustrup) |
compilador |
|
1985 |
CLIPPER |
|
compilador
para bases de datos |
|
1985 |
QuickBASIC 1.0 |
Microsoft® |
compilador de BASIC |
|
1986 |
QuickBASIC
2.0 |
Microsoft® |
soporte
de tarjeta gráfica EGA |
|
1987 |
QuickBASIC
3.0 |
Microsoft® |
43 lineas
con la tarjeta EGA |
|
1987 |
QuickBASIC 4.0 |
Microsoft® |
tarjetas Hercules, VGA |
|
1987 |
CLIPPER SUMMER '87 |
|
compilador
para bases de datos |
|
1988 |
QuickBASIC 4.5 |
Microsoft® |
tarjeta SVGA |
|
1989 |
QuickBASIC 7.1 |
Microsoft® |
ultima
version de QuickBASIC |
|
1989 |
ASIC v5.0 |
|
interprete tipo QBASIC shareware |
|
1990s |
VISUAL C++ |
|
|
|
1990s |
VISUAL BASICScript |
Microsoft® |
lenguaje
de script |
|
1990 |
HTML |
para
internet |
|
|
1993 |
XML |
para internet |
|
|
1993 |
SGML |
para
internet |
|
|
1990s |
WML |
|
para internet |
|
1990s |
ASP |
Microsoft® |
para
internet |
|
1990s |
PHP |
|
para internet |
|
1995 |
JAVA |
Sun Microsystems |
para
internet y proposito general |
|
1995 |
CLIPPER
5.01 |
|
compilador
para bases de datos |
|
1995 |
GNAT ADA95 |
Ministerio de Defensa de los EE.UU |
lenguaje muy seguro |
|
1995 |
FORTRAN 95 |
IBM |
sistema de TRAducción de FORmulas matemáticas |
|
1991 |
VISUAL BASIC 1.0 |
Microsoft® |
|
|
1992 |
VISUAL BASIC 2.0 |
Microsoft® |
|
|
1993 |
VISUAL BASIC 3.0 |
Microsoft® |
|
|
1994 |
VISUAL BASIC 4.0 |
Microsoft® |
|
|
1995 |
VISUAL BASIC 5.0 |
Microsoft® |
|
|
1998 |
VISUAL BASIC 6.0 |
Microsoft® |
|
|
1990s |
C# |
|
|
|
2001 |
VISUAL BASIC .NET |
Microsoft® |
La evolución
de Visual Basic |
Antecedentes
Los primeros lenguajes de programación surgieron de la idea de Charles Babagge a mediados del siglo XIX. Consistía en lo que el denominaba la maquina analítica, pero que por motivos técnicos no pudo construirse hasta mediados del siglo XX.
Con el colaboro Ada Lovelace, la cual es considerada como la primera programadora de la historia, pues realizo programas para aquella supuesta maquina de Babagge, en tarjetas perforadas. Como la maquina no llego nunca a construirse, los programas de Ada, lógicamente, tampoco llegaron a ejecutarse, pero si suponen un punto de partida de la programación.
En 1936, Turing y Post introdujeron un formalismo de manipulación de símbolos (la denominada máquina de Turing) con el que se puede realizar cualquier cómputo que hasta ahora podemos imaginar.
Esta fue una vía de comunicación entre los problemas formales de la computación y de la matemática. La unión permitió demostrar que no existe ninguna máquina de Turing que pueda reconocer si una sentencia es o no un teorema de un sistema lógico formal; pero también permitió demostrar que si un cálculo puede explicitarse sin ambigüedad en lenguaje natural, con ayuda de símbolos matemáticos, es siempre posible programar un computadora digital capaz de realizar el cálculo, siempre que la capacidad de almacenamiento de información sea la adecuada.
Desde el punto de vista de la ingeniería, los progresos en lenguajes de programación han sido paralelos a los diseños de las nuevas computadoras. Babbage ya escribió programas para sus máquinas, pero los desarrollos importantes tuvieron lugar, igual que en las computadoras, alrededor de la segunda guerra mundial.
Cuando surgió la primera computadora, el famoso Eniac, su programación se basaba en componentes físicos, o sea, que se programaba, cambiando directamente el Hardware de la maquina, lo que se hacia era cambiar cables de sitio para conseguir así la programación binaria.
Los "Lenguajes Maquina" y los "Lenguajes Ensambladores" (primera y segunda generación) son dependientes de la maquina. Cada tipo de maquina, tal como VAX de digital, tiene su propio lenguaje maquina distinto y su lenguaje ensamblador asociado. El lenguaje ensamblador es simplemente una representación simbólica del lenguaje maquina asociado, lo cual permite una programación menos tediosa que con el anterior. Sin embargo, es necesario un conocimiento de la arquitectura mecánica subyacente para realizar una programación efectiva en cualquiera de estos niveles lenguajes.
Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés.
A continuación se muestra la evolución de
los distintos lenguajes en base a las influencias que recibieron: