Gabysmar1200’s Weblog

Just another WordPress.com weblog

Lenguajes de Programación

Posted by gabysmar1200 en noviembre 22, 2008

LENGUAJES DE PROGRAMACION

Con la aparición de las computadoras desaparecen las secuencias de posiciones de llaves mecánicas que debían desconectarse para obtener una acción determinada, una llave conectada era un 1 y una llave desconectada era un 0. Una sucesión de llaves en cualquiera de sus dos posiciones definía una secuencia de ceros y unos (por ejemplo: 0100011010011101…) que venía a representar una instrucción o un conjunto de instrucciones (programa) para el ordenador (o computador) en el que se estaba trabajando. A esta primera forma de especificar programas para una computadora se la denomina lenguaje máquina o código máquina.

La necesidad de recordar secuencias de programación para las acciones usuales llevó a denominarlas con nombres fáciles de memorizar y asociar: ADD (sumar), SUB (restar), MUL (multiplicar), CALL (ejecutar subrutina), etc. A esta secuencia de posiciones se le denominó “instrucciones”, y a este conjunto de instrucciones se le llamó lenguaje ensamblador.

Posteriormente aparecieron diferentes lenguajes de programación, los cuales reciben su denominación porque tienen una estructura sintáctica similar a los lenguajes escritos por los humanos.

DEFINICION

Es el medio a través del cual le comunicamos a la computadora  la secuencia de instrucciones que debe ejecutar para llevar a cabo actividades, tareas o solución de problemas. Todo el lenguaje permite el manejo de los tres elementos que componen un programa; a saber: estructuras de datos, operaciones primitivas elementales  y estructuras de control.

Recordemos que mediante un programa podemos representar en forma de datos cualquier situación de nuestra realidad, a los datos se les da entrada a la computadora mediante dispositivos de entrada como teclado, lector óptico de caracteres, ratón, etc.; una vez que los datos están en la computadora, se procesan para convertirlos en información la cual será emitida hacia el exterior  de la computadora mediante dispositivos de salida como son la pantalla (crt), impresora; etc.

CARACTERISTICAS

Todo lenguaje esta compuesto por un alfabeto, un vocabulario y una gramática. A continuación se describen estos componentes.

  1. ALFABETO O CONJUNTO DE CARACTERES

Es el conjunto de elementos estructurales del lenguaje:

  1. Caracteres alfabéticos (letras minúsculas y mayúsculas)
  2.  Caracteres numéricos (dígitos del 0 al 9)  
  3. Caracteres especiales (símbolos especiales tales como [.], [,], [:], [;], [$], [#], [/] y muchos otros mas)

2.- VOCABULARIO O LEXICO

Es el conjunto de palabras validas o reservadas en el lenguaje. Por ejemplo, las palabras switch, float, if, then, else, int, do, for, while, char, public, static, private tienen un significado predeterminado en el lenguaje Java es decir son las palabras reservadas del lenguaje Java. Así, cada lenguaje tiene sus propias palabras reservadas.

3.- GRAMATICA

 Es el conjunto de lineamientos que se deben construir para construir frases, oraciones o instrucciones. Mediante la gramática o sintaxis logramos transmitirle a la computadora  lo que deseamos. Por ejemplo, para leer datos debemos seguir cierto lineamiento, también para imprimir, etc.

Clasificación de los lenguajes de programación

Los lenguajes de programación se pueden clasificar atendiendo a varios criterios:

     * Según el nivel de abstracción

    * Según la forma de ejecución

    * Según el paradigma de programación que poseen cada uno de ellos

 

Según su nivel de abstracción

 

Lenguajes Maquina

 

Están escritos en lenguajes directamente inteligibles por la maquina (computadora), ya que sus instrucciones son cadenas binarias (0 y 1). Da la posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traducción posterior lo que supone una velocidad de ejecución superior, solo que con poca fiabilidad y dificultad de verificar y poner a punto los programas.

 

Lenguajes de bajo nivel

 

Los lenguajes de bajo nivel son lenguajes de programación que se acercan al funcionamiento de una computadora. El lenguaje de más bajo nivel por excelencia es el código máquina. A éste le sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los registros de memoria de la computadora de forma directa.

 

Lenguajes de medio nivel

 

Hay lenguajes de programación que son considerados por algunos expertos como lenguajes de medio nivel (como es el caso del lenguaje C) al tener ciertas características que los acercan a los lenguajes de bajo nivel pero teniendo, al mismo tiempo, ciertas cualidades que lo hacen un lenguaje más cercano al humano y, por tanto, de alto nivel.

 

Lenguajes de alto nivel

Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés. En BASIC, uno de los lenguajes de alto nivel más conocidos, los comandos como “IF CONTADOR = 10 THEN STOP” pueden utilizarse para pedir a la computadora que pare si el CONTADOR es igual a 10. Esta forma de trabajar puede dar la sensación de que las computadoras parecen comprender un lenguaje natural; en realidad lo hacen de una forma rígida y sistemática, sin que haya cabida, por ejemplo, para ambigüedades o dobles sentidos.

 

 

Según la forma de ejecución

 

Lenguajes compilados

 

Naturalmente, un programa que se escribe en un lenguaje de alto nivel también tiene que traducirse a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente. Se requiere una compilación antes de ejecutar las instrucciones de un problema.

 

Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código binario).

 

Al usar un lenguaje compilado (como lo son, por ejemplo, los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se podrá ejecutar mientras haya errores, sino hasta que tras haber compilado el programa, ya no aparecen errores en el código.

 

Lenguajes interpretados

 

Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la compilación para utilizarlo en una ejecución futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el procesamiento de los datos. El código objeto no se graba para utilizarlo posteriormente.

 

La siguiente vez que se utilice una instrucción, se la deberá interpretar otra vez y traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo o bucle, cada instrucción del bucle tendrá que volver a ser interpretada en cada ejecución repetida del ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar compilando a cada momento el código completo). El intérprete elimina la necesidad de realizar una de compilación después de cada modificación del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una ejecución del código.

 

Según el paradigma de programación

 

Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro, sino que cada uno tiene ventajas y desventajas. Dependiendo de la situación un paradigma resulta más apropiado que otro.

Atendiendo al paradigma de programación, se pueden clasificar los lenguajes en:

    * El paradigma imperativo o por procedimientos es considerado el más común y está representado, por ejemplo, por el C o por BASIC.

    * El paradigma funcional está representado por la familia de lenguajes LISP (en particular Scheme), ML o Haskell.

    * El paradigma lógico, un ejemplo es PROLOG.

    * El paradigma orientado a objetos. Un lenguaje completamente orientado a objetos es Smalltalk.

Nota: La representación orientada a objetos mejora la estructura de los datos y por lo tanto se ha aplicado a diferentes paradigmas como Redes de Petri, Imperativo Secuencial, Lógica de Predicados, Funcional, etc. No obstante, la manipulación no queda fundamentalmente afectada y por lo tanto el paradigma inicial tampoco a pesar de ser re-orientado a objetos.

Si bien puede seleccionarse la forma pura de estos paradigmas a la hora de programar, en la práctica es habitual que se mezclen, dando lugar a la programación multiparadigma.

Actualmente el paradigma de programación más usado debido a múltiples ventajas respecto a sus anteriores, es la programación orientada a objetos.

 

Lenguajes imperativos

 

    * BASIC

    * C

    * C++

    * Java

    * C#

    * Perl

    * unerg

 

Lenguajes Funcionales

 

    * Puros:

          o Haskell

          o Miranda

 

    * Híbridos:


          o Lisp

          o Scheme

          o Ocaml

          o Standard ML

          o ML

          o Scala

 


Lenguajes Lógicos

 

    * Prolog

 

Lenguajes orientados a objetos


 

    * ActionScript

    * Ada

    * C++

    * C#

    * VB.NET

    * Visual FoxPro

    * Clarion

    * Delphi

    * Harbour

    * Eiffel

    * Java

    * JavaScript

    *Lexico (en castellano)

    * Objective-C

    * Ocaml

    * Oz

    *Perl(soporta herencia múltiple)

    * PHP (en su versión  5)

    * Python

    * Ruby

    * Smalltalk

    * Magik (SmallWorld)


 

 

Algunos lenguajes de programación

 


 

    * ABAP

    * ABC

    * ActionScript

    * Ada

    * Afnix

    * ALGOL

    * AmigaE

    * APL

    * ASP

    * ASP.NET

    * AWK

    * B

    * BASIC

    * Batch

    * BCPL

    * Befunge

    * Boo

    * C

    * C++

    * C#

    * Caml

    * Clipper

    * CLIPS

    * CLU

    * COBOL

    * CORAL

    * D

    * Delphi

    * DIV

    * Dylan

    * Eiffel

    * Erlang

    * Ensamblador

    * Extended ML

    * Euphoria

    * Fénix

    * FISH

    * Flow-Matic

    * Forth

    * FORTRAN

    * FP

    * Gambas

    * GML

    * GRAFCET

    * Haskell

    * H4XX0R

    * HTML

    * Icon

    * Inform

    * INTERCAL

    * ISWIM

    * J

    * Java

    * JavaScript

    * Joy

    * KWC

    * Ladder

    * Letra

    * Lexico

    * Lingo

    * Lisp

    * Logo

    * Lua

    * MAGIC

    * Mainsail

    * Mac Army

    * Mesa

    * Miranda

    * ML

    * Modula

    * Modula-2

    * Modula-3

    * Natural

    * NetREXX

    * Oberon

    * Object REXX

    * Objective-C

    * ObjectPAL

    * Ocaml

    * Occam

    * Oz

    * Pascal

    * Parlog

    * Perl

    * PHP

    * PL/1

    * Plankalkül

    * PostScript

    * PowerBuilder

    * Prolog

    * Python

    * R

    * Rapid

    * REXX

    * RPN

    * RPG

    * Ruby

    * Sail

    * Sappler

    * Sather

    * Scheme

    * Scriptol

    * Seed7

    * Self

    * Sh

    * Simula

    * Smalltalk

    * Snobol

    * SPARK

    * Squeak

    * SR

    * Standard ML

    * TI-Basic

    * TCL

    * VBA

    * Velneo

    * Visual Basic

    * Visual Basic .NET

    * Visual C++

    * Visual DialogScript

    * Visual Foxpro

    * Visual Java

    * XBase++

    * Yurix

    * ZPL

 

 


 

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: