lenguajesprog

34
Software de computo LENGUAJES DE PROGRAMACION

Upload: ricardo-m-p

Post on 13-Jun-2015

2.319 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Lenguajesprog

Software de computoLENGUAJES DE

PROGRAMACION

Page 2: Lenguajesprog

¿QUE ES?

Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas 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.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 y se mantiene el código fuente de un programa informático se le llama programación.

Page 3: Lenguajesprog

¿Que es un paradigma?

Conjunto de generalidades y técnicas que encapsulan a los lenguajes de programación

Page 4: Lenguajesprog

PARADIGMAS

# Programación imperativa# Programación lógica# Programación funcional# Programación declarativa# Programación estructurada# Programación dirigida por eventos# Programación modular# Programación orientada a aspectos# Programación orientada a objetos

Page 5: Lenguajesprog

Es un paradigma de programación que describe la programación en términos del estado del programa y sentencias que cambian dicho estado. Los programas

imperativos son un conjunto de instrucciones que le indican al computador cómo realizar una tarea.

La implementación de hardware de la mayoría de computadores es imperativa; prácticamente todo el hardware de los computadores está diseñado para ejecutar código de máquina, que es nativo al computador, escrito en una forma imperativa.

Esto se debe a que el hardware de los computadores implementa el paradigma de las Máquinas de Turing. Desde esta perspectiva de bajo nivel, el estilo del programa está

definido por los contenidos de la memoria, y las sentencias son instrucciones en el lenguaje de máquina nativo del computador (por ejemplo el lenguaje ensamblador).

Los lenguajes imperativos de alto nivel usan variables y sentencias más complejas, pero aún siguen el mismo paradigma. Las recetas y las listas de revisión de procesos, a

pesar de no ser programas de computadora, son también conceptos familiares similares en estilo a la programación imperativa; cada paso es una instrucción, y el

mundo físico guarda el estado (Zoom).

Los primeros lenguajes imperativos fueron los lenguajes de máquina de los computadores originales. En estos lenguajes, las instrucciones fueron muy simples, lo

cual hizo la implementación de hardware fácil, pero obstruyendo la creación de programas complejos. Fortran, cuyo desarrollo fue iniciado en 1954 por John Backus

en IBM, fue el primer gran lenguaje de programación en superar los obstáculos presentados por el código de máquina en la creación de programas complejos.

Page 6: Lenguajesprog

LENGUAJES IMPERATIVOS

* ASP * BASIC * Lenguaje de programación C * Fortran * Pascal * Perl * PHP * Lua * Java

Page 7: Lenguajesprog

EJEMPLO

#/usr/bin/perlPrint “HOLA MUNDO ”;

sleep:10;

Page 8: Lenguajesprog

Programacion Logica

La programación lógica consiste en la aplicación del corpus de conocimiento sobre lógica para el diseño de lenguajes de programación; no debe confundirse con la disciplina de la lógica computacional.

La programación lógica es un tipo de paradigmas de programación dentro del paradigma de programación declarativa. El resto de los subparadigmas de programación dentro de la programación lógica son: programación funcional, programación basada en restricciones, programas DSL (de dominio específico) e híbridos. La programación declarativa gira en torno al concepto de predicado, o relación entre elementos. La programación funcional se basa en el concepto de función (que no es más que una evolución de los predicados), de corte más matemático.

Page 9: Lenguajesprog

Lenguajes

Prolog

Page 10: Lenguajesprog

Ejemplo

write('Hola mundo').

Page 11: Lenguajesprog

Programacion Funcional

Es un paradigma de programación declarativa basado en la utilización de funciones aritméticas.

Page 12: Lenguajesprog

El objetivo es conseguir lenguajes expresivos y matemáticamente elegantes, en los que no sea necesario bajar al nivel de la máquina para describir el proceso llevado a cabo por el programa, y evitando el concepto de estado del cómputo. La secuencia de computaciones llevadas a cabo por el programa se regiría única y exclusivamente por la reescritura de definiciones más amplias a otras cada vez más concretas y definidas, usando lo que se denominan "definiciones dirigidas".

