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.
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