Facultad de Ciencias Matemáticas-UNMSM
Seminario – Taller Paradigmas y Lenguajes de Programación 20 y 22 Febrero del 2008
Expositor: Ulises ROMAN CONCHA Docente del Dpto. Ciencias de la Computació Computación,
UNMSM
Contenido
1. Conceptos Básicos 2. Representación de los datos en la PC 3. Lenguajes de Programación 4.. Paradigmas de Programación 5. Método General de Programación 6. Estructuras de Control y de Datos 7. Aplicaciones usando C++ y Java 8. Referencias
1. Conceptos Básicos (1)
Computer system = hardware + software Hardware = componentes físicos ( CPU, Memorias, Otros) Software = instrucciones que indican al hardware qué debe hacer (2 tipos: Sistemas y Aplicación)
2. Representación de los datos en la Computadora (1)
El único código que entiende la CPU son los bits. Los bits son representados en circuitos electrónicos que pueden estar en estado “on” (1) u “off” (0)
Las instrucciones se mandan a la CPU en forma de bytes, que son palabras de 8 bits
1 10 0 0 0 1 0 1 11 1 1 1 0 0 1 0
1 byte = 8 bits 1 kilobyte = 1 024 bytes 1 megabyte = 1 024 kilobytes = 1 048 576 bytes 1 Gigabyte = ? 1 Terabyte = ?
2. Representación de los datos en la Computadora (2)
Base 10: Dígitos = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 1111 = 1*103 + 1*102 + 1*101 + 1*100
Base 2: Dígitos = {0, 1} 1111 = 1*23 + 1*22 + 1*21 + 1*20 = 8 + 4 + 2 + 1 = 15
¿Cuántos valores puede representar un byte? 1 byte = 8 bits (Ej: 01100101) Cada bit puede representar 2 valores (0 y 1) Un byte puede representar 28 = 256 valores
2. Representación de la imagen (3)
00000000 00110110 00100010 00100010 00110110 00000000 00110110 00000000
• División de la imagen en una matriz de pixels (unidad de la imagen) • Cada pixel asociado con un color
2. Representación del sonido (4)
Discretización de la amplitud Un byte para cada valor
4 8 12 13 12 10 8…
3. Lenguajes de Programación (1)
3. Lenguajes de Programación (2)
•Programa =secuencia de instrucciones Un programa es un conjunto ordenado de instrucciones que se dan a la computadora indicándole las operaciones o tareas que se desea realizar. Todo lo relativo a los símbolos y reglas para construir o redactar con ellos un programa se denomina Lenguaje de Programación. CLASIFICACION: LenguaJes máquina (bajo nivel) : instrucciones directamente entendibles por la computadora (lenguaje binario-pensar en 0 y 1). Lenguajes ensamblador: Instrucciones compuestas de palabras cortas y números: Ejem LOAD, ADD, JMP Lenguajes de alto nivel: Utilizan instrucciones escritas con palabras similares a los lenguajes humanos C, C++, Visual Basic, Java, Pascal, Prolog, LISP,PHP,J#, Jbuilder, C#, Perl, Otros…
3. Lenguajes de Programación (3)
En resumen, los lenguajes de programación: 9 Constituyen sistemas de palabras-órdenes (lengua o idioma), ya establecidos.
9 Comprensibles tanto por el programador como por la máquina, 9 Permiten desarrollar programas(secuencia de instrucciones)
Ejemplos de instrucciones: Leer un dato del teclado Guardar un dato en la memoria Ejecutar una operación sobre dos datos Mostrar un dato en la pantalla etc.
3. Lenguajes de Programación-Ejemplo de un programa en Pascal (4) Program AreaCalculator; (* This program calculates the area of a circle. *) Const PI = 3.14159; Var radius, areaCircle : Real; Begin (* Get the radius. *) Write('Enter the radius of the circle: '); ReadLn(radius); (* Calculate the area. *) areaCircle := PI * radius * radius; (* Display the area. *) WriteLn('The area is ', areaCircle, ' square meters'); End.
3. Lenguajes de Programación-Ejemplo de un programa en C++ (5) // areaCalculator.cpp // This program calculates the area of a circle. #include
using namespace std; int main() { const double PI = 3.14159; double radius, areaCircle; // Get the radius. cout << "Enter the radius of the circle: "; cin >> radius; // Calculate the area. areaCircle = PI * radius * radius; // Display the area. cout << "The area is " << areaCircle << " square meters" << endl; return 0; }
3. Lenguajes de Programación-Ejemplo de un programa en Java (6)
public class HolaMundo { public static void main(String[] args) { System.out.println( “Hola Mundo“); } }
En JAVA hay distintos tipos de programas: Aplicaciones convencionales (stand-alone) Aplicaciones ejecutadas en unnavegador:applets Aplicaciones ejecutadas en un servidor Web:servlets
3. Lenguajes de Programación-Evolución (7)
Visual Studio 6.0 Visual Basic VBA Visual FoxPro VBScript C++ J++ JScript ASP
2000
2001
Visual Studio .NET 2003 .NET Framework 1.1 .NET Compact Framework J#
2002
Visual Studio .NET 2002 .NET Framework 1.0 Visual Basic .NET C#
2003
Visual Studio “Orcas” .NET Framework “Orcas” .NET Compact Framework “Orcas”
2004
2005
2006 y más
Visual Studio 2005 (“Whidbey”) .NET Framework 2.0 (“Whidbey”) .NET Compact Framework 2.0 (“Whidbey”)
3. Lenguajes de Programación-Ejemplo de un programa en Java (6)
public class HolaMundo { public static void main(String[] args) { System.out.println( “Hola Mundo“); } }
En JAVA hay distintos tipos de programas: Aplicaciones convencionales (stand-alone) Aplicaciones ejecutadas en unnavegador:applets Aplicaciones ejecutadas en un servidor Web:servlets
4. Paradigmas de Programación (1) 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. También hay situaciones donde un paradigma resulta más apropiado que otro. Algunos ejemplos de paradigmas de programación: 1. El paradigma imperativo o por procedimientos es considerado el más común y está representado, por ejemplo, por el C 2. El paradigma funcional está representado por la familia de lenguajes LISP (en particular Scheme), ML o Haskell. noción abstracta de función, cálculo lambda, recursividad, listas 3. El paradigma lógico, Lógica simbólica y programación declarativa, un ejemplo es PROLOG. 4. El paradigma orientado a objetos. Un lenguaje completamente orientado a objetos es Smalltalk – TDAs, Reutilización, Clases,Objetos
4. Paradigmas de Programación (2) Algunos lenguajes imperativos ASP BASIC C C# C++ Fortran Java Perl PHP Algunos lenguajes funcionales Haskell Miranda Lisp Scheme Ocaml Standard ML ML Scala
4. Paradigmas de Programación (3) Algunos lenguajes lógicos Prolog Lisp
Algunos lenguajes Orientados a Objetos •ActionScript •Ada •C++ •C# •Clarion •Delphi •Eiffel •Java •Perl (soporta herencia múltiple) •PHP (en su versión 5) •PowerBuilder •Python •Ruby •Smalltalk •Turbo Pascal 7 •VB.NET •Visual FoxPro •XBase++
8. Referencias Bibliograficas
programacion funcional: haskell http://www.haskell.org/haskellwiki/Introduction#What_is_functional_progra mming.3F
Muchas Gracias….
Ulises ROMAN CONCHA Docente Asociado del Dpto. Ciencias de la Computación UNMSM [email protected] www.ulisesroman.blogspot.com