Page 13: Lenguajesprog

Los programas escritos en un lenguaje funcional están constituidos únicamente por definiciones de funciones, entendiendo éstas no como subprogramas clásicos de un lenguaje imperativo, sino como funciones puramente matemáticas, en las que se verifican ciertas propiedades como la transparencia referencial (el significado de una expresión depende únicamente del significado de sus subexpresiones), y por tanto, la carencia total de efectos laterales.

Otras características propias de estos lenguajes son la no existencia de asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteración (lo que obliga en la práctica a que todas las repeticiones de instrucciones se lleven a cabo por medio de funciones recursivas).

Existen dos grandes categorías de lenguajes funcionales: los funcionales puros y los híbridos. La diferencia entre ambos estriba en que los lenguajes funcionales híbridos son menos dogmáticos que los puros, al admitir conceptos tomados de los lenguajes imperativos, como las secuencias de instrucciones o la asignación de variables. En contraste, los lenguajes funcionales puros tienen una mayor potencia expresiva, conservando a la vez su transparencia referencial, algo que no se cumple siempre con un lenguaje funcional híbrido.

Page 14: Lenguajesprog

LenguajesHaskellMirandaScala Lisp Scheme OcamlSAPStandard MLErlangF# PERLPYTHONRUBY

Page 15: Lenguajesprog

EJEMPLO

holaMundo :: IO ()holaMundo = do putStrLn ("Hola mundo!");

Page 16: Lenguajesprog

Programacion Declarativa

La Programación Declarativa, es un paradigma de programación que está basado en el desarrollo de programas especificando o "declarando" un conjunto de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones que describen el problema y detallan su solución. La solución es obtenida mediante mecanismos internos de control, sin especificar exactamente cómo encontrarla. No existen asignaciones destructivas, y las variables son utilizadas con Transparencia referencial.

Page 17: Lenguajesprog

Lenguajes

* Haskell (Programación funcional) * ML (Programación funcional) * Lisp (Programación funcional) * Prolog (Programación Lógica) * F-Prolog (Programación Lógica Difusa) * Curry (Programación Lógico-Funcional)

Page 18: Lenguajesprog

Ejemplo

(format t "¡Hola, mundo!");

Page 19: Lenguajesprog

Programacion EstructuradaLa programación estructurada es una forma de escribir

programas de ordenador (programación de computadora) de manera clara. Para ello utiliza únicamente tres estructuras: secuencia, selección e iteración; siendo innecesario el uso de la instrucción o instrucciones de transferencia incondicional (GOTO, EXIT FUNCTION, EXIT SUB o múltiples RETURN).

Hoy en día las aplicaciones informáticas son mucho más ambiciosas que las necesidades de programación existentes en los años 1960, principalmente debido a las aplicaciones gráficas, por lo que las técnicas de programación estructurada no son suficientes. Ello ha llevado al desarrollo de nuevas técnicas, tales como la programación orientada a objetos y el desarrollo de entornos de programación que facilitan la programación de grandes aplicaciones.

Page 20: Lenguajesprog

ESTRUCTURAS

Estructura SecuencialEstructura de SeleccionEstructura de Iteracion

Page 21: Lenguajesprog

Anidamiento

El cuerpo de cualquier estructura puede ser una instrucción simple u otra estructura, que a su vez puede anidar a otra.

Page 22: Lenguajesprog

La programación dirigida por eventos

es un paradigma de programación en el que tanto la estructura como la ejecución de los programas van

determinados por los sucesos que ocurran en el sistema, definidos por el usuario o que ellos mismos provoquen.

Para entender la programación dirigida por eventos, podemos oponerla a lo que no es: mientras en la programación

secuencial (o estructurada) es el programador el que define cuál va a ser el flujo del programa, en la programación

dirigida por eventos será el propio usuario —o lo que sea que esté accionando el programa— el que dirija el flujo del programa. Aunque en la programación secuencial puede

haber intervención de un agente externo al programa, estas intervenciones ocurrirán cuando el programador lo haya

determinado, y no en cualquier momento como puede ser en el caso de la programación dirigida por eventos.

Page 23: Lenguajesprog

LENGUAJES

Lexico Visual Basic Javascript

Java(AWT,swing) Visual C++ Visual .Net Visual C# Visual J# ASP .Net

Page 24: Lenguajesprog

EJEMPLO

While (true){ Switch (event){

case mousse_button_down: case mouse_click: case keypressed:

case Else: } }

Page 25: Lenguajesprog

Programación Modular

La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable.

Se presenta históricamente como una evolución de la programación estructurada para solucionar problemas de programación más grandes y complejos de lo que ésta puede resolver.

Page 26: Lenguajesprog

Programación Modular

Un módulo es cada una de las partes de un programa que resuelve uno de los

subproblemas en que se divide el problema complejo original. Cada uno de estos

módulos tiene una tarea bien definida y algunos necesitan de otros para poder

operar. En caso de que un módulo necesite de otro, puede comunicarse con éste

mediante una interfaz de comunicación que también debe estar bien definida.

Page 27: Lenguajesprog

EJEMPLO

Private Sub mnuFileExit_Click ()Llame ExitProgram

End Sub

Page 28: Lenguajesprog

Programación Orientada a Aspectos

La Programación Orientada a Aspectos (POA) es un paradigma de programación relativamente reciente cuya intención es permitir una adecuada modularización de las aplicaciones y posibilitar una mejor separación de conceptos. Gracias a la POA se pueden encapsular los diferentes conceptos que componen una aplicación en entidades bien definidas, eliminando las dependencias entre cada uno de los módulos. De esta forma se consigue razonar mejor sobre los conceptos, se elimina la dispersión del código y las implementaciones resultan más comprensibles, adaptables y reusables. Varias tecnologías con nombres diferentes se encaminan a la consecución de los mismos objetivos y así, el término POA es usado para referirse a varias tecnologías relacionadas como los métodos adaptivos, los filtros de composición, la programación orientada a sujetos o la separación multidimensional de competencias.

Page 29: Lenguajesprog

Lenguajes

#JAVA#PHP#PYTHON#JAVA

Page 30: Lenguajesprog

EJEMPLO

>>> from Aspyct.aop import *>>> class MyAspect(Aspect):

... def atCall(self, cd):... print("atCall occurs now")

... >>> @MyAspect()

... def test():... print("Hello World!")

... >>> test()

atCall occurs nowHello World!

Page 31: Lenguajesprog

Programación O. O.

La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe variedad de lenguajes de programación que soportan la orientación a objetos.

Page 32: Lenguajesprog

Lenguajes

ABAPABL Lenguaje de programación de OpenEdge de Progress Software

ActionScriptActionScript 3

AdaC++C#

ClarionClipper (lenguaje de programación) (Versión 5.x con librería de objetos

Class(y))D

Object Pascal (Delphi)GambasHarbour

EiffelJava

JavaScript (la herencia se realiza por medio de la programación basada en prototipos)

Lexico (en castellano)Objective-C

Ocaml

Page 33: Lenguajesprog

Lenguajes

OzR

Perl (soporta herencia múltiple. La resolución se realiza en preorden, pero puede modificarse al algoritmo linearization C3 por medio del módulo

Class::C3 en CPAN)PHP (a partir de su versión 5)

PowerBuilderPythonRuby

Smalltalk (Proyecto investigativo. Influenció a Java.)Magik (SmallWorld)

ValaVB.NET

Visual FoxPro (en su versión 6)Visual Basic 6.0Visual Objects

XBase++Lenguaje DRP

Lenguaje de programación Scala

Page 34: Lenguajesprog

EJEMPLO

>>> cadena = "abc" # Una cadena es un objeto de "str"

>>> cadena.upper() # Al ser un objeto, posee sus propios métodos

'ABC'>>> lista = [True, 3.1415] # Una lista es un objeto de

"list">>> lista.append(42L) # Una lista también (al igual

que todo) es un objeto, y también posee sus propios métodos

>>> lista[True, 3.1415, 42L]