Paradigmas y Lenguajes de Programacion

Control de flujo

Tipos de estructuras

Estructura secuencial

Permite efectuar las actividades de forma consecutiva, sin excluir ninguna actividad y agregar bifurcaciones. Cada estructura dispone de una entrada y salida.

Estructura alternativa

Establece que la existencia y cumplimiento de una condición implica la separación de una secuencia junto con la ejecución de una accion establecida. Es la manera que el lenguaje de programación emplea para provocar que el flujo de la ejecución progrese.

Estructuras Alternativas mas utilizadas

it-else

La condicion Else es opcional y permite alojar diversos ifs.

swinch

Efectua diversas operaciones fundamentándose en el valor establecido por la unica variable. El valor de cada expresión se examina con cada uno de los literales pertenecientes a la sentencia .

Estructura repetitiva

Son aquellas en las cuales las acciones admiten ser ejecutadas mediante un numero determinado o indetermiando de veces que se subordinan de un valor predefinido o el cumplimiento de una condicion.

Las estructuras Repetitivas son:

While

Reincide el mismo bloque de código hasta que se concluya una determinada condición. Cada ciclo se compone de dos partes, Cuerpo y Condición.

do-While

Similar al proceso de que efectúa while con la diferencia que en siempre se efectuara el cuerpo de un ciclo, en alguna ocasion.

For

Ejecuta los mismo procesos de While y do-While pero establece que las iteraciones pueden ser aquellas expresiones matematicas validas y su sintaxis es de forma compacta.

Si aquellas estructuras iterativas no son empleadas en ningún proceso, se convierte en un buble infinito.

Establece que cada programa debe copiarse empleando solamentre tres estructuras de control muy importantes.

Secuencial

Efectua una secuencia enseguida de otra, asi sucecivamente.

Repetitiva o imperativa

Iterar un bloque de secuencias hasta que se plantee una determinada condicion.

Alternativa o condicional

Se valora un aexpresion y segun el resultado se escoge la proxima sentencia a ejecutar.

Tipos de datos Compuestos

Podemos encontrar los Arrays

Para acceder a un Array determinado se accede por medio de un indice. Ademas los Arrays pueden contener varias dimensiones y constan de posiciones continuas.

Representan un conjunto de variables del la misma clase que se citan por un nombre en comun. Los Arrays solamente admiten almacenar un tipo concreto de datos.

Las estructuras consisten en serie de variables que se relacionan bajo un único nombre y a diferencia del Array permite efectuar combinaciones de variables de distintas clases.

Clases de Arrays

Arrays Unidimensionales y Bidimensionales

Representan un conjunto de variables pertenecientes a un mismo tipo, los cuales se citan por medio de un nombre en comun.

El formato que se utiliza para representar un Array bidimensional es:

Tipo nombre_array[Tamaño 1],[Tamaño 2],...

Se componen de varias dimensiones, la dirección inferior pertenece al primer elemento y la superior al ultimo elemento.

Los Arrays Unidemiensionales se puede declarar empleando el siguiente formato.

Tipo nombre_arrray[Tamaño]

Arrays Multidimensionales

Se emplean para el almacenamiento de tablas de valores que dispongan de diversas filas y columnas, asi mismo permite referenciar un dato, indicando su posición correcta.

Los Arrays Multidimensionales son representados por medio del siguiente formato:

Tipo nombre_array[fila][columna]

Estructuras

La estructuras forman una plantilla, las cuales admite ser empleadas para crear nuevas variables de las mismas, dichas variables también son llamadas elementos estructurados.

Caracterisitcas

Consisten en un conjunto de variables que se acojen bajo el mismo nombre, brindando un medio eficaz, para agrupar la informacion relacionada.

Permiten ahorra memoria, y evitan declara las variables que efectuan las mismasn funciones.

Las varibles que contituyen una estructura, se denominan mienbros de las estructuras y se relacionan entre si.

Funciones

Resferente a la programacion una funcion es el concepto para explicar una secuencia de ordenes que efectuan una actividad especifica.

Caracteristicas

Consisten en un valor que la función reintegrara una vez concluya su ejecucion.

Aporta un nombre unico con el cual se reconoce y se diferencia a la funcion.

Radica en una base de datos brindados que la función percibe para ejecutar una determinada actividad.

Se compone de un conjunto de ordenes o sentencias que debe realizar una funcion.

Tipos de Funciones

Funciones Internas

Permiten efectuar las actividades especificas de un lenguaje, como:

Caracteres y cadenas.

Operaciones matematicas.

Funciones definidas por los usuarios

El usuario determina el prototipo de la funcion, por ejemplo:

Efectuar una llamada y lograr desarrollar su propia funcion.

Sintaxis del prototipo

Sintaxis de la llamada.

Sintaxis del desarrollo.

Recursividad

Es el proceso empleado en informatica que consiste en que una funcion se llame a si misma, perfeccionando los errores y lanzado sugerencias al usuario.

Las funciones recusivas pueden empleasen para instituir versiones de algoritmos mas sencillos y eficaces.

Permite ahorrar la digitalizacion de código y a su vez generar un extenso uso de memoria.

Ambitos de las Variables

Variables locales

Las variables globales son aquellas que permiten ser ejecutadas desde diferentes fragmentos del codigo fuente. Sostienen sus valores durante el proceso de ejecución y se deben declarar de forma externa en todas las funciones.

Variables locales

Una variable es local cuando se ejecuta dentro de una funcion. Ademas solo pueden ser empleadas por sentencias que se encuentran dentro de una función que ha sido declarada.

Paradigmas de programacion

Clases de Paradigmas

Paradigma imperativo o procedimientos

Representa una forma de digitalizar programas continuos, asi mismo brindan las indicaciones pertinentes de las actividades que debe efectuar un programa.

Indicaciones de una actividad

1. El programa dispone de un diseño modular

2.Los módulos son creados de forma que permiten que un problema complejo se clasifique en problemas mas sencillos.

3.Cada modulo se codifica empleando, la secuencia, selección y repeticion.

El paradigma Imperativo surgio en los años 50, cuando los desarrolladores identificaron las variables junto con los comandos que formaban una adstraccion de acceso a la memoria y actualizacion de las instrucciones de maquina.

Características

Describe el proceso para realizar el calculo mas no lo justifica.

La sentencia principal representa la asignación. Ademas registra la definicion de procedimientos.

Las variables consisten en celdas de memorias que contiene datos y pueden ser modificadas.

Las variables también representan el estado del programa.

Establecen la definición de tipos de datos y también indica los pasos de ejcucion de un proceso.

Realiza la revision de diversas clases en el proceso de ejecución y enseña los estados de cambio de las variables.

Lenguajes asociados al paradigma imperativo

COBOL, Visual Basic.

PASCAL, ADA.

Java, C++, Python

Paradigma funcional

Caracteristicas

Eta fundamentado en los modelos de computo denominado calculo lamda junto con la logico combinatoria.

Sus repesctiva funciones son componentes que pertenecen al primer orden.

Evalua la reduccion funcional utilizando tecnicas como:

Recursividad

CPS

Parametros acumuladores

Involucra la familia de lenguajes de programacion Lisp de clase multiplaradigma.

Podemos encontrar la familia ML, la cual incorpora:

Correspondencia de determinado patrones

Incluye la tranparencia referencial

Utiliza un sistema preciso de clases.

Evalua la estructura de los datos infinitos.

Birnda valores sin efectos laterales, no dispone de la asignacion, y emplea la programacion declarativa.

La computacion se efectua por medio de la expresion de valores, ademas se pueden conceptualizar sus funciones.

Sus funciones matematicas representan una coneccion entre el dominio y e rango.

Dominio

Los dominios son valorados cuando se introducen en la funcion y es empleado solamente para solicitar el resultado final.

Las funciones se añaden a los elementos del dominio que a su vez reintegra un componente del rango.

Rango

Son aquellos valores arrojados por un sistema.

Paradigma declarativo

El paradima declarativo se fundamenta en aquellos programas que implementa una relación por anticipado a una correspondencia . Pues sus relaciones son mas enfocadas de forma general que sus correspondencias.

El paradigma declarativo es probablemente de alto nivel que la programación funcional o imperativa.

Principales variables

Paradigma funcional.

Paradigma lojico.

Programacion reactiva.

Lenguajes descriptivos.

Caracteristicas

Explica que es lo que se debe calcular sin justificar su proceso.

No dispone de un orden de evaluacion establecido.

La variables representan los nombres asociados a definiciones y cuando son solitadas se vuelven inmutables.

No contiene sentencias de asignacion.

Contiene mayor grado de simplicidad entre las variables que coforman el paradigma.

Paradigma logico

Características

La ejecucion se compone de las resoluciones de un problema de decisión, asi mismo los resultados son obtenidos mediante la solicitud de las variables independientes.

Se fundamenta en la logica de predicados de primer orden.

Sus programas están compuestos por hechos, predicados y relaciones.

Permite definir la reglas o parámetros, ademas establece la unificación como elemento de computación.

Su evaluacion estan fundamentada en la resolución SDL: Unificación+backtraking.

La prograamcion logica con restricciones favorece la resolución ecuaciones lineales y argumentar sus hipótesis.

Es un tipo de paradigmas de prograamcion, que se fundamenta entorno al concepto del predicacio y la relacion de los elementos.

La progrmacion Logica esta introducida en el paradigma declarativo.

Campos de aplicacion.

Sistemas de expertos

Consiste en un sistema de información que simula aquellas recomendaciones brindadas por un experto sobre un tema de conocimiento.

Demostracion automatica

Un programa determinado elabora nuevos teoremas acerca de una teoría establecida.

Reconocimiento del lenguaje natural

Se compone de progrmacas con la capacidad de comprender la informacion recopilada en una expresion linguistica humana.

Lenguajes asociados al paradigma Logico

Lenguaje Prolog.

Programacion en Mercury.

Paradigma orientado a objetos

Se fundamente en los conceptos de objetos y su respetiva clasificacion. Un objeto conssite en una variable que agrupa oeraciones que se adaptan o estan dirigidas a los objetos.

Los odejtos se deben representar como valores de la clase base. De esta forma un aoperacion puede elegir un objeto como argumento y arrojar un obgeto como resultado.

La Herencia permite planificar los tipos de objetos en un subclase y las operaciones brindadas se pueden añadir a los objetos de la subclase.

Como

Determinar las clases y herencias.

Los objetos de adstraccion de datos y procedimientos

Chequeo de clases en el proceso de ejecución.

Los obtetos pueden empleasen en diversos momentos para construir multiples objetos los cuales contentan propiedades similares.

Una clases se define como un grupo de objetos los cuales comparten operaciones identicas.

Paradigma reactiva

Características

Esta fundamentodo en la teoria de grafos.

Un programa esta compuesto por la especificacion de flujo de datos entre las operaciones.

Las disitnas hojas de calculo estan basadas en este modelo.

Las variables se encuentran vinculadas a las operaciones que brindan sus valores. Un cambio de una variable se propaga por todas las operaciones del sistema.

La programacion reactiva se puede determinar como una forma de reducir las interfaces de usuario iterativas.

La programación Reactiva fue aplicada inicialmente por Glenn Wadden en el año 1986.

Es un paradigma de progrmacion declarativa que gestiona los flujos de datos junto con la difusion del cambio. Permite expresar flujos de datos estaticos o dinamicos.

Lenguajes que utilizan el paradima reactiva

Simulink, OZ, Clojure.

Lenguajes de programación con sus respectivo paradigmas

Lenguaje Scala

Paradigmo funcional

Paradigma orientado a odjetos

Paradigma concurrente

Paradigma imperativo

Lenguaje Perl

Paradigma imperativo

Paradigma orientado a odjetos

Paradigma funcional

Java Scrit

Paradigma funcional

Paradigma orientado a objetos

Paradigma funcional

Erlang

Paradigma funcional

Paradigma orientado a objeto

Python

Paradigma imperativo

Paradigma reflexivo

Paradigma orientado a objetos

Paradigma funcional

Lenguaje C++

Paradigma imperativo

Paradigma orientado a objetos

Paradigma funcional

Paradigma generico

Lenguaje C#

Paradigma imperativo

Paradigma orientado a objetos

Paradigma generico

Paradigma funcional

Prolog

Paradigma logico

Paradigma declarativo

Lisp

Paradigma orientado a objetos

Paradigma funcional

Paradigma declarativo

Los paradigmas de programacion representan propuestas tecnológicas establecidas por la comunidad de desarrolladores de software, los cuales se centran en resolver los problemas establecidos.

Un paradigma de programacion señala el metodo adecuado para efectuar computos y la forma para estructurar y organizar aquellas actividades que debe ejecutar un programa. Cada modelo dispone de sus propios elementos y parámetros de construcción.

Los lenguajes de programacion

Principales lenguajes de programacion

Ensamblador

Pone a disposición la adstraccion del microprocesador de una computadora su cambio al lenguaje maquina es muy sencillo y agradable.

Delphi

Es un entorno de desarollo de software dirigido a la programacion que se enfoca en la programación visual. Admite efectuar archivos para mutliples plataofrmas como Linux, Windows entre otras.

Delphi es ampliamente utilizado para crear aplicaciones visuales y de bases de datos cliente-servidor, también es usado para elaborar proyectos de consola gracias a su herramientas de propósito multiple.

FORTRAN

Creado en los años 50, su enfoque se centra en lel desarrollo de aplicaciones científicas y análisis numéricos.

Lenguaje C++

Diseñado por Bjarne Stroustrup, es un lenguaje que agrupa dos paradigmas de la programación, como: El paradigma estructurado y paradigma orientado a objetos.

LISP

Es una familia de lenguajes de programación que están fundamentados en el calculo lamda, que consiste en un patrón universal de computación.

Su nucleo se clasifica en:

La astraccion de funciones

Origina expresiones por medio de la introduccion de variables .

La aplicacion de la funcion

Empleada para avaluar expresiones, asignando nombres a determinados valores.

SQL......

Subtopic

Perl

Lenguaje empleado para la extracción de informes. Es un lenguaje de programación desarrollado por Larry wall en el año 1987. Perl tiene cierta similitud con el lenguaje C en algunas funciones.

Prolog

Es un lenguaje de programación logico e interpretado empleado constantemente en el campo de la inteligencia artificial.

Se creo como un proyecto cuyo objetivo era el tratamiento algorítmico de lenguajes naturales.

Visual basic

Es un lenguaje de programación dirigido por eventos, instituido por Alacooper; que consiste en entorno desarrollado integrado que incorpora un editor de textos para la modificación del codigo fuente, un depurador, entre otros.

Desventajas

Dsipone de un soporte limitado de programacion orientado a odjetos.

Sus dependencias son totalmente complejas y sus entradas de registros son muy inconsistentes.

Su capacidad para emplear controles en un determinado formulario es muy limitado a diferencia de otro tipo de herraminetas.

Ventajas

Incorpora el diseño y su implementacion de los formularios de Windows.

Brinda la posibilidad de agregar soporte para la respectiva ejecucion de scrips, Jscripts de las aplicaciones.

Brinda un entorno de programacion para efectuar prototipos de forma sencilla y practica.

Dispone de amplias librerias DLL, y complementos Active x pertenecientes a otros lenguajes.

Python

Instituido por Guido van en el año 1990. Python consiste en un proyecto de código abierto, el cual es administrado por Python System.

Java

Es un lenguaje de programación orientado a objetos, las aplicaciones que utilizan Java estan copiladas en un bytecode.

Java se emplea actualmente para crear aplicaciones y distintos procesos en diversidad, de dispositivos permitiendo efectuar un programa en diversos sistemas operativos.

Su ambito de aplicacion es extenso que se puede emplear en dispositivos mobiles o incluso en electrodomesticos.

Suelen organizarse de acuerdo a algunos parametros dividiendosen en:

Conforme a su campo de aplicacion

Aplicaciones cientificas

Este tipos de aplicaciones estan compuestos por operaciones numéricas o arreglos bidimensionales de números propios de algoritmos matematicos.

Programas informaticos que utilizan Fortran

Lenguaje Pascal

Aplicaciones en procesamiento de datos

Están compuestas por operaciones mantenimiento, consultas y base de datos. Abarca programas informáticos de gestión empresarial, contabilidad, facturación y programas de nominas.

Lenguaje SQL

Programas escritos en COBOL

Aplicaciones de tratamientos de textos

Son aplicaciones incorporadas al uso de textos que emplean el lenguaje natural.

Lenguaje de programacion C.

Aplicacion de programacion de sistemas

Este apartado agrupa la programación de software de interfaz referente al usuario y el hardware, como los modulos SO. Los programas efectúan diversas actividades entre las que se encuentran la tranferencia de datos entre la memoria RAM y los dispositivos de almacenamiento.

Aceleracion Grafica PNG

Bibliotecas como OpenGL

Velocidad disco duro Hdparm

Tipos de software de sistemas

Controladores de dispositivos

Linea de comandos

Herramientas de programacion

Compiladores

Enlazadores

Hipervisores

Aplicaciones en inteligencia artifical

En esta seccion se pueden encontrar aplicaciones de sistemas de expertos, juegos, vision artifical, robotica incluso plataformas de juegos.

Programas informáticos escritos en LISP.

Lenguaje PROLOG.

Paradigma de prograamcion que posee cada uno

Nivel de adstraccion

Lenguajes Maquina

Son instrucciones en cadenas binarias (0,1) y están escritos en lenguajes comprensibles por la maquina o computador. El lenguaje maquina otorga la posibilidad de cargar un programa sin recurrir a la traducción.

Lenguajes de bajo nivel

Representan aquellos lenguajes de programacion que se aproximan al funcionamiento de una computadora. Es ampliamente utilizado para programar microprocesadores haciendo uso del lenguaje ensamblador correspondiente.

Lenguajes de medio nivel

Son aquellos lenguajes mas sencillos y faciles de intepresar para los humanos, como puede ser el lenguaje de programacion C.

Lenguajes de alto nivel

Estan formados por componentes de lenguajes naturales, haciendo el proceso mas sencillo y ssitematico.

Lengujes de alto nivel son:

Pascal

Visual basic

Capacidad de traduccion

Interpretados

Representa un programa el cual analiza, examina y ejecuta el código fuente, asi mismo escoge el código para traducirlo y posteriormente ejecutarlo continuamente hasta llegar a las ultima instrucción de un determinado programa.

Lenguaje interpretado PHP

Lenguaje Python

Lenguaje interpretado Perl

Funcionamiento de un interprete

Programa fuente

Interprete

Codigo objeto

Compilados

Consiste en un conjunto de programas que traduce un programa escrito en su respectivo codigo fuente, con el proposito de generar un programa cuyo codigo sea de objeto. El proceso de traduccion es denominado tambien como copilacion.

Codigo objeto

Al codigo objeto se le aplican sus respectivas librerías de un programa denominado linker, para obtener el código ejecutable.

Proceso de copilacion

Programacion fuente.

Compilador

Codigo objeto

Libreria

Codigo objeto

Pasos que utiliza la compilacion de un programa

Instituir el codigo fuente.

Compilacion del programa

Enlace del programacio incluyendo las funciones solicitadas de la biblioteca.

Lenguajes que emplean un compilador

Lenguaje C++

Lenguaje de programacion Visual basic

Los paradigmas funcionales son aquellos que estan vinculados a los distintos modelos de computo. Asi mismo estan asociados a un determinado estilo de programación. Los lenguajes de programacion permiten interpretar de forma incompleta diversos paradigmas.