TEMARIO
1.1. Estilos de programación.
1.2. Evaluación de expresiones.
1.3. Definición de funciones.
1.4. Disciplina de tipos.
1.5. Tipos de datos
1.1 ESTILOS DE PROGRAMACIÓN
Estilo de programación
(también llamado estándares de código o convención de código) es un término que
describe convenciones para escribir código fuente en ciertos lenguajes de
programación.
El estilo de programación es
frecuentemente dependiente del lenguaje de programación que se haya elegido
para escribir. Por ejemplo el estilo del lenguaje de programación C variará con
respecto al del lenguaje BASIC.
Estilo K&R es el más
utilizado en el lenguaje C y PHP, el estilo fue llamado de esta forma porque
fue usado por Kernighan y Ritchies en su libro The C Programming Lenguage.
Estilo Allman fue definido
por Eric Allman, se trata de crear una nueva línea para las llaves, e
identificar el código debajo de ellas.
Estilo BSD KNF también
conocido como estilo Kernel Normal From, es la manera más usada para el código
de la distribución del software del sistema operativo de Berkeley.
Estilo Whitesmiths también
llamado estilo wishart, se coloca las llaves asociadas con la instrucciones de
control.
1.2 EVALUACIÓN DE EXPRESIONES
Una
expresión es una combinación de operandos y operadores. La evaluación de una
expresión consiste en reducirla, esto es, realizar todas las operaciones
contenidas en ella para obtener un valor final.
Para evaluar una expresión es necesario conocer la prioridad de los
operadores, con lo cual se puede determinar cuál operación se va a realizar
antes que las demás.
Una expresión entre paréntesis se evalúa primero que las demás. Si hay paréntesis
se evalúa primero la expresión contenida en los paréntesis más internos....
1.3 DEFINICIÓN DE FUNCIONES
Las
funciones se crearon para evitar tener que repetir constantemente fragmentos de
código. Una función podría considerarse como una variable que encierra código
dentro de sí. Por lo tanto cuando accedemos a dicha variable (la función) en
realidad lo que estamos es diciendo al programa que ejecute un determinado
código predefinido anteriormente.
Todos
los lenguajes de programación tienen algunos elementos de formación primitivos
para la descripción de los datos y de los procesos o transformaciones aplicadas
a estos datos (tal como la suma de dos números o la selección de un elemento
que forma parte de una colección). Estos elementos primitivos son definidos por
reglas sintácticas y semánticas que describen su estructura y significado
respectivamente.
DISCIPLINA:
Es la coordinación de actitudes con las cuales se instruye para desarrollar habilidades,
o para seguir un determinado código de conducta u "orden". Un ejemplo
es la enseñanza de una materia, ciencia o técnica, especialmente la que se
enseña en un centro (Docente – asignatura).
En los lenguajes de programación
con disciplina de tipos, cada tipo representa una colección de valores (datos)
similares. Una función cuyo tipo sea A1
-> ... An -> espera n parámetros con tipos A1, ... An y devuelve un
resultado de tipo R. El conocer los
tipos de las funciones ayuda a documentar los programas y a evitar errores en
tiempo de ejecución.
Disciplina estática de tipos: Los
programas bien tipados se pueden reconocer en tiempo de compilación, un
programa bien tipado se puede utilizar sin efectuar comprobaciones de tipo en
tiempo de ejecución. Estando garantizado que no se producirán errores de tipo
durante el cómputo.
1.5 TIPOS DE DATOS
1.5 TIPOS DE DATOS
Tipos de Datos En lenguajes de
programación un tipo de dato es un atributo de una parte de los datos que indica
al ordenador (y/o al programador) algo sobre la clase de datos sobre los que se
va a procesar.
Los Tipos de Datos En un sentido
amplio, un tipo de datos define un conjunto de valores y las operaciones sobre
estos valores. Casi todos los lenguajes de programación explícitamente incluyen
la notación del tipo de datos, aunque lenguajes diferentes pueden usar
terminología diferente. La mayor parte de los lenguajes de programación
permiten al programador definir tipos de datos adicionales, normalmente combinando
múltiples elementos de otros tipos y definiendo las operaciones del nuevo tipo
de dato. Por ejemplo, un programador puede crear un nuevo tipo de dato llamado
"Persona" que especifica que el dato interpretado como Persona
incluirá un nombre y una fecha de nacimiento.
DIFERENTES TIPOS DE PARADIGMAS DE PROGRAMACIÓN
Un paradigma de programación es una
propuesta tecnológica que es adoptada por una comunidad de programadores cuyo
núcleo central es incuestionable en cuanto a que unívocamente trata de resolver
uno o varios problemas claramente delimitados. La resolución de estos problemas
debe suponer consecuentemente un avance significativo en al menos un parámetro
que afecte a la ingeniería de software. Tiene una estrecha relación con la
formalización de determinados lenguajes en su momento de definición. Un
paradigma de programación está delimitado en el tiempo en cuanto a aceptación y
uso ya que nuevos paradigmas aportan nuevas o mejores soluciones que la
sustituyen parcial o totalmente.
Por ejemplo:
Probablemente el paradigma de
programación que actualmente es el más usado a todos los niveles es la orientación
a objeto. El núcleo central de este paradigma es la unión de datos y
procesamiento en una entidad llamada "objeto", relacionable a su vez
con otras entidades "objeto".
Tradicionalmente datos y
procesamiento se han separado en áreas diferente del diseño y la implementación
de software. Esto provocó que grandes desarrollos tuvieran problemas de
fiabilidad, mantenimiento, adaptación a los cambios y escalabilidad. Con la orientación
a objetos y características como el encapsulado, polimorfismo o la herencia se
permitió un avance significativo en el desarrollo de software a cualquier
escala de producción.
La orientación a objeto parece estar
ligado en sus orígenes con lenguajes como Lisp y Simula aunque el primero que
acuño el título de programación orientada a objetos fue Smaltalk
Tipos de paradigmas
de programación
Programación
Imperativa
La programación imperativa, en contraposición a la programación
declarativa 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.
Programación lógica
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
declarativa son: programación funcional, programación basada en restricciones,
programas DSL (de dominio específico) e híbridos. La programación lógica 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.
Programación
funcional
En ciencias de la computación, la
programación funcional es un paradigma de programación declarativa basado en la
utilización de funciones aritméticas que no maneja datos mutables o de estado.
Enfatiza la aplicación de funciones, en contraste con el estilo de programación
imperativa, que enfatiza los cambios de estado. La programación funcional tiene
sus raíces en el cálculo lambda, un sistema formal desarrollado en los 1930s
para investigar la definición de función, la aplicación de las funciones y la
recursión. Muchos lenguajes de programación funcionales pueden ser vistos como
elaboraciones del cálculo lambda.
Los lenguajes de programación
funcional, especialmente los que son puramente funcionales, han sido enfatizados
en el ambiente académico principalmente y no tanto en el desarrollo de software
comercial. Sin embargo, lenguajes de programación importantes tales como
Scheme, Erlang, Objective Caml y Haskel, han sido utilizados en aplicaciones
comerciales e industriales por muchas organizaciones. La programación funcional
también es utilizada en la industria a través de lenguajes de dominio
específico como R (estadística), Mathematica (matemáticas simbólicas), J y K
(análisis financiero), F# en Microsoft.NET y XSLT (XML). Lenguajes de uso
específico usados comúnmente como SQL y Lex/Yacc, utilizan algunos elementos de
programación funcional, especialmente al procesar valores mutables. Las hojas
de cálculo también pueden ser consideradas lenguajes de programación funcional.
La programación funcional también
puede ser desarrollada en lenguajes que no están diseñados específicamente para
la programación funcional. En el caso de Perl, por ejemplo, que es un lenguaje
de programación imperativo, existe un libro que describe cómo aplicar conceptos
de programación funcional. JavaScript, uno de los lenguajes más ampliamente
utilizados en la actualidad, también incorpora capacidades de programación
funcional.
Programación
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
(tan sólo se le indica a la computadora que es lo que se desea obtener o que es
lo que se está buscando). No existen asignaciones destructivas, y las variables
son utilizadas con Transparencia referencial
Programación
estructurada
La 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).
Programación
dirigida por eventos
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.
El creador de un programa dirigido
por eventos debe definir los eventos que manejarán su programa y las acciones
que se realizarán al producirse cada uno de ellos, lo que se conoce como el
administrador de evento. Los eventos soportados estarán determinados por el
lenguaje de programación utilizado, por el sistema operativo e incluso por
eventos creados por el mismo programador.
En la programación dirigida por
eventos, al comenzar la ejecución del programa se llevarán a cabo las
inicializaciones y demás código inicial y a continuación el programa quedará
bloqueado hasta que se produzca algún evento. Cuando alguno de los eventos
esperados por el programa tenga lugar, el programa pasará a ejecutar el código
del correspondiente administrador de evento. Por ejemplo, si el evento consiste
en que el usuario ha hecho click en el botón de play de un reproductor de
películas, se ejecutará el código del administrador de evento, que será el que
haga que la película se muestre por pantalla.
Un ejemplo claro lo tenemos en los
sistemas de programación Léxico y Visual Basic, en los que a cada elemento del
programa (objetos, controles, etcétera) se le asignan una serie de eventos que
generará dicho elemento, como la pulsación de un botón del ratón sobre él o el
redibujado del control.
La programación dirigida por eventos
es la base de lo que llamamos interfaz de usuario, aunque puede emplearse para
desarrollar interfaces entre componentes de Software como módulos del núcleo
también.
En los primeros tiempos de la
computación, los programas eran secuenciales, también llamados Batch. Un
programa secuencial arranca, lee parámetros de entrada, procesa estos
parámetros, y produce un resultado, todo de manera lineal y sin intervención
del usuario mientras se ejecuta.
Con la aparición y popularización de
los pc, el software empezó a ser demandado para usos alejados de los clásicos
académicos y empresariales para los cuales era necesitado hasta entonces, y
quedó patente que el paradigma clásico de programación no podía responder a las
nuevas necesidades de interacción con el usuario que surgieron a raíz de este
hecho...
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.
Al aplicar la programación modular, un problema complejo debe ser
dividido en varios subproblemas más simples, y estos a su vez en otros
subproblemas más simples. Esto debe hacerse hasta obtener subproblemas lo
suficientemente simples como para poder ser resueltos fácilmente con algún
lenguaje de programación. Ésta técnica se llama refinamiento sucesivo, divide y
vencerás ó análisis descendente (Top-Down).
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.
Si
bien un módulo puede entenderse como una parte de un programa en cualquiera de
sus formas y variados contextos, en la práctica es común representarlos con
procedimientos y funciones. Adicionalmente, también pueden considerarse módulos
las librerías que pueden incluirse en un programa o, en programación orientada
a objetos, la implementación de un tipo de dato abstracto.
Programación
orientada a objetos
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.
Programación con restricciones
La Programación con restricciones es
un paradigma de la programación en informática, donde las relaciones entre las
variables son expresadas en términos de restricciones (ecuaciones). Actualmente
es usada como una tecnología de software para la descripción y resolución de
problemas combinatorios particularmente difíciles, especialmente en las áreas
de planificación y programación de tareas (calendarización).
Este paradigma representa uno de los
desarrollos más fascinantes en los lenguajes de programación desde 1990 y no es
sorprendente que recientemente haya sido identificada por la ACM (Asociación de
Maquinaria Computacional) como una dirección estratégica en la investigación en
computación.
Se trata de un paradigma de
programación basado en la especificación de un conjunto de restricciones, las
cuales deben ser satisfechas por cualquier solución del problema planteado, en
lugar de especificar los pasos para obtener dicha solución.
La programación con restricciones se
relaciona mucho con la programación lógica y con la investigación operativa. De
hecho cualquier programa lógico puede ser traducido en un programa con
restricciones y viceversa. Muchas veces los programas lógicos son traducidos a
programas con restricciones debido a que la solución es más eficiente que su
contraparte.
La diferencia entre ambos radica
principalmente en sus estilos y enfoques en el modelado del mundo. Para ciertos
problemas es más natural (y por ende más simple) escribirlos como programas
lógicos, mientras que en otros es más natural escribirlos como programas con
restricciones.
El enfoque de la programación con
restricciones se basa principalmente en buscar un estado en el cual una gran
cantidad de restricciones sean satisfechas simultáneamente. Un problema se define
típicamente como un estado de la realidad en el cual existe un número de
variables con valor desconocido. Un programa basado en restricciones busca
dichos valores para todas las variables.
Algunos dominios de aplicación de
este paradigma son:
Dominios
booleanos, donde solo existen restricciones del tipo verdadero/falso.
Dominios
en variables enteras y racionales.
Dominios
lineales, donde sólo se describen y analizan funciones lineales.
Dominios
finitos, donde las restricciones son definidas en conjuntos finitos.
Dominios
mixtos, los cuales involucran dos o más de los anteriores.
Programación
orientada a componentes
La programación orientada a
componentes (que también es llamada basada en componentes) es una rama de la
ingeniería del software, con énfasis en la descomposición de sistemas ya
conformados en componentes funcionales o lógicos con interfaces bien definidas
usadas para la comunicación entre componentes.
Se considera que el nivel de
abstracción de los componentes es más alto que el de los objetos y por lo tanto
no comparten un estado y se comunican intercambiando mensajes que contienen
datos.
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 incumbencias. 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 adaptativos, los filtros de
composición, la programación orientada a sujetos o la separación
multidimensional de competencias.
TAREA: MAPA CONCEPTUAL
gracias :)
ResponderBorrarX2
BorrarGRACIAS ATENTAMENTE $CANDE$
Borrar:D
ResponderBorrarHarrah's Resort Southern California opens its doors for business
ResponderBorrarThe Harrah's Resort Southern California 구미 출장마사지 (formerly Harrah's Rincon) opened its doors 구리 출장마사지 in 의정부 출장샵 June 2020, just 포항 출장마사지 two months after 순천 출장안마 the original