Download sep snest dgest

Document related concepts

Lisp wikipedia , lookup

Dylan (lenguaje de programación) wikipedia , lookup

Programación funcional wikipedia , lookup

Clojure wikipedia , lookup

Scala (lenguaje de programación) wikipedia , lookup

Transcript
SEP
SNEST
DGEST
SECRETARÍA DE EDUCACIÓN PÚBLICA
SISTEMA NACIONAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA
DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA
TEMA:
LENGUAJES DE PROGRAMACIÓN
CARRERA: ING. EN SISTEMAS COMPUTACIONALES
ELABORADO POR:
ADÁN BECERRIL MEJIA
09280438
ANALÍ NASHELI SALINAS RODRIGUEZ
09280510
ANGÉLICA NAYELI HUERTA PIÑA
09280480
CARLOS EDWIN NUÑEZ LÓPEZ
09280434
HUMBERTO PINEDA SÁNCHEZ
09280436
MARIANA LÓPEZ JAIMEZ
09280425
GRUPO: 01
METEPEC, MÉXICO SEPTIEMBRE 2009
ÍNDICE
ÍNDICE DE FIGURAS .......................................................................................................................................... II
ÍNDICE DE TABLAS ............................................................................................................................................ II
RESUMEN ............................................................................................................................................................ 1
1. LENGUAJES DE PROGRAMACIÓN............................................................................................................. 3
1.1 CONCEPTO DE LENGUAJE DE PROGRAMACIÓN ................................................................................................... 3
2. HISTORIA DE LOS LENGUAJES DE PROGRAMACIÓN .......................................................................... 4
3. TIPOS DE LENGUAJES DE PROGRAMACIÓN .......................................................................................... 7
3.1 LENGUAJE DE PROGRAMACIÓN C....................................................................................................................... 7
3.1.1. Historia del Lenguaje C ........................................................................................................................... 7
3.2 LENGUAJE DE PROGRAMACIÓN BASIC .............................................................................................................. 9
3.3 LENGUAJE DE PROGRAMACIÓN VISUAL BASIC ............................................................................................... 9
3.4 LENGUAJE DE PROGRAMACIÓN DELPHI ............................................................................................................ 10
3.5 LENGUAJE DE PROGRAMACIÓN C++ ................................................................................................................. 11
3.6 LENGUAJE DE PROGRAMACIÓN C# ................................................................................................................... 12
3.7 LENGUAJE DE PROGRAMACIÓN JAVA ................................................................................................................ 13
3.8 LENGUAJE DE PROGRAMACIÓN ASP ................................................................................................................ 13
3.9 LENGUAJE DE PROGRAMACIÓN COBOL .......................................................................................................... 14
3.10 LENGUAJE DE PROGRAMACIÓN FORTRAN ................................................................................................... 15
3.11 LENGUAJE DE PROGRAMACIÓN JAVASCRIPT.................................................................................................. 16
3.12 LENGUAJE DE PROGRAMACIÓN LISP ............................................................................................................. 16
3.13 LENGUAJE DE PROGRAMACIÓN PYTHON ........................................................................................................ 17
3.14 LENGUAJE DE PROGRAMACIÓN PASCAL ......................................................................................................... 18
4. EJEMPLOS DE PROGRAMACIÓN EN C Y VISUAL BASIC .................................................................... 19
5. OLIMPIADA INTERNACIONAL DE INFORMÁTICA.................................................................................. 20
5.1 LA COMPETENCIA .............................................................................................................................................. 20
5.2 LA OLIMPIADA DE INFORMÁTICA EN MÉXICO ..................................................................................................... 21
BIBLIOGRAFÍA .................................................................................................................................................. 23
FUENTES ELECTRÓNICAS ........................................................................................................................................ 23
NOTAS ................................................................................................................................................................ 25
i
ÍNDICE DE FIGURAS
Figura 1. Proceso de Compilación y Ejecución de COBOL. ..............................................................15
Figura 3. Representantes Mexicanos en la IOI. ...................................................................................21
ÍNDICE DE TABLAS
Tabla 1. Algunos lenguajes de programación y sus orígenes. ............................................................7
Tabla 2. Resumen de algunos Lenguajes de Programación. ............................................................19
ii
RESUMEN
Los lenguajes de programación son lenguajes formales que obedecen reglas
sintácticas y lógicas de las cuales el programador se vale para escribir las instrucciones
necesarias para que la computadora ejecute una tarea o un conjunto de tareas. A este
conjunto de instrucciones se le conoce como programa.
A Lady Ada Lovelace, hija del poeta Lord Byron, se le atribuye el haber escrito el
primer programa para computadoras del mundo, a principios de la década de 1800 para
la Máquina Analítica, un dispositivo mecánico diseñado por Charles Babbage. Pero no
sería sino hasta el siglo XX que la programación dio un salto definitivo y se convirtió en
el complejo sistema de desarrollo que conocemos en la actualidad.
Un siglo más tarde surgirían las computadoras analógicas y digitales y con ellas
también nacieron los lenguajes de programación. Los primeros lenguajes de
programación fueron los lenguajes máquina, escritos a base de números que se
traducían en 0s y 1s y que fueron utilizados para que el programador se comunicara
directamente con la computadora en la década de 1940. A finales de 1950 surgieron
los lenguajes ensambladores, los cuales, al utilizar palabras en inglés para escribir
ciertas instrucciones, ayudaron enormemente a los programadores a simplificar su tarea
de comunicación con la computadora y a evitar los numerosos errores que en
ocasiones se cometían al escribir código en lenguaje máquina. El siguiente paso en el
desarrollo de los lenguajes de programación fue la creación de Lenguajes de Alto Nivel,
los cuales utilizan instrucciones individuales para realizar tareas importantes. Los
lenguajes de alto nivel están aún más alejados del lenguaje máquina, por lo que
requieren de un “traductor” llamado compilador, el cual transforma las instrucciones
escritas por el programador en un lenguaje de alto nivel a lenguaje máquina. Entre los
lenguajes de alto nivel más conocidos encontramos a C, C++, C#, Java, BASIC,
FORTRAN, Pascal, ASP, LISP, Visual Basic, Python, Ruby y muchos más. A lo largo de
los últimos 60 años se han desarrollado miles de ellos, sin embargo, muchos han caído
en desuso, desaparecido, o están en vías de ser reemplazados por otros.
Para proporcionar a nuestros compañeros un contacto más directo con los
lenguajes de programación, proveemos en este trabajo un ejemplo de un programa
codificado en C y en Visual Basic. Ambos transforman medidas de grados Fahrenheit a
grados Celsius.
Finalmente, conscientes de lo importante que es saber aplicar lo aprendido en el
aula, integramos una sección que habla acerca de la Olimpiada Internacional de
1
Informática (IOI por sus siglas en ingles), la cual es un concurso donde los jóvenes
estudiantes de secundaria y preparatoria demuestran sus habilidades al resolver
problemas utilizando la lógica, las computadoras y por supuesto, los lenguajes de
programación, demostrándonos así, que es posible aprender, divertirse y tener gratas
recompensas cuando aplicamos la teoría de manera constructiva.
2
1. LENGUAJES DE PROGRAMACIÓN
1.1 Concepto de lenguaje de programación
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 (por ejemplo 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.
Los principales tipos de lenguajes utilizados en la actualidad son tres:
• Lenguaje máquina: Son aquéllos que están escritos en lenguajes directamente
inteligibles para la computadora, ya que sus instrucciones son cadenas binarias
que especifican una operación, y las posiciones (dirección) de memoria
implicadas en la operación se denominan instrucciones de máquina o código
máquina.
• Lenguaje de bajo nivel: Son más fáciles de utilizar que el lenguaje máquina,
pero, al igual que ellos dependen de la maquina en particular. El lenguaje de
bajo nivel por excelencia es el ensamblador (assembly languaje). Las
instrucciones en el lenguaje ensamblador son instrucciones conocidas como
nemotécnicos (mnemonics).
• Lenguaje de alto nivel: Son los más utilizados por los programadores. Están
diseñados para que las personas escriban y entiendan los programas de un
modo mucho más fácil que los lenguajes máquina y ensamblador, además es
independiente de la máquina; esto es, las instrucciones del programa de la
computadora no dependen del diseño del hardware o de una computadora en
particular. Los programas escritos en lenguajes de alto nivel son portables o
transportables, lo que significa la posibilidad de poder ser ejecutados con poca o
ninguna modificación en diferentes tipos de computadoras.
3
2. HISTORIA DE LOS LENGUAJES DE PROGRAMACIÓN
Los primeros lenguajes de programación surgieron de la idea de Charles
Babbage, la cual se le ocurrió a este hombre a mediados del siglo XIX. Con él colaboro
Ada Lovelace, quien es considerada como la primera programadora de la historia, pues
realizó programas para la Máquina Analítica de Babbage, en tarjetas perforadas. Ada
ha permanecido como la primera programadora de la historia. Se dice por tanto que
estos dos genios de antaño, se adelantaron un siglo a su época.
Desde 1954 hasta la actualidad se han documentado más de 2,500 (
Tabla 1) lenguajes de programación. Entre 1952 y 1972, la primera época de los
lenguajes de programación, se desarrollaron alrededor de 200 lenguajes, de los que
una decena fueron realmente significativos y tuvieron influencia en el desarrollo de
lenguajes posteriores.
A continuación se incluye una lista parcial de algunos de los lenguajes de
programación más importantes, junto con su año de creación:
•
•
•
•
•
•
•
•
•
•
1957 FORTRAN
1958 ALGOL
1960 LISP
1960 COBOL
1962 APL
1962 SIMULA
1964 BASIC
1964 PL/I
1970 PROLOG
1972 C
•
•
•
•
•
•
•
•
•
•
1975 Pascal
1975 Scheme
1975 Modula
1983 Smalltalk-80
1983 Objective-C
1983 Ada
1986 C++
1986 Eiffel
1987 Perl
1988 Tcl/Tk
4
•
•
•
•
1990 Haskell
1991 Python
1993 Ruby
1995 Java
•
•
1995 PHP
2000 C#
Al principio, los lenguajes se diseñaban únicamente para poder ejecutar los
programas eficientemente. Los ordenadores, carísimos, eran el recurso crítico, y los
programadores eran bastante baratos. Un lenguaje de alto nivel tenía que ser
competitivo con la ejecución de un código en ensamblador. A mediados de los años 60,
cuando se habían diseñado FORTRAN, COBOL, LISP y ALGOL, John Backus (creador
de FORTRAN) se dio cuenta que la programación estaba cambiando. Las máquinas
eran menos caras, el coste de la programación estaba aumentando, aparecía la
necesidad de mover o migrar los programas de unas estaciones a otras, y surgía la
necesidad de llevar un buen mantenimiento de los programas resultantes.
El objetivo de un lenguaje de alto nivel se transformó no sólo en ejecutar los
programas eficientemente, sino también en facilitar el desarrollo de programas para
resolver problemas en determinadas áreas de aplicación.
La tecnología de los ordenadores maduró entre 1960 y 1970 y los lenguajes se
centraron en resolver problemas específicos de un dominio. Los programas científicos
generalmente se implementaban en FORTRAN, las aplicaciones para los negocios en
COBOL, las aplicaciones militares en JOVIAL, las de inteligencia artificial en LISP y las
militares internas en Ada. Al igual que sucede con los lenguajes naturales, los lenguajes
de programación a veces dejan de usarse. ALGOL no se utiliza desde los años 60, se
reemplazó por Pascal, el cual se reemplazó a su vez por C++ y Java. COBOL, que se
utilizaba para las aplicaciones mercantiles, se sustituyó también por C++.
Los primeros lenguajes que todavía se usan tienen revisiones periódicas para
reflejar influencias de otras áreas de computación. Lenguajes como Java y C++ reflejan
una gran experiencia obtenida en el diseño y uso,
A pesar de la enorme lista de lenguajes de programación que han ido
apareciendo, la mayor parte de los programadores sólo utilizan unos pocos. Además,
los programadores a menudo trabajan en empresas o instalaciones donde se trabaja
con un único lenguaje en particular, como Java, C o Ada. Entonces, nos preguntaremos
por qué es importante el estudio de diferentes lenguajes o paradigmas cuando al final
sólo trabajaremos con unos pocos. Hay muchas razones que justifican su estudio, entre
las cuales las más importantes son:
•
•
•
Si se conoce cómo están implementadas las características en un lenguaje de
programación, se mejorará la habilidad para escribir programas eficientes.
Permite una mejor elección del lenguaje de programación. El conocimiento de
diversos lenguajes de programación facilitan la elección del lenguaje más
adecuado para un proyecto determinado.
Facilita el aprendizaje de un nuevo lenguaje de programación. Cuando se
conocen las estructuras, técnicas de implementación y construcciones de un
5
•
lenguaje, es mucho más sencillo aprender un nuevo lenguaje de programación
que tenga estructuras similares.
Facilita el diseño de nuevos lenguajes de programación. Es posible que en un
futuro tengamos que diseñar nosotros un lenguaje que se adapte a nuestras
necesidades. Cuantos más lenguajes y paradigmas se conozcan, más sencillo
resultará el diseño y la implementación.
La historia de los lenguajes de programación es dinámica y se encuentra en
continua expansión. El gran número de lenguajes de programación que han aparecido
desde los años 60 hasta la actualidad no son ni mucho menos los únicos que
aparecerán en un futuro.
Cuando los lenguajes de programación empezaron a aparecer, los creadores
normalmente eran entidades o empresas. Hoy en día es diferente, cualquier informático
puede crear un lenguaje nuevo en un momento dado que precise ciertas características
en concreto.
6
Tabla 1. Algunos lenguajes de programación y sus orígenes.
3. TIPOS DE LENGUAJES DE PROGRAMACIÓN
3.1 Lenguaje de programación C
C es un lenguaje de programación de alto nivel con el que se pueden escribir
programas con fines muy diversos.
Una de las ventajas significativas de C sobre otros lenguajes de programación es
que el código producido por el compilador C está muy optimizado en tamaño lo que
redunda en una mayor velocidad de ejecución, y una desventaja es que C es
independiente de la plataforma solo en código fuente, lo cual significa que cada
plataforma diferente debe proporcionar el compilador para obtener el código máquina
que tiene que ejecutarse.
3.1.1. Historia del Lenguaje C
C es un lenguaje de programación de propósito general. Sus principales
características son:
•
•
•
•
•
Programación estructurada. Economía en las expresiones.
Abundancia en operadores y tipos de datos.
Codificación en alto y bajo nivel simultáneamente.
Reemplaza ventajosamente la programación en ensamblador.
Utilización natural de las funciones primitivas del sistema.
7
•
•
•
No está orientado a ningún área en especial.
Producción de código objeto altamente optimizado.
Facilidad de aprendizaje.
El lenguaje C nació en los laboratorios Bell de AT&T y ha sido estrechamente
asociado con el sistema operativo UNIX, ya que su desarrollo se realizó en este sistema
y debido a que tanto UNIX como el propio compilador C y la casi totalidad de los
programas y herramientas de UNIX fueron escritos en C. Su eficiencia y claridad han
hecho que el lenguaje ensamblador apenas haya sido utilizado en UNIX.
Este lenguaje está inspirado en lenguaje B escrito por Ken Thompson en 1970
con intención de re-codificar UNIX que en la fase de arranque estaba escrito en
ensamblador, con vistas a su transportabilidad a otras máquinas. B era un lenguaje
evolucionado e independiente de la máquina, inspirado en el lenguaje BCPL concebido
por Martin Richard en 1967.
En 1972, Dennix Ritchie toma el relevo y modifica el lenguaje B, creando el
lenguaje C y reescribiendo UNIX en dicho lenguaje. La novedad que proporcionó el
lenguaje C sobre el B fue el diseño de tipos y estructuras de datos.
Los tipos básicos de datos eran char (carácter), int (entero), float (reales en
precisión simple) y double (reales en precisión doble). Posteriormente se añadieron los
tipos short (enteros de longitud menor a la de un int), long (enteros de longitud mayor a
la de un int), unsigned (enteros sin signo) y enumeraciones.
Los tipos estructurados básicos de C son las estructuras, las uniones y las
matrices. A partir de los tipos básicos es posible definir tipos derivados de mayor
complejidad. Otra de las peculiaridades en C es su riqueza en operadores. Puede
decirse que prácticamente dispone de un operador para cada una de las posibles
operaciones en código máquina. Por otra parte, hay toda una serie de operaciones que
pueden hacerse con el lenguaje C, que realmente no están incluidas en el compilador
propiamente dicho, sino que las realiza un procesador justo antes de la compilación.
Las dos más importantes son #define (directriz de sustitución simbólica o de definición)
e #include (directriz de inclusión de un fichero fuente).
Finalmente, C que ha sido pensado para ser altamente transportable a nivel de
código fuente y para programar lo improgramable, igual que otros lenguajes, tiene sus
inconvenientes. Por ejemplo, carece de instrucciones de entrada y salida, de
instrucciones para manejo de cadenas de caracteres, etc. Trabajo que queda para la
biblioteca de funciones, lo que favorece la pérdida de transportabilidad.
Además, la excesiva libertad en la escritura de los programas puede llevar a
errores en la programación que, por ser correctos sintácticamente no se detectan a
8
simple vista. También, las precedencias de los operadores convierten a veces las
expresiones en pequeños rompecabezas. A pesar de todo, C ha demostrado ser un
lenguaje extremadamente eficaz y expresivo.
3.2 Lenguaje de programación BASIC
El BASIC es un lenguaje de programación que se creó con fines pedagógicos,
era el lenguaje que utilizan las microcomputadoras de los años 80. Actualmente sigue
siendo muy conocido y tienen muchísimos dialectos muy diferentes al original.
Los creadores del BASIC fueron John Goerge Kemeny y Thomas Eugene Kurtz
en el año 1964. Fue inventado para permitir a los estudiantes escribir programas
usando terminales de computador de tiempo compartido. Con el BASIC se quiso hacer
un lenguaje de programación mucho más sencillo que los que existían por aquel
entonces.
Los principios que originaron la creación del BASIC eran: que fuese fácil de usar
por todos, crear un lenguaje de programación de propósito general, que se le pudiese
incorporar características avanzadas y siguiese siendo de fácil uso para los
principiantes, ser interactivo, que los mensajes de error fuesen claros, que respondiese
rápidamente a los programas pequeños, que no fuese necesario tener conocimiento del
hardware de la computadora, y que protegiese al usuario del sistema operativo.
El BASIC se baso otros dos lenguajes de programación el FORTRAN II y el Algol
60, haciéndolo apropiado para el uso del computador a tiempo compartido y para la
aritmética de matrices.
Su nombre proviene de la expresión inglesa Beginner’s All-purpose Symbolic
Instruction Code (BASIC), que significa en español código de instrucciones simbólicas
de propósito general para principiantes.
El BASIC es un lenguaje de programación muy amplio, con una sintaxis fácil,
estructura sencilla y un buen conjunto de operadores. No es un lenguaje específico, es
polivalente, potente, se aprende rápidamente, en poco tiempo cualquier usuario es
capaz de utilizar casi la totalidad de su código.
3.3 Lenguaje de programación VISUAL BASIC
9
El lenguaje de programación Visual Basic es uno de los lenguajes de
programación que utiliza una interfaz visual es decir que nos permite programar en un
entorno gráfico, nos permite realizar un gran número de tareas sin escribir código,
simplemente realizando operaciones con el ratón sobre la pantalla de la computadora.
Este lenguaje de programación es uno de los que más interés despiertan entre
los programadores porque facilita la realización de tareas complejas en poco tiempo y
los que están comenzando a programar con Visual Basic ven como son capaces de
realizar pequeños programas al poco tiempo de haber comenzado a estudiarlo.
El Visual Basic es un lenguaje de programación que proviene del BASIC. La
primera versión de este lenguaje de programación fue presentada en el año 1991. La
intención de este primer programa era simplificar la programación utilizando un entorno
de trabajo claro que permitiera crear interfaces gráficas facilitando así la programación.
La sintaxis que utiliza este lenguaje de programación proviene del conocido
BASIC, pero completada con comandos y códigos de otros lenguajes más modernos.
Este lenguaje incluye un apartado dedicado a la Programación Orientada a Objetos.
Es un lenguaje muy apropiado para el manejo de bases de datos. Muchas
empresas lo utilizan para la gestión de sus bases de datos porque su utilización es
sencilla y abundan los programadores de este lenguaje.
De este lenguaje de programación han surgido algunos derivados como: El
VBScript que es un lenguaje predeterminado para el Active Server Pages (ASP), un
lenguaje de programación web. O el Visual Basic.NET que es un lenguaje de
características similares a las del C#.
3.4 Lenguaje de programación Delphi
El Delphi es un lenguaje de programación que se creó con el propósito de
agilizar la creación de software basándolo en una programación visual. En el Delphi se
utiliza una versión más actual del Pascal conocida como Object Pascal.
El Delphi es un lenguaje muy versátil, se usa para casi cualquier proyecto como
por ejemplo servicios del sistema operativo, establecer comunicación entre un servidor
web y un programa, aplicaciones de consola, conectividad con bases de datos, para
realizar aplicaciones visuales, etc.
Este lenguaje produce aplicaciones en código máquina, por lo que la
computadora las interpreta inmediatamente y no precisa de un lenguaje intérprete como
es necesario en otros lenguajes de programación.
10
Otra ventaja que tiene el Delphi es que en cualquiera de sus versiones se puede
programar DLLs, para comunicarnos con otros lenguajes de programación. Los
componentes visuales del Delphi suelen ser más eficientes que los de otros lenguajes
de programación. En Delphi podemos programar directamente los componentes
visuales e incluso crear nuevos controles que hereden características de los ya
existentes.
Con el Delphi podemos programar tanto controladores como servidores de
automatización. También podemos utilizar en el Delphi componentes visuales de otros
lenguajes de programación.
Delphi utiliza el Object Pascal, como ya hemos dicho, que es un lenguaje de
programación orientado a objetos, lo que nos permite beneficiarnos de características
importantes en programación como son: el encapsulamiento, polimorfismo y la
herencia.
Programar en Delphi de forma visual, implica el diseño de un formulario con
todos sus controles (botones, etiquetas, campos de texto, etc.), que en la mayoría de
los casos son colocados con el ratón. Seguidamente se establece el código que le
corresponde a los eventos de estos controles, se constituyen también los módulos de
datos que contienen la forma de acceder a los datos y las reglas de negocio de esta
aplicación.
3.5 Lenguaje de programación C++
El lenguaje de programación C++ fue creado en los años 80 por Bjarne
Stroustrup basándose en el lenguaje C. El C++ es un lenguaje orientado a objetos al
que se le añadieron características y cualidades de las que carecía el lenguaje C.
De esta forma nació el C++ y como sucedía con el C, depende mucho del
hardware, tiene una gran potencia en la programación a bajo nivel, y se le añadieron
elementos que nos permiten programar a alto nivel. El C++ es uno de los lenguajes más
potentes porque nos permite programar a alto y bajo nivel, pero a su vez es difícil de
aprender porque es necesario hacerlo casi todo manualmente.
El nombre fue propuesto por Rick Masciatti, al utilizarse C++ fuera de los
laboratorios donde se creó. Con el nombre de C++ quiso dar a entender que el C++ es
una extensión del lenguaje C.
El C++ es un lenguaje de programación híbrido, al que se le puede compilar. Una
de las ventajas que ofrece este lenguaje es que es mucho más sencillo de aprender
para los programadores que ya conocen el C.
11
El C++ mantiene una enorme compatibilidad con el C principalmente por dos
razones: por la gran cantidad de código C que existe y para facilitar el paso de los
programadores de C al nuevo lenguaje C++.
Ya hemos dicho anteriormente que el lenguaje C++ es un lenguaje de
programación orientado a objetos, pero no es un lenguaje orientado a objetos puro. El
C++ nació como evolución del C, y desde su creación fue un lenguaje de programación
hecho por programadores con un diseño muy práctico al que se le fueron añadiendo
todos los elementos que se comprobaron eran necesarios sin tener en cuenta aspectos
como su imagen, diseño, etc.
Todo esto ha ocasionado que sus detractores lo usen como argumento de crítica
sobre el C++. Pero por otra parte precisamente esto es lo que le da mayor valor, el ser
un lenguaje más pragmático.
3.6 Lenguaje de programación C#
El lenguaje de programación C# fue creado por el danés Anders Hejlsberg que
diseño también los lenguajes Turbo Pascal y Delphi. El C# (pronunciado en inglés “C
sharp”) es un lenguaje de programación orientado a objetos. Con este nuevo lenguaje
se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C, y
el C++.
Con el C# se pretendió que incorporase las ventajas o mejoras que tiene el
lenguaje Java. Así se consiguió que tuviese las ventajas del C, del C++, pero además la
productividad que posee el lenguaje Java y se le denomino C#.
Algunas de las características del lenguaje de programación C# son: su código
se puede tratar íntegramente como un objeto. Su sintaxis es muy similar a la del Java.
Es un lenguaje orientado a objetos y a componentes. Armoniza la productividad del
Visual Basic con el poder y la flexibilidad del C++. Ahorramos tiempo en la
programación ya que tiene una librería de clases muy completa y bien diseñada.
A pesar que el lenguaje C# forma parte de la plataforma .NET, que es una
interfaz de programación de aplicaciones. C# es un lenguaje independiente que
originariamente se creó para producir programas sobre esta plataforma .NET.
Esta plataforma fue creada entre otras razones porque anteriormente el Visual
Basic era uno de los lenguajes de programación que se encargaban de desarrollar
aplicaciones. El Visual Basic es un lenguaje orientado a objetos pero algo pobre,
porque se quiso que fuese desde su creación un lenguaje fácil de aprender para los
programadores novatos.
12
El Visual Basic no tiene algunas de las características necesarias como la
herencia, los métodos virtuales, la sobrecarga de operadores, etc. que se han
conseguido con el C# y la plataforma .NET.
3.7 Lenguaje de programación Java
El lenguaje Java fue diseñado para resolver todos estos problemas además de
otras muchos. Java posee una estructura compatible con la Web, que libera al
programador de la carga de tener que considerar soluciones particulares para
problemas comunes de la Web. Java genera ejecutables extremadamente cortos para
facilitar una transferencia más rápida sobre líneas de comunicación potencialmente
lentas. Java ejerce una seguridad estancada, un programa Java no puede acceder a
nada de lo que la computadora cliente no le dé específicamente el acceso. Java es
independiente de la máquina. El mismo programa puede ser ejecutado en un PC, en un
MAC o incluso en una maquina UNIX.
Java es un lenguaje simple y potente de propio derecho. Java está orientado a
objetos. Su sintaxis incita al programador a generar programas moduladores,
mantenibles. Para los principiantes, Java es muy similar al otro lenguaje orientado a
objetos, C++. No hay duda alguna de que Java estuvo influenciado en gran medida por
su potente predecesor. Sin embargo, Java se diferencia de C++ en algunas cuestiones
fundamentales.
Uno de los mayores logros de C++ fue la compatibilidad con el lenguaje C, que
no está en absoluto orientado a objetos. Mientras que asegura la aceptación del
lenguaje por ser compatible con el código heredado, esta decisión ha impuesto un alto
precio.
El lenguaje C++ es muy complejo. Los diseñadores de Java decidieron
abandonar la compatibilidad con C a favor de la simplicidad. Esto ha permitido al
lenguaje de Java adoptar un estilo mucho más simple, más consistente, que recuerda
un poco a Smalltalk.
Java es buen lenguaje para cualquier propósito con o sin la Web.
3.8 Lenguaje de programación ASP
13
El lenguaje ASP (Active Server Pages), es un lenguaje de programación de
servidores para generar páginas Web dinámicamente. Se conocen cuatro versiones de
este lenguaje las 1.0, 2.0, 3.0 y la ASP.NET que se la conoce como la ASP Clásica.
El lenguaje de programación ASP nace aproximadamente en el año 1996, lo que
ofrecía de nuevo este lenguaje era que se podía crear una página web en la que se
pudiese programar para que nos ofreciera unos determinados datos. Esto era una gran
ventaja porque en aquella época solo se podía dibujar una tabla e incluir unos pocos
datos.
El lenguaje ASP a grandes rasgos funciona así: un computador cliente hace una
petición de una página ASP. El computador servidor interpreta esta petición y le envía
una página web. El resultado final es una página HTML que se le envía al cliente. El
usuario no llega nunca a ver el código ASP, sino que ve el resultado de interpretar dicho
código, es decir, una página HTML.
El lenguaje de programación ASP, nos ofrece las siguientes ventajas: separar el
código HTML del ASP, mayor facilidad para realizar cambios, fácil instalación y
funcionamiento, mayor protección del código.
3.9 Lenguaje de programación COBOL
El Cobol (del inglés: Common Business Oriented Language, o Lenguaje Común
Orientado a Negocios) es un lenguaje de programación que fue diseñado para el
procedimiento de datos administrativos. Es un lenguaje de alto nivel y como tal es
independiente de la máquina. La idea de desarrollar surgió en una reunión del
pentágono en mayo de 1959. En esta reunión representantes del gobierno, usuarios
comerciales y fabricantes de computadoras, llegaron a la conclusión de que era factible
iniciar el desarrollo de un lenguaje de alto nivel que respondiera a las necesidades del
procedimiento de datos administrativos en contraste con la computadora científica. La
primera versión apareció en diciembre de 1959 seguido de Cobol-61 en 1961, que sería
la base para versiones posteriores. Su código es muy sencillo basado en procesos de
compilación y ejecución en el idioma inglés (fig. 1.1). El Cobol es actualmente uno de
los lenguajes de programación más usados.
14
Compilador
COBOL
Programa
fuente
COBOL
Computador
Programa
Objeto
Listado del
Programa fuente
COBOL
Computador
Salida del
Programa
Datos de
entrada al
programa
Figura 1. Proceso de Compilación y Ejecución de COBOL.
3.10 Lenguaje de programación FORTRAN
Su nombre proviene del inglés Formula Translator. Es un lenguaje de
programación para el desarrollo de aplicaciones matemáticas y científicas, fue el primer
lenguaje de programación de alto nivel. Estos lenguajes de alto nivel tienen entre otras
las ventajas que pueden utilizarse en cualquier computadora y son más afines al
lenguaje humano.
Es un lenguaje de programación orientado a procedimientos. Un lenguaje
orientado a procedimientos es aquél en el que el programador al escribir el programa lo
hace con un orden determinado para resolver el problema. Estos lenguajes tienen la
ventaja de que con una sola instrucción propia hacen referencia a varias del lenguaje
máquina.
El FORTRAN nace en los años 50, se utiliza principalmente para aplicaciones
científicas y el análisis numérico. Durante toda su vida ha pasado por varias versiones,
inicialmente fue un lenguaje imperativo, actualmente en sus últimas versiones
comprobamos que es un lenguaje de programación orientado a objetos y a
procedimientos.
15
El FORTRAN fue bien acogido en la comunidad científica por su excelente
rendimiento en todo este tipo de aplicaciones. Por ello lo utilizaron para el desarrollo de
programas de cómputo intensivo. Posteriormente se le incluyó la aritmética de números
complejos lo cual lo mejoró notablemente.
Algunos expertos opinan que el FORTRAN se acabará extinguiendo, pero
comprobamos que actualmente se sigue usando. Una de las razones por las que aún
no se ha extinguido es porque a las compañías que han invertido muchísimo dinero en
el desarrollo de un determinado software, no les es rentable traducirlo a otro lenguaje
de programación.
3.11 Lenguaje de programación JavaScript
JavaScript es un lenguaje de programación interpretado, lo que significa que no
necesita ser compilado. Proviene de Java y se utiliza principalmente para la creación de
páginas web. JavaScript es una mezcla entre Java y HTML. Su creador fue Brendan
Eich. Al principio se le llamó Mocha, mas tarde LiveScript, hasta que en el año 1995 se
le llamó JavaScript.
Pero debemos saber que JavaScript es un lenguaje muy diferente de Java.
JavaScript, aunque es un lenguaje de programación orientado a objetos no tiene
herencia, al contrario de Java que sí la tiene. JavaScript es más bien un lenguaje
orientado a eventos.
Otra diferencia entre ambos lenguajes es que mientras con Java podemos crear
aplicaciones autónomas como son los applets (programas que podemos incluir en las
páginas web), JavaScript es un lenguaje que se incorpora dentro de la página web,
formando parte del código HTML sin el que no puede existir.
Estos dos lenguajes tienen en común gran parte de su sintaxis, su estructura,
establecen jerarquía de objetos para poder definir sus propiedades, etc. Tienen muchos
elementos comunes con los lenguajes C y C++.
Podemos incluir el código de JavaScript en cualquier página web o documento
HTML, desde el punto de vista tanto del cliente como del servidor en documentos PHP,
ASP, etc. Este código va incluido dentro de las etiquetas de HTML, de esta manera:
<SCRIPT> </ SCRIPT>. JavaScript es un lenguaje que diferencia entre mayúsculas y
minúsculas, los espacios en blanco los tiene en cuenta.
3.12 Lenguaje de programación LISP
16
LISP es un lenguaje de programación creado por el profesor John McCarthy a
finales de los años 50. John McCarthy quiso desarrollar un lenguaje que mostrara la
información estructurada en listas en las que se pudieran gestionar esta. De ahí el
nombre que le dio a este lenguaje, Lisp (List-Processing), porque fue creado
principalmente para el procesamiento de listas.
Con el trascurso del tiempo LISP dio origen a varios dialectos. Entre los más
importantes podemos citar a: el MACLISP, COMMONLISP, INTERLISP, ZETALISP, etc.
De todos ellos el COMMONLISP se está consolidando como el estándar. Del LISP
posteriormente surgió otro lenguaje de programación importante como es el Logo.
El Lisp es un lenguaje funcional que se apoya en la utilización de funciones
matemáticas para el control de los datos. Pero el elemento fundamental en LISP es la
lista. Cada función de LISP y cada programa que generemos con él vienen dados en
forma de lista. Por esta razón los datos no pueden diferenciarse sintácticamente de los
programas.
A este tipo de lenguajes se les denomina aplicativos o funcionales porque se
basan en la aplicación de funciones a los datos. El LISP diferencia dos tipos de
elementos básicos: el átomo, datos elementales de varios tipos como números,
símbolos, caracteres y cadenas de caracteres y las Listas, entre las que podemos
nombrar una en especial, la lista “nil”, que es una lista nula.
3.13 Lenguaje de programación Python
Python es un lenguaje de programación de scripting. Los lenguajes scripting son
aquéllos lenguajes que usan un intérprete en vez de ser compilados. Es opuesto al Perl,
lenguaje con el que rivaliza amistosamente. La mayoría de usuarios de Python lo
consideran como un lenguaje más limpio y elegante a la hora de programar.
Python nos permite separar el programa en módulos, este lenguaje tiene una
gran variedad de módulos estándar que se pueden utilizar para programar, o incluso
como una base para aprender a programarlo.
Python es un lenguaje interpretado lo que ahorra muchísimo tiempo en la
creación de programas puesto que no es preciso compilar su código. El intérprete que
usa Python se puede utilizar de modo interactivo lo que nos permite experimentar con
este lenguaje mientras programamos.
Este lenguaje es un lenguaje de programación que permite que podamos
programar usando varios estilos: programación orientada a objetos, programación
17
estructurada, programación funcional y programación orientada a aspectos. A esto se le
conoce como lenguaje de programación multiparadigma.
3.14 Lenguaje de programación Pascal
Fue diseñado por el científico informático suizo Niklaus Wirth en 1968 y revisado
en 1972. En 1984 Wirth recibió el Turing Award, el mayor honor en informática. Wirth
creó Pascal para evitar los problemas y defectos de los lenguajes de programación de
amplio uso en aquel tiempo, incluyó las mejores características de ellos y de otros más
en un formato fácil de usar. Su nombre se debe al matemático francés Blaise Pascal
(1623-1662).
Destinado originalmente a ser una herramienta de enseñanza para los conceptos
de programación, Pascal se volvió la base para aprender programación, ya que
conociendo Pascal sería más fácil usar FORTRAN, C, entre otros más. El lenguaje es
sencillo de aprender, aunque incluye un amplio rango de conceptos de programación.
Pascal promueve a los programadores el escribir programas claros y fácilmente
comprensibles para otros programadores.
Algunos otros lenguajes de programación se resumen en la siguiente tabla:
ADA
Augusta ADA Byron
(Lady Lovelace)
1979
Derivado de Pascal, utilizado
principalmente por los militares.
ALGOL
ALGOrithmic Language
(Lenguaje ALGOL algorítmico)
1960
Primer lenguaje de programación
procedural estructurado, utilizado sobre
todo para resolver problemas matemáticos.
APL
A Programming Language
(Un lenguaje de programación)
1961
Lenguaje interpretado que utiliza un amplio
conjunto de símbolos especiales y que se
caracteriza por su brevedad. Utilizado
fundamentalmente por los matemáticos.
BASIC
Beginners All-Purpose Symbolic
Instruction Code(Código de
instrucciones simbólicas
multipropósito para principiantes)
1965
Lenguaje de programación de alto nivel,
utilizado con frecuencia por programadores
principiantes.
C
Predecesor del lenguaje de
programación B, fue desarrollado
en Bell Laboratory, en 1972
1972
Lenguaje de programación compilado y
estructurado, que suele utilizarse en
numerosos lugares de trabajo porque sus
programas pueden transferirse fácilmente
entre distintos tipos de computadoras.
COBOL
COmmon Business-Oriented
Language (Lenguaje simbólico
de programación orientado a
aplicaciones comerciales)
1959
Lenguaje de programación semejante al
idioma inglés, que hace hincapié en las
estructuras de datos. De amplia utilización,
principalmente en empresas.
FORTH
Lenguaje de cuarta
(FOuRTH) generación
1970
Lenguaje estructurado e interpretado de
fácil ampliación. Ofrece una alta
funcionalidad en un espacio reducido.
FORTRAN
FORmula TRANslation
(Traducción de fórmulas)
1954
Diseñado en un principio para usos
científicos y de ingeniería, se trata de un
lenguaje compilado de alto nivel que hoy se
utiliza en numerosos campos. Precursor de
diversos conceptos, como las variables, las
instrucciones condicionales y las subrutinas
compiladas por separado.
18
LISP
LISt Processing
(Procesamiento de listas)
1960
Lenguaje de programación orientado a la
generación de listas, utilizado
principalmente para manipular listas de
datos. Lenguaje interpretado que suele
utilizarse en las investigaciones y está
considerado como el lenguaje estándar en
proyectos de inteligencia artificial.
LOGO
Derivado del griego logos,
‘palabra’.
1968
Lenguaje de programación que suele
utilizarse con niños. Presenta un sencillo
entorno de dibujo y varias prestaciones de
mayor nivel del lenguaje LISP.
Fundamentalmente educativo.
Modula-2
MODUlar LAnguage-2, diseñado
como fase secundaria de Pascal
(diseñados ambos por Niklaus
Wirth)
1980
Lenguaje que hace hincapié en la
programación modular. Es un lenguaje de
alto nivel basado en Pascal, que se
caracteriza por la ausencia de funciones y
procedimientos estandarizados.
Pascal
Blaise PASCAL, matemático e
inventor del primer dispositivo de
computación.
1971
Lenguaje compilado y estructurado basado
en ALGOL. Agrega tipos y estructuras de
datos simplificando la sintaxis. Al igual que
el C, se trata de un lenguaje de
programación estándar para
microcomputadoras.
PILOT
Programmed Inquiry, Language
Or Teaching
(Consulta, lenguaje o aprendizaje
de investigación programada)
1969
Lenguaje de programación utilizado
fundamentalmente para crear aplicaciones
destinadas a instrucciones asistidas por
computadora. Se caracteriza por utilizar un
mínimo de sintaxis.
PL/1
Programming Language 1
(Lenguaje de programación uno)
1964
Diseñado para combinar las principales
virtudes del FORTRAN, COBOL y ALGOL,
se trata de un lenguaje de programación
complejo. Compilado y estructurado, es
capaz de gestionar errores y de procesar
multitareas, y se emplea en entornos
académicos y de investigación.
Tabla 2. Resumen de algunos Lenguajes de Programación.
4. EJEMPLOS DE PROGRAMACIÓN EN C Y VISUAL BASIC
Dada una cantidad en grados Fahrenheit, convertirla a grados Celsius.
Ejemplo en C:
#include <stdio.h>
#include <conio.h>
Void main ()
{
int f,c;
printf (“dame los grados Fahrenheit”);
scanf(“%i”,&f);
c=f-32/9*5;
printf (“el resultado en grados Celsius es %i”,c);
getch();
19
}
Ejemplo en Visual Basic
Dim f as integer
Dim c as integer
Private sub_cmd aceptar click()
f=txtgradosf.txt
c=f-32/9*5
Msgbox (“el resultado en grados Celsius es” & c & “grados”)
En sub
5. OLIMPIADA INTERNACIONAL DE INFORMÁTICA
La Olimpiada Internacional de Informática (IOI por sus siglas en inglés) es una de
las siete Olimpiadas internacionales de ciencia (algunas otras son Física, Química,
Matemáticas). El principal objetivo es estimular el interés en informática (ciencias de la
computación) y tecnologías de información.
La idea de organizar una Olimpiada Internacional de Informática surge en la 24ª
Conferencia General de la UNESCO llevada a cabo en París en 1987. Fue propuesta
por el profesor Blagovest Sendov, miembro de la delegación Búlgara. Como resultado,
la primera Olimpiada Internacional de Informática se llevó a cabo en Bulgaria en Mayo
de 1989.
La Olimpiada Internacional de Informática es organizada anualmente en alguno
de los países participantes. Las últimas cinco Olimpiadas se han llevado a cabo en:
Bulgaria (2009), Egipto (2008), Croacia (2007), México (2006) y Polonia (2005). La
siguiente Olimpiada se llevará a cabo en Waterloo, Canadá.
Cada país participante envía una delegación de uno a cuatro concursantes y dos
líderes. Los concursantes compiten individualmente y tratan de maximizar sus puntajes
resolviendo un conjunto de problemas de programación.
5.1 La competencia
20
Son dos días de competencia. Durante un día de competencia, los concursantes
reciben 4 problemas para ser resueltos en 5 horas. Además, antes del primer día de
competencia, hay una práctica de dos horas con el propósito de familiarizar a los
participantes con el ambiente y procedimientos.
El ambiente de desarrollo está definido y es el mismo para todos los
concursantes (por ejemplo, software: sistema operativo, navegadores, editores,
compiladores; hardware: procesador, memoria RAM, disco duro, teclado). Los
concursantes pueden usar uno de los siguientes lenguajes de programación: Pascal, C
o C++.
5.2 La olimpiada de informática en México
Antes de concursar a nivel mundial, hay una etapa en la cual los jóvenes
estudiantes de secundaria y preparatoria concursan a nivel nacional en nuestro país de
modo que la selección representativa quede conformada con varios meses de
anticipación y los integrantes del equipo puedan acostumbrarse a trabajar tanto con sus
líderes de equipo como entre sí.
Los requisitos para participar son: ser menor de 19 años, cursar actualmente
secundaria y hasta segundo año de preparatoria, no haber recibido ningún tipo de
educación superior y tener habilidad para resolver problemas utilizando la lógica, el
ingenio y las computadoras.
Figura 2. Representantes Mexicanos en la IOI.
21
La próxima Olimpiada Mexicana de Informática (OMI) se llevará a cabo del 1 al 6 de
octubre. Ésta debió haberse llevado a cabo entre los meses de abril y mayo, sin
embargo, debido al brote de influenza fue pospuesta hasta este octubre. El propósito de
esta fase es encontrar a los mejores programadores que puedan representar a México
(Figura 2) en la fase internacional. Los ganadores tendrán la fortuna de conocer
Canadá además de disfrutar de una convivencia cultural donde podrán relacionarse con
jóvenes de distintos lugares del mundo.
22
BIBLIOGRAFÍA
1.-Joyanes, L. FUNDAMENTOS DE PROGRAMACIÓN,
ESTRUCTURA DE DATOS, 2ºEd, Mc Graw Hill,1996. p.p 6-9
ALGORÍTMOS
Y
2.- Ceballos, F. C/C++: CURSO DE PROGRAMACIÓN, 2º Ed, AlfaOmega.
3.-Ceballos, F. EL LENGUAJE DE PROGRAMACIÓN C#,Ed. AlfaOmega
4.-Stephen R. APRENDA JAVA, Ed, Mc Graw Hill
5.-Dale N y Weems C, PASCAL, 2º Ed, Mc. Graw Hill, pp. 23-24
6.-Philippakis S. y Kasmier L, COBOL ESTRUCTURADO, 3Ed, Mc Graw Hill
7.-DEITEL & DEITEL, Java. Cómo programar, 7ª Edición, Editorial Pearson, México
2008, pp. 6-11.
Fuentes electrónicas
1.- http://www.lenguajes-de-programacion.com/lenguajes-de-programacion.shtml
(Visitado el 6 de Septiembre del 2009)
2.- http://go.yuri.at/juegos/clase1/clase1_introduccion.html en una ventana nueva.
(Visitado el 5 de Septiembre del 2009)
3.-http://www.dccia.ua.es/dccia/inf/asignaturas/LPP/2008-2009/tema-01.html
(Visitado el 5 de Septiembre del 2009)
4.-http://www.larevistainformatica.com/ASP.htm
(Visitado el 5 de Septiembre del 2009)
5.-http://www.larevistainformatica.com/Cobol.htm
(Visitado el 5 de Septiembre del 2009)
6.-http://www.larevistainformatica.com/FORTRAN.htm
(Visitado el 5 de Septiembre del 2009)
7.-http://www.larevistainformatica.com/JavaScript.htm
(Visitado el 5 de Septiembre del 2009)
8.-http://www.larevistainformatica.com/Python.htm
23
(Visitado el 5 de Septiembre del 2009)
9.- http://www.larevistainformatica.com/lenguaje-programacion-c.htm
(Visitado el 5 de Septiembre del 2009)
10.- http://www.larevistainformatica.com/BASIC.htm
(Visitado el 5 de Septiembre del 2009)
11.- http://www.larevistainformatica.com/lenguaje-programacion-viasual-basic.htm
(Visitado el 5 de Septiembre del 2009)
12.- http://www.larevistainformatica.com/Delphi.htm
(Visitado el 5 de Septiembre del 2009)
13.- http://www.larevistainformatica.com/LENGUAJES-DE-PROGRAMACIONlistado.html
(Visitado el 5 de Septiembre del 2009)
14.-http://www.olimpiadadeinformatica.org.mx/
(Visitado el 4 de Septiembre del 2009)
15.-http://www.IOInformatics.org/
(Visitado el 4 de Septiembre del 2009)
24
NOTAS
25