Programación

Términos

1. Proceso: Un proceso es un conjunto de actividades mutuamente relacionadas o que al interactuar juntas en los elementos de entrada y los convierten en resultados.
2. Entrada: Todo proceso (al menos, según es entendido por el entorno de la gestión de calidad), se caracteriza por estar formado por los siguientes elementos:
Todo proceso es un conjunto de tareas elementales necesarias para la obtención de un resultado. Cada proceso posee unos límites claros y conocidos (el primer y último paso del mismo), comenzando con una necesidad concreta de un cliente (que de nuevo, puede ser interno o externo), y finalizando una vez que la necesidad ha sido satisfecha.
Requerimientos del cliente: Lo que el cliente espera obtener al terminar la actividad. Los requerimientos de salida de un proceso condicionan los requerimientos de entrada del siguiente. Los requerimientos deben estar expresados de una manera objetiva, por ejemplo: “recubrimiento final de la capa de pintura: x micras”.
Entradas: Las entradas de un proceso responden a criterios de aceptación definidos, por ejemplo: la factura del suministrador con todos los datos necesarios. También puede haber alguna entrada con información proveniente de un proveedor interno, por ejemplo: una normativa de la administración, un procedimiento. Las entradas del proceso pueden ser tanto elementos físicos (por ejemplo materia prima, documentos, etc.), como elementos humanos (personal) o técnicos (información, etc.). En definitiva, son elementos que entran al proceso sin los cuales el proceso no podría llevarse a cabo. Para establecer la interrelación entre procesos se deben identificar los procesos anteriores (proveedores internos y externos) que dan lugar a la entrada de los procesos.
Propietarios: Son las personas que asumen la responsabilidad de llevar el proceso tal y como está definido y que controlan la estabilidad del mismo. El propietario del proceso supervisa los indicadores que demuestran que el proceso está bajo control y permiten establecer objetivos de mejora. Es preferible no usar nombres sino actividades, por ejemplo: Mecánico ajustador, Departamento de Compras, etc.
Indicadores: Crean un sistema de control medible del funcionamiento del proceso y del nivel de satisfacción del usuario (interno la mayoría de las veces). Por ejemplo: Temperatura de cocción, número de rechazos del producto fabricado, número de quejas por plazos de entrega excesivos…
Clientes: Son los que utilizan la salida del proceso. Pueden ser internos (otro u otros departamentos de la misma empresa) o externos (cliente final).

3. Salidas: Un output con la calidad exigida por el estándar del proceso: por ejemplo: el impreso diario con el registro de facturas recibidas, importe, vencimiento…; un material conforme a las especificaciones, etc. De forma similar, las salidas de un proceso pueden ser productos materiales, información, recursos humanos, servicios, etc. En general, son la entrada del proceso siguiente. Para establecer la interrelación entre procesos se deben identificar los procesos posteriores (clientes internos y externos) a los que se dirigen las salidas del proceso.
Recursos: Medios y requisitos necesarios para desarrollar el proceso siempre bien y a la primera. Por ejemplo, una persona con las calificaciones y nivel de experiencia necesarias para realizar un proceso de soldadura, hardware y software para procesar las facturas, un impreso e información sobre qué proceso y cómo (calidad) y cuando (tiempo) entregar el elemento de salida al siguiente eslabón del proceso administrativo, etc.

4. Algoritmo - programa:  SISTEMAS DE PROCESAMIENTO DE LA INFORMACIÓN:
Un ordenador es una máquina de procesamiento de información. Es una máquina porque tiene cables, chips,… procesa porque es capaz de procesar cosas, e información porque maneja conjuntos ordenados de datos).
Para procesar la información está el hardware (microprocesador, RAM,...), y el software (que sirve para manejar el hardware).
 5. CONCEPTO DE ALGORITMO:
El algoritmo trata de resolver problemas mediante programas.
Fases:
Análisis preliminar o evaluación del problema: Estudiar el problema en general y ver que parte nos interesa.
Definición o análisis del problema: Ver que es lo que entra y que es lo que sale, las posibles condiciones o restricciones...
Diseño del algoritmo: Diseñar la solución.
El programa: Codificación del algoritmo en un lenguaje de programación.
Ejecución del programa y las pruebas: Ver si el programa hace lo que queríamos.
¿Qué es un algoritmo?:
Es una fórmula para resolver un problema. Es un conjunto de acciones o secuencia de operaciones que ejecutadas en un determinado orden resuelven el problema. Existen  algoritmos, hay que coger el más efectivo.
Características:
Tiene que ser preciso.
Tiene que estar bien definido.
Tiene que ser finito.
La programación es adaptar el algoritmo al ordenador.
El algoritmo es independiente según donde lo implemente.
Estructura de un algoritmo La estructura de un algoritmo sirve para organizar a los elementos que aparecen en él. Todos los algoritmos tienen la misma estructura, la cual viene definida por tres secciones:
         Cabecera
         Declaraciones
         Cuerpo
Cabecera En la cabecera de un algoritmo se debe de indicar el nombre (identificador) asignado al mismo. La sintaxis es: “Algoritmo <nombre_del_algoritmo>”.

Ejemplo

 Si se quiere diseñar el algoritmo de un programa que calcule el are de una circunferencia por lo tanto el algoritmo debe llevar en la cabecera “algoritmo Area_de_una_circuferencia”

Declaraciones En esta sección se  declaran las constantes, los tipos de datos y las variables que se usan en un algoritmo. La sintaxis es la siguiente:
Constantes
         <declaración_de_constantes>
Tipos de datos
         <declaracion_de_tipos_de_datos>
Variables
         <declaración_de_de_variables>

Ejemplo
 Para resolver el problema planteado en el tema anterior, es necesario declarar una constante y dos variables
Constantes
         PI=3.1416
Variables
         Real área, radio

Cuerpo En el cuerpo se escriben todas las instrucciones del algoritmo la sintaxis es:
Inicio
         <Instrucción 1>
         …
         <Instrucción n>
Fin


Inicio y Fin  Son palabras reservadas que marcan el principio y el final de la sección de l cuerpo, que es donde esta el bloque de instrucciones principal del algoritmo.

Ejemplo

Inicio
         Escribir (“introduzca radio: “)
         Leer (radio)
         Área =PI*radio**2
Escribir (“El área de la circunferencia es:”, área)
Fin

Comentarios En los algorimtos es copnveniente escribir comentarios para explicar el diseño y/0 funcionamiento del mismo.
Ejemplo
/* Cabecera */
Algoritmo Area_de_una_circuferencia

6. Instrucción informática
Se denomina instrucción en informática al conjunto de datos insertados en una secuencia estructurada o específica que el procesador interpreta y ejecuta.
Los tipos de instrucción permitidos están definidos y determinados dentro de cada plataforma en el conjunto de instrucciones (en inglés ISA, instruction set architecture), que también determina los registros de origen y destino de la CPU, y en ocasiones un dato inmediato (aquellos que son especificados explícitamente en la instrucción).
Estas instrucciones del computador son las que determinan el funcionamiento de la CPU que las ejecuta. La CPU puede realizar una diversidad de funciones, que son el reflejo de la variedad de las instrucciones definidas para dicha CPU. El programador tiene un repertorio de instrucciones como medio para controlar la CPU.


7. Pseudocódigo :
En ciencias de la computación, y análisis numérico, el pseudocódigo (o falso lenguaje) es una descripción de alto nivel compacta e informal1 del principio operativo de un programa informático u otro algoritmo.
Utiliza las convenciones estructurales de un lenguaje de programación real,2 pero está diseñado para la lectura humana en lugar de la lectura mediante máquina, y con independencia de cualquier otro lenguaje de programación. Normalmente, el pseudocódigo omite detalles que no son esenciales para la comprensión humana del algoritmo, tales como declaraciones de variables, código específico del sistema y algunas subrutinas. El lenguaje de programación se complementa, donde sea conveniente, con descripciones detalladas en lenguaje natural, o con notación matemática compacta. Se utiliza pseudocódigo pues este es más fácil de entender para las personas que el código del lenguaje de programación convencional, ya que es una descripción eficiente y con un entorno independiente de los principios fundamentales de un algoritmo. Se utiliza comúnmente en los libros de texto y publicaciones científicas que se documentan varios algoritmos, y también en la planificación del desarrollo de programas informáticos, para esbozar la estructura del programa antes de realizar la efectiva codificación.
8. Dato:
Un dato es una representación simbólica (numérica, alfabética, algorítmica, espacial, etc.) de un atributo o variable cuantitativa o cualitativa. Los datos describen hechos empíricos, sucesos y entidades. Es un valor o referente que recibe el computador por diferentes medios, los datos representan la información que el programador manipula en la construcción de una solución o en el desarrollo de un algoritmo.
Los datos aisladamente pueden no contener información humanamente relevante. Sólo cuando un conjunto de datos se examina conjuntamente a la luz de un enfoque, hipótesis o teoría se puede apreciar la información contenida en dichos datos. Los datos pueden consistir en números, estadísticas o proposiciones descriptivas. Los datos convenientemente agrupados, estructurados e interpretados se consideran que son la base de la información humanamente relevante que se pueden utilizar en la toma de decisiones, la reducción de la incertidumbre o la realización de cálculos. Es de empleo muy común en el ámbito informático y, en general, prácticamente en cualquier investigación científica.
9. Variable: En programación, una variable está formada por un espacio en el sistema de almacenaje (memoria principal de un ordenador) y un nombre simbólico (un identificador) que está asociado a dicho espacio. Ese espacio contiene una cantidad o información conocida o desconocida, es decir un valor. El nombre de la variable es la forma usual de referirse al valor almacenado: esta separación entre nombre y contenido permite que el nombre sea usado independientemente de la información exacta que representa. El identificador, en el codigo fuente de la computadora puede estar ligado a un valor durante el tiempo de ejecución y el valor de la variable puede por lo tanto cambiar durante el curso de la ejecución del programa. El concepto de variables en computación puede no corresponder directamente al concepto de variables en matemática. El valor de una variable en computación no es necesariamente parte de una ecuación o fórmula como en matemáticas. En computación una variable puede ser utilizada en un proceso repetitivo: puede asignársele un valor en un sitio, ser luego utilizada en otro, más adelante reasignársele un nuevo valor para más tarde utilizarla de la misma manera.Procedimientos de este tipo son conocidos con el nombre de iteración. En programación de computadoras, a las variables, frecuentemente se le asignan nombres largos para hacerlos relativamente descriptivas para su uso, mientras que las variables en matemáticas a menudo tienen nombres escuetos, formados por uno o dos caracteres para hacer breve en su transcripción y manipulación.
El espacio en el sistema de almacenaje puede ser referido por distintos identificadores diferentes. Esta situación es conocida entre los angloparlantes como "aliasing" y podría traducirse como "sobrenombramiento" para los hispanoparlantes. Asignarle un valor a una variable utilizando uno de los identificadores cambiará el valor al que se puede acceder a través de los otros identificadores.
 10. Tipos de variable: Variable independiente
Una variable independiente es aquella cuyo valor no depende del de otra variable.
La variable independiente en una función se suele representar por x.
La variable independiente se representa en el eje de abscisas.
Variable dependiente
Una variable dependiente es aquella cuyos valores dependen de los que tomen otra variable.
La variable dependiente en una función se suele representar por y.
La variable dependiente se representa en el eje ordenadas.
La variable y está en función de la variable x.


Variables estadísticas
Variable cualitativa
Las variables cualitativas se refieren a características o cualidades que no pueden ser medidas con números. Podemos distinguir dos tipos:
Variable cualitativa nominal
Una variable cualitativa nominal presenta modalidades no numéricas que no admiten un criterio de orden. Por ejemplo:
El estado civil, con las siguientes modalidades: soltero, casado, separado, divorciado y viudo.
Variable cualitativa ordinal o variable cuasicuantitativa
Una variable cualitativa ordinal presenta modalidades no númericas, en las que existe un orden. Por ejemplo:
La nota en un examen: suspenso, aprobado, notable, sobresaliente.
Puesto conseguido en una prueba deportiva: 1º, 2º, 3º, ...
Medallas de una prueba deportiva: oro, plata, bronce.


Variable cuantitativa
Una variable cuantitativa es la que se expresa mediante un número, por tanto se pueden realizar operaciones aritméticas con ella. Podemos distinguir dos tipos:
Variable discreta
Una variable discreta es aquella que toma valores aislados, es decir no admite valores intermediosentre dos valores específicos. Por ejemplo:
El número de hermanos de 5 amigos: 2, 1, 0, 1, 3.
Variable continua
Una variable continua es aquella que puede tomar valores comprendidos entre dos números. Por ejemplo:
La altura de los 5 amigos: 1.73, 1.82, 1.77, 1.69, 1.75.
En la práctica medimos la altura con dos decimales, pero también se podría dar con tres decimales.


Variable aleatoria
Se llama variable aleatoria a toda función que asocia a cada elemento del espacio muestral E un número real.
Se utilizan letras mayúsculas X, Y, ... para designar variables aleatorias, y las respectivas minúsculas (x, y, ...) para designar valores concretos de las mismas.
Variable aleatoria discreta
Una variable aleatoria discreta es aquella que sólo puede tomar valores enteros.
Ejemplos
El número de hijos de una familia, la puntuación obtenida al lanzar un dado.
Variable aleatoria continua
Una variable aleatoria continua es aquella que puede tomar todos los valores posibles dentro de un cierto intervalo de la recta real.
Ejemplos
La altura de los alumnos de una clase, las horas de duración de una pila.
Variable aleatoria binomial
La variable aleatoria binomial, X, expresa el número de éxitos obtenidos en cada prueba del experimento.
La variable binomial es una variable aleatoria discreta, sólo puede tomar los valores 0, 1, 2, 3, 4, ..., n suponiendo que se han realizado n pruebas.
Ejemplo
k = 6, al lanzar una moneda 10 veces y obtener 6 caras.
Variable aleatoria normal
Una variable aleatoria continua, X, sigue una distribución normal de media μ y desviación típica σ, y se designa por N(μ, σ), si se cumplen las siguientes condiciones:
1. La variable puede tomar cualquier valor: (-∞, +∞ )
2. La función de densidad, es la expresión en términos de ecuación matemática de la curva de Gauss.


Variable estadística bidimensional
Una variable bidimensional es una variable en la que cada individuo está definido por un par de caracteres, (X, Y).
Estos dos caracteres son a su vez variables estadísticas en las que sí existe relación entre ellas, una de las dos variables es la variable independiente y la otra variable dependiente.
11. Qué es y cómo se define una variable en pseudocódigo:
Declarar variables significa indicar el tipo de dato que almacenara las variables que participan en el programa.
Hasta ahora, no hemos declarado las variables, a partir de ahora acostumbraos a hacerlo si lo hacéis en papel, es bueno acostumbrarse para que cuando empecemos con otros lenguajes no nos cueste declarar las variables. En caso de hacerlo con PSeInt, no es necesario hacerlo, aunque se puede hacer con define.
Para declarar variables, lo único que debemos hacer es indicar el nombre de la variable y su tipo (numérico, lógico y cadena), antes del inicio del programa, separados por comas. Si veis otra forma de declarar variables, también es valida. Es normal si al principio, no sabemos todas las variables que pueden aparecer, con el tiempo lo identificaremos de una forma mas rápida y sencilla.
12. Qué es y cómo se inicializa una variable en pseudocódigo: Cuando programemos, necesitamos un lugar donde guardar los datos con los que operamos, ya sean números, texto, etc.
Estos datos pueden variar o no durante el proceso de ejecución del algoritmo, según esa variación, pueden ser:
Variables: es un objeto en el que su contenido puede variar durante el proceso de ejecución del algoritmo, se identifican por un nombre y su tipo de valores que puede contener para realizar un uso correcto (lo veremos mas adelante). Por ejemplo: acumulación se una suma, realizar una cuenta, etc.
13. Constantes: es un objeto que permanece sin cambios durante todo el desarrollo del algoritmo. Por ejemplo: el numero Pi, el IVA, etc. Para distinguirlos de las variables, podemos ponerle el nombre en mayusculas, esto es simplemente un consejo.
 Constante:
En programación, una constante es un valor que no puede ser alterado/modificado durante la ejecución de un programa, únicamente puede ser leído.
Una constante corresponde a una longitud fija de un área reservada en la memoria principal del ordenador, donde el programa almacena valores fijos.
Por ejemplo:
El valor de pi = 3.1416
Por conveniencia, el nombre de las constantes suele escribirse en mayúsculas en la mayoría de lenguajes.
14. Convenció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 Cvariará con respecto al del lenguaje BASIC.
15. Un lenguaje de programación:
 es un lenguaje formal diseñado para expresar procesos que pueden ser llevados 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 algoritmoscon precisión, o como modo de comunicación humana.1
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 (de ser necesario) y se mantiene elcódigo fuente de un programa informático se le llama programación.

16. Lenguaje de bajo nivel
Un lenguaje de programación de características bajo nivel es aquel en el que sus instrucciones ejercen un control directo sobre el hardware y están condicionados por la estructura física de las computadoras que lo soportan. El uso de la palabra bajo en su denominación no implica que el lenguaje sea inferior a un lenguaje de alto nivel, si no que se refiere a la reducida abstracción entre el lenguaje y el hardware. Por ejemplo, se utiliza este tipo de lenguajes para programar tareas críticas de los Sistemas Operativos, de aplicaciones en tiempo real o controladores de dispositivos.
17.  Lenguaje de alto nivel
Un lenguaje de programación de alto nivel se caracteriza por expresar el algoritmo de una manera adecuada a la capacidad cognitiva humana, en lugar de la capacidad ejecutora de las máquinas.
En los primeros lenguajes, la limitación era que se orientaban a un área específica y sus instrucciones requerían de una sintaxis predefinida. Se clasifican como lenguajes procedimentales o lenguajes de bajo nivel. Otra limitación de estos es que se requiere de ciertos conocimientos de programación para realizar las secuencias de instrucciones lógicas. Los lenguajes de alto nivel se crearon para que el usuario común pudiese solucionar un problema de procesamiento de datos de una manera más fácil y rápida.
Por esta razón, a finales de los años 1950 surgió un nuevo tipo de lenguajes de programación que evitaba estos inconvenientes, a costa de ceder un poco en las ventajas. Estos lenguajes se llaman de tercera generación o de nivel alto, en contraposición a los de bajo nivel o de nivel próximo a la máquina.
 18. Lenguaje de medio nivel es un lenguaje de programación informática como el lenguaje C, que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel.
Suelen ser clasificados muchas veces de alto nivel, pero permiten ciertos manejos de bajo nivel. Son precisos para ciertas aplicaciones como la creación de sistemas operativos, ya que permiten un manejo abstracto (independiente de la máquina, a diferencia del ensamblador), pero sin perder mucho del poder y eficiencia que tienen los lenguajes de bajo nivel.
Una característica distintiva, por ejemplo, que convierte a C en un lenguaje de medio nivel y al Pascal en un lenguaje de alto nivel es que en el primero es posible manejar las letras como si fueran números (en Pascalno), y por el contrario en Pascal es posible concatenar las cadenas de caracteres con el operador suma y copiarlas con la asignación (en C es el usuario el responsable de llamar a las funciones correspondientes).
 19. Generaciones de los lenguajes de programación
Los equipos de ordenador (el hardware) han pasado por cuatro generaciones, de las que las tres primeras (ordenadores con válvulas, transistores y circuitos integrados) están muy claras, la cuarta (circuitos integrados a gran escala) es más discutible.
Algo parecido ha ocurrido con la programación de los ordenadores (el software), que se realiza en lenguajes que suelen clasificarse en cinco generaciones, de las que las tres primeras son evidentes, mientras no todo el mundo está de acuerdo en las otras dos. Estas generaciones no coincidieron exactamente en el tiempo con las de hardware, pero sí de forma aproximada, y son las siguientes:
Primera generación: Los primeros ordenadores se programaban directamente en código binario, que puede representarse mediante secuencias de ceros y unos sistema binario. Cada modelo de ordenador tiene su propio código, por esa razón se llama lenguaje de máquina.
Segunda generación: Los lenguajes simbólicos, asimismo propios de la máquina, simplifican la escritura de las instrucciones y las hacen más legibles.
Tercera generación: Los lenguajes de alto nivel sustituyen las instrucciones simbólicas por códigos independientes de la máquina, parecidas al lenguaje humano o al de las Matemáticas.
Cuarta generación: se ha dado este nombre a ciertas herramientas que permiten construir aplicaciones sencillas combinando piezas prefabricadas. Hoy se piensa que estas herramientas no son, propiamente hablando, lenguajes. Algunos proponen reservar el nombre de cuarta generación para la programación orientada a objetos.
Estos lenguajes tienen una estructura lo más parecido al idioma inglés, algunas características son:
- Acceso a base de datos.
- Capacidades Gráficas.
- Generación de código automáticamente.
- Puede programarse visualmente como Visual Basic (Programación Visual).
Quinta generación: se llama así a veces a los lenguajes de la inteligencia artificial, aunque con el fracaso del proyecto japonés de la quinta generación el nombre ha caído en desuso.
 20. Código fuente
El código fuente de un programa informático (o software) es un conjunto de líneas de texto que son las instrucciones que debe seguir la computadora para ejecutar dicho programa. Por tanto, en el código fuente de un programa está escrito por completo su funcionamiento.
El código fuente de un programa está escrito por un programador en algún lenguaje de programación, pero en este primer estado no es directamente ejecutable por la computadora, sino que debe ser traducido a otro lenguaje o código binario; así será más fácil para la máquina interpretarlo (lenguaje máquina o código objeto que sí pueda ser ejecutado por el hardwarede la computadora). Para esta traducción se usan los llamados compiladores, ensambladores, intérpretes y otros sistemas de traducción.
El término código fuente también se usa para hacer referencia al código fuente de otros elementos del software, como por ejemplo el código fuente de una página web que está escrito en lenguaje de marcado HTML o en Javascript, u otros lenguajes de programación web, y que es posteriormente ejecutado por el navegador web para visualizar dicha página cuando es visitada.
 21. Código maquina
En el mundo de la Programación, existen dos tipos de lenguajes que se emplean durante todo el proceso, y que significan quizá el punto de partida y el desenlace de un camino obligatorio que debe recorrerse para poder crear una Aplicación, un Programa o simplemente modificar o reparar los errores que hayan sido originados accidentalmente por otro programador.
En primer lugar, tenemos un Lenguaje de Programación en la que un usuario se encarga de redactar los procedimientos y las reglas específicas bajo unas normas predeterminadas, siendo considerado como Lenguaje de Alto Nivel, en el cual se elabora el Código Fuente, con un conjunto de ordenes y palabras que son entendidas por los usuarios, permitiendo su lectura, análisis y redacción (además de la corrección de errores)
Pero el ordenador no es posible por sí solo de leer ésto, y es por ello que debemos recurrir a una herramienta llamada Compilador, que se encarga de realizar revisiones del mismo, y poder realizar una traducción al Lenguaje de Bajo Nivel, que es equivalente al conocido como Código Objeto, o bien también llamado como Código Máquina.
22. Compilador
Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación.1 Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser un código intermedio (bytecode), o simplemente texto. Este proceso de traducción se conoce como compilación.
23.  interprete
En ciencias de la computación, intérprete o interpretador es un programa informático capaz de analizar y ejecutar otros programas. Los intérpretes se diferencian de loscompiladores o de los ensambladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de máquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción.
Usando un intérprete, un solo archivo fuente puede producir resultados iguales incluso en sistemas sumamente diferentes (ejemplo. una PC y una PlayStation 4). Usando un compilador, un solo archivo fuente puede producir resultados iguales solo si es compilado a distintos ejecutables específicos a cada sistema.
Los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son más flexibles como entornos de programación y depuración (lo que se traduce, por ejemplo, en una mayor facilidad para reemplazar partes enteras del programa o añadir módulos completamente nuevos), y permiten ofrecer al programa interpretado un entorno no dependiente de la máquina donde se ejecuta el intérprete, sino del propio intérprete (lo que se conoce comúnmente como máquina virtual).
Para mejorar el desempeño, algunas implementaciones de programación de lenguajes de programación pueden interpretar o compilar el código fuente original en una más compacta forma intermedia y después traducir eso al código de máquina (ej. Perl, Python, MATLAB, y Ruby). Algunos aceptan los archivos fuente guardados en esta representación intermedia (ej. Python, UCSD Pascal y Java).
En la actualidad, uno de los entornos más comunes de uso de los intérpretes es en los navegadores web, debido a la posibilidad que estos tienen de ejecutarse independientemente de la plataforma.
24. Sintaxis
Un programa en cualquier lenguaje se puedeconcebir como un string de caracteresescogidos de algún conjunto o alfabeto decaracteres. Las reglas que determinan si unstring es un programa válido o no, constituyen la sintaxis de un lenguaje.
25. Operadores aritméticos
El concepto de operador aritmético en el sentido matemático se traduce bien a su contrapartida informática. Un operador aritmético es un símbolo que indica al compilador el cálculo que deseamos realizar; ese cálculo afectará a uno o más valores, llamados operandos, y producirá un cierto resultado. Por ejemplo, el operador suma (+) admite dos operandos, los sumandos, y produce como resultado la suma de ambos. Los operadores aritméticos, junto con las constantes y variables numéricas, permiten formar expresiones análogas a las algebráicas habituales. Estas expresiones son traducidas por el compilador al código máquina correspondiente, que se ejecuta con objeto de calcular el valor de la expresión en cuestión. 
26. Operadores relacionales
Los operadores relacionales son símbolos que se usan para comparar dos valores. Si el resultado de la comparación es correcto la expresión considerada es verdadera, en caso contrario es falsa. Por ejemplo, 8>4 (ocho mayor que cuatro) es verdadera, se representa por el valor true del
tipo básico boolean, en cambio, 8<4 (ocho menor que cuatro) es falsa, false. En la primera columna de la tabla, se dan los símbolos de los operadores relacionales, el la segunda, el nombre de dichos operadores
27. Operadores lógicos

Los operadores lógicos son:
&& AND (el resultado es verdadero si ambas expresiones son verdaderas)
|| OR (el resultado es verdadero si alguna expresión es verdadera)
! NOT (el resultado invierte la condición de la expresión)
AND y OR trabajan con dos operandos y retornan un valor lógico basadas en las denominadas tablas de verdad. El operador NOT actúa sobre un operando. Estas tablas de verdad son conocidas y usadas en el contexto de la vida diaria, por ejemplo: "si hace sol Y tengo tiempo, iré a la playa", "si NO hace sol, me quedaré en casa", "si llueve O hace viento, iré al cine". Las tablas de verdad de los operadores AND, OR y NOT se muestran en las tablas siguientes
El operador lógico AND
x
y
resultado
true
true
true
true
false
false
false
true
false
false
false
false
El operador lógico OR
x
y
resultado
true
true
true
true
false
true
false
true
true
false
false
false
El operador lógico NOT
x
resultado
true
false
false
true
Los operadores AND y OR combinan expresiones relacionales cuyo resultado viene dado por la última columna de sus tablas de verdad. Por ejemplo:
            (a<b) && (b<c)
es verdadero (true), si ambas son verdaderas. Si alguna o ambas son falsas el resultado es falso (false). En cambio, la expresión
            (a<b) ||(b<c)
es verdadera si una de las dos comparaciones lo es. Si ambas, son falsas, el resultado es falso.
La expresión " NO a es menor que b"
            !(a<b)
es falsa si (a<b) es verdadero, y es verdadera si la comparación es falsa. Por tanto, el operador NOT actuando sobre (a<b) es equivalente a
            (a>=b)
La expresión "NO a es igual a b"
            !(a==b)
es verdadera si a es distinto de b, y es falsa si a es igual a b. Esta expresión es equivalente a
            (a!=b)

28.  Estructuras de control
En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa.
Con las estructuras de control se puede:
De acuerdo a una condición, ejecutar un grupo u otro de sentencias (If-Then-Else)
De acuerdo al valor de una variable, ejecutar un grupo u otro de sentencias (Select-Case)
Ejecutar un grupo de sentencias mientras se cumpla una condición (Do-While)
Ejecutar un grupo de sentencias hasta que se cumpla una condición (Do-Until)
Ejecutar un grupo de sentencias un número determinado de veces (For-Next)
Todas las estructuras de control tienen un único punto de entrada y un único punto de salida. Las estructuras de control se puede clasificar en : secuenciales, iterativas y de control avanzadas. Esto es una de las cosas que permite que la programación se rija por los principios de la programación estructurada.
Los lenguajes de programación modernos tienen estructuras de control similares. Básicamente lo que varía entre las estructuras de control de los diferentes lenguajes es su sintaxis, cada lenguaje tiene una sintaxis propia para expresar la estructura.
Otros lenguajes ofrecen estructuras diferentes, como por ejemplo los comandos guardados.
29. Programación estructurada
La programación estructurada es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando únicamente subrutinas y tres estructuras: secuencia, selección (if y switch)eiteración (bucles for y while), considerando innecesario y contraproducente el uso de la instrucción detransferencia incondicional (GOTO), que podría conducir a "código espagueti", que es mucho más difícil de seguir y de mantener, y era la causa de muchos errores de programación.
Surgió en la década de 1960, particularmente del trabajo de Böhm y Jacopini,1 y una famosa carta, «La sentencia goto considerada perjudicial», de Edsger Dijkstra en 19682 — y fue reforzado teóricamente por el teorema del programa estructurado, y prácticamente por la aparición de lenguajes como ALGOL con adecuadas y ricas estructuras de control.
30. 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 los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objeto.
31.  Programación en capas
La programación por capas es una arquitectura cliente-servidor en el que el objetivo primordial es la separación de la lógica de negocios de la lógica de diseño; un ejemplo básico de esto consiste en separar la capa de datos de la capa de presentación al usuario.

La ventaja principal de este estilo es que el desarrollo se puede llevar a cabo en varios niveles y, en caso de que sobrevenga algún cambio, solo se ataca al nivel requerido sin tener que revisar entre código mezclado. Un buen ejemplo de este método de programación sería el modelo de interconexión de sistemas abiertos.
Además, permite distribuir el trabajo de creación de una aplicación por niveles; de este modo, cada grupo de trabajo está totalmenteabstraído del resto de niveles, de forma que basta con conocer la API que existe entre niveles.
En el diseño de sistemas informáticos actual se suelen usar las arquitecturas multinivel o Programación por capas. En dichas arquitecturas a cada nivel se le confía una misión simple, lo que permite el diseño de arquitecturas escalables (que pueden ampliarse con facilidad en caso de que las necesidades aumenten).
El más utilizado actualmente es el diseño en tres niveles (o en tres capas)
Capas y niveles
Capa de presentación: la que ve el usuario (también se la denomina "capa de usuario"), presenta el sistema al usuario, le comunica la información y captura la información del usuario en un mínimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato). También es conocida como interfaz gráfica y debe tener la característica de ser "amigable" (entendible y fácil de usar) para el usuario. Esta capa se comunica únicamente con la capa de negocio.
Capa de negocio: es donde residen los programas que se ejecutan, se reciben las peticiones del usuario y se envían las respuestas tras el proceso. Se denomina capa de negocio (e incluso de lógica del negocio) porque es aquí donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la capa de presentación, para recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al gestor de base de datos almacenar o recuperar datos de él. También se consideran aquí los programas de aplicación.
Capa de datos: es donde residen los datos y es la encargada de acceder a los mismos. Está formada por uno o más gestores de bases de datos que realizan todo el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación de información desde la capa de negocio.
Todas estas capas pueden residir en un único ordenador, si bien lo más usual es que haya una multitud de ordenadores en donde reside la capa de presentación (son los clientes de la arquitectura cliente/servidor). Las capas de negocio y de datos pueden residir en el mismo ordenador, y si el crecimiento de las necesidades lo aconseja se pueden separar en dos o más ordenadores. Así, si el tamaño o complejidad de la base de datos aumenta, se puede separar en varios ordenadores los cuales recibirán las peticiones del ordenador en que resida la capa de negocio.
Si, por el contrario, fuese la complejidad en la capa de negocio lo que obligase a la separación, esta capa de negocio podría residir en uno o más ordenadores que realizarían solicitudes a una única base de datos. En sistemas muy complejos se llega a tener una serie de ordenadores sobre los cuales corre la capa de negocio, y otra serie de ordenadores sobre los cuales corre la base de datos.
En una arquitectura de tres niveles, los términos "capas" y "niveles" no significan lo mismo ni son similares.
El término "capa" hace referencia a la forma como una solución es segmentada desde el punto de vista lógico:
Presentación. (Conocida como capa Web en aplicaciones Web o como capa de usuario en Aplicaciones Nativas)
Lógica de Negocio. (Conocida como capa Aplicativa)
Datos. (Conocida como capa de Base de Datos)
En cambio, el término "nivel" corresponde a la forma en que las capas lógicas se encuentran distribuidas de forma física. Por ejemplo:
Una solución de tres capas (presentación, lógica del negocio, datos) que residen en un solo ordenador (Presentación+lógica+datos). Se dice que la arquitectura de la solución es de tres capas y un nivel.
Una solución de tres capas (presentación, lógica del negocio, datos) que residen en dos ordenadores (presentación+lógica por un lado; lógica+datos por el otro lado). Se dice que la arquitectura de la solución es de tres capas y dos niveles.



















No hay comentarios:

Publicar un comentario