Lexico en programación orientada a objetos
(Una guía sobre contenidos informativos mínimos necesarios en
programación orientada a objetos)
Por Fabián Ríos Castrillón
Abril
25 de 2006
Qué es programación de computadores ?
Es la tarea intelectual de crear instructivos para que la computadora
sepa cómo actuar automáticamente cuando le sea ordenado hacerlo. El
término proviene de programación o acto de planificar al detalle las
acciones que deben ocurrir en un futuro para que puedan obtenerse
resultados a un problema determinado partiendo de algunos datos
iniciales.
Qué es POO ?
La programación orientada a objetos es uno de los seis paradigmas
existentes en programación de computadores. Está basado en la
construcción y uso de objetos. Un programa está conformado por un
objeto coordinador general llamado aplicación y un grupo de objetos que
interactúan entre sí enviándose mensajes unos a otros.
Cual es la diferencia principal de la POO con la
programación usual, la procedimental o procedural ?
En el paradigma procedimental de la programación la atención está
puesta en los procedimientos o algoritmos. Ellos establecen el
derrotero general de las acciones y a ellos están adscritos los datos
necesarios para llevar a cabo el proceso. En el paradigma de la
programación orientada a objetos la mirada está puesta en los objetos
(que pueden tener varios datos en su interior) y a ellos están
adscritos los métodos, algoritmos, procedimientos o comportamientos
como se les llama allí.
Un apoyo didáctico útil para experimentar: el
lenguaje Lexico
Lexico (
Lenguaje
EXperimental
Introductorio
a la
Computación con
Objetos)
es una ayuda didáctica desarrollada para favorecer la inmersión del
estudiante en la disciplina de la programación orientada a objetos de
manera que sin tener que dedicar meses a aprender un lenguaje de
producción industrial pueda experimentar desde un comienzo con las
ideas acerca de gobernar las acciones de la máquina. El compilador es
distribuido gratuitamente en su portal
http://lexico.mobi
Qué es un objeto en programación ?
Un objeto es una unidad de información que representa algún ser, ente o
cosa independientemente de si es tangible o intangible, abstracto o
concreto (ver
Fig.
). En su interior la información está dispuesta de dos maneras
posibles: cierta información representa las características o el estado
en el que se encuentra el objeto. A éste tipo de información se le
llama los atributos del objeto y a cada uno de ellos se le da un valor
particular que le diferencia de otros objetos. La segunda modalidad de
información está conformada por los instructivos, procedimientos o
algoritmos que representan las actividades posibles de desempeñar por
el objeto y por ello se le llama sus comportamientos, métodos u
operaciones. A los atributos y a los comportamientos del objeto se les
conoce como sus miembros. Cuando un objeto activa un comportamiento en
otro se dice que le ha enviado un mensaje o le ha dado la orden para
desencadenar ese comportamiento.
Cómo estudiar un curso que fomenta una habilidad ?
Para estudiar en un curso centrado en el conocimiento de contenidos
informativos muchas veces es suficiente con la lectura de ellos, pero
esa estrategia es un completo engaño cuando se trata de cursos cuyo
centro gravitatorio son los procesos. Aprender a programar es despertar
la habilidad intelectual de la previsión, es generar una actitud de
anticipar permanente las consecuencias de las órdenes dadas para un
proceso que ocurrirá a futuro.
Una habilidad no se adquiere con la sola lectura de contenidos sobre el
tema pues ellos son solo indicadores o señales sobre algunos conceptos
a tener en cuenta al diseñar los procesos en sus detalles. Diseñar
implica armar poniendo en concordancia los conceptos, los requisitos,
las consideraciones iniciales, la intencionalidad propia, la economía y
los propósitos finales. Esas características exigen gran coordinación
para lograr plasmarlas en un artefacto que operará independientemente
de su creador. El cuidado con el detalle y la necesidad de encontrar la
máxima coherencia se pone de manifiesto cuando se entiende que el
artefacto intangible que se diseña coordinará las acciones de otro ésta
vez de carácter físico y ni el uno ni el otro poseen inteligencia.
Una estrategia apropiada para cursos que fomenten una habilidad puede
ser un ciclo reiterado de lecturas, planificación, concreción,
experimentación, evaluación y reflexión sobre lo ocurrido. Para la
actividad experimental puede utilizar la ayuda
Lexico.
Qué es un computador ?
Un computador está formado, hablando en términos conceptuales, por tres
unidades internas (Ver Fig. ): la Unidad de memoria principal, la
unidad de cálculos y la unidad de control. Aunque eso forma realmente
el computador y puede operar, carece de sentido práctico pues no posee
medios para comunicarse con el exterior. Por eso se dice que el
computador tiene, además, tres unidades externas: la unidad de entrada,
la unidad de salida y la unidad de memoria secundaria.
Cuales tipos de máquinas conforman un computador ?
La unidad de entrada es cualquier dispositivo físico que cumpla el
papel de permitir el ingreso de datos e informaciones hacia el interior
de la máquina, particularmente hacia la memoria principal. Ejemplos de
unidad de entrada son un teclado, un ratón y un lápiz conectado.
La unidad de salida es la máquina que permita exteriorizar datos e
informaciones residentes en el interior del computador, particularmente
desde la memoria principal. Son ejemplos de éste tipo de máquinas una
pantalla o screen, una impresora y un plotter.
La unidad de memoria principal (popularmente conocida como RAM, random
access memory o memoria de acceso aleatorio) es un grupo formado por
millones de circuitos electrónicos iguales pues su función es la misma:
representar temporalmente mediante dos rangos de voltaje un elemento
mínimo de información (cero o uno) llamado bit de información. Solo
hay dos operaciones en la memoria principal: grabar información o
recuperar una copia de la información existente. Se manipula por zonas
o grupos de bits. A grupos de 8 bits se le llama byte, a grupos de
bytes se le llama campo, a grupos de campos referente a un mismo sujeto
se le llama registro a grupos de registros se les llama archivo. Éste
último concepto y los siguientes en éste orden creciente de capacidad
de almacenamiento usualmente corresponden a la memoria secundaria:
grupos de archivos correlacionados se le llama bases de datos y a
grupos de bases de datos interconectadas se les llama red de bases de
datos. Ésta memoria es volátil. Quiere decir que debe estar conectada
la energía eléctrica pues requiere refrescamiento permanente. Algunos
registros pueden incluir referencias a algoritmos para representar
objetos.
La unidad de memoria secundaria o externa o NO volátil lo que permite
la persistencia en el tiempo de los datos e informaciones aunque esté
desconectada. Ejemplos de ella son los diskettes, CDs, cintas
magnéticas y la misma Web.
La unidad de cálculos es un conjunto de cientos o quizás miles de
circuitos electrónicos diferentes, cada uno encargado de efectuar un
tipo diferente de operación básica a los datos en el computador. Serán
identificados por símbolos así:
Circuitos
operadores
aritméticos:
+
: para ordenar sumar dos cantidades
- : para
ordenar restar dos cantidades
* : para
ordenar multiplicar dos cantidades
/ : para
ordenar dividir dos cantidades
^ : para
ordenar potenciar cantidad llamada base con otra llamada
exponente
% : para ordenar
calcular el módulo o parte sobrante de dividir la primera vez una
cantidad entre otra
Circuitos
operadores
lógicos relacionales:
<
: para ordenar calcular la relación menor que, da verdadero o falso
<=
: para ordenar calcular la relación menor o igual que, da verdadero o
falso
>
: para ordenar calcular la relación mayor que, da verdadero o falso
>=
: para ordenar calcular la relación mayor o igual que, da verdadero o
falso
><
: para ordenar calcular la relación diferente que, da verdadero o falso
= : para
ordenar calcular la relación igual que, da verdadero o falso
Circuitos
operadores
lógicos booleanos:
&
: para ordenar evaluar la conjunción o Y (AND) lógico, da verdadero o
falso
| : para
ordenar evaluar la disjunción u O (OR) lógico, da verdadero o falso
~ : para
ordenar evaluar la negación o NO (NOT) lógico, da verdadero o falso
La unidad de control es un grupo muy grande de programas que se
encargan de coordinar y controlar el funcionamiento de todas las
máquinas. La programación de computadores es la agregación de nuevos
artefactos intangibles que controlan el funcionamiento de la máquina
para propósitos específicos, es aumentar la unidad de control. Todos
los componentes de ésta unidad, como ya puede haberse deducido, es la
única intangible, la única no física, la única que puede enviarse por
teléfono, tal como sucede cuando se baja un programa de algún sitio en
la Web (código .exe o ejecutable y .dll o reutilizable).
Cuales tipos de máquinas son físicas o tangibles en
un computador ?
Son tangible o físicas las unidades: entrada, salida, memoria
principal, memoria secundaria y cálculos. Se les llama Hardware o lo
tangible y duro.
Cuales tipos de máquinas son lógicas o intangibles
en un computador ?
Son máquinas lógicas o intangibles todos los componentes de la unidad
de control pues realmente son grupo de instrucciones que controlan el
funcionamiento de todo el computador. Por esto se les llama software o
lo intangible y fofo.
Qué conforma la memoria principal o RAM ?
Millones de circuitos electrónicos iguales llamados flip-flops
Qué es un flip-flop ?
Es un circuito electrónico conformado por compuertas lógicas
interconectadas y cuya función es almacenar o representar temporalmente
un bit de información. Sus únicas funciones que interesan para la
programación son grabar o establecerse para representar un 1 o un 0 y
permitir tomar copia de lo que tiene representado que será un 1 o un 0.
Un flip-flop entonces permite representar uno de dos conceptos. Grupos
de flip-flops permiten representar información más compleja. Así por
ejemplo un grupo de 8 permite representar un byte de información, es
decir una de 256 combinaciones o estados diferentes que
convencionalmente pueden ser asociadas con 256 conceptos.
Cuales operaciones se efectúan en la RAM ?
Solo grabación de información o alteración de los flip-flops para que
representen algo y toma de la copia de lo allí existente para ser
llevada a otra parte.
Cuales características posee la RAM ?
Formada por millones de circuitos iguales, permite solo dos operaciones
grabar información y tomar una copia de ella, es volátil o sea que lo
allí existente es efímero: permanece solo cuando esté funcionando el
programa que la administra y no se suspenda el fluido eléctrico.
Qué conforma la unidad de cálculos o procesador ?
Cientos de circuitos electrónicos diferentes, cada uno especializado en
hacer un tipo de operación distinta. No conserva la información sino
durante una fracción de segundo mientras la transforma por lo que sus
resultados deben ser transportados para ser conservados en algún lugar
de la RAM.
Cuales operaciones se efectúan en el procesador ?
Operaciones aritméticas, operaciones relacionales y operaciones
booleanas.
Cuales características posee el procesador ?
Formado por cientos de circuitos electrónicos diferentes, no conserva
la información.
Qué función cumple la unidad de entrada ?
Permitir introducir datos e información hacia el interior del
computador (hacia la RAM).
Qué función cumple la unidad de salida ?
Permitir explicitar o evidenciar en el exterior del computador datos o
información existente en la RAM.
Qué función cumple la unidad de memoria externa,
secundaria o masiva ?
Permitir la persistencia: conservar datos e informaciones en el tiempo
aunque el programa que los administra haya dejado de funcionar o se
haya caído el fluido eléctrico.
Cuales características posee la memoria secundaria ?
Posee gran volumen de almacenamiento, es menos costosa en dinero, es
más lenta, no es volátil
Qué es persistencia de datos y de información ?
Es la posibilidad de conservar los datos o informaciones a través del
tiempo. Los datos e informaciones son alterados solo deliberadamente.
Qué contienen las memorias en un computador
funcionando?
Contiene algoritmos y datos, los guiones que describen las acciones a
realizar y los datos que serán utilizados y o transformados.
Qué función cumple la unidad de control ?
Coordina las acciones que deben realizarse, administra la RAM,
establece las prioridades para las acciones, controla la validez de
algunos datos, facilita el trabajo del usuario final y en general
proporciona la capacidad de operar automáticamente.
Qué conforma la unidad de control ?
Millones de instrucciones y datos agrupados en grandes bloques
funcionales que coordinan y controlan el funcionamiento general y
particular de las máquinas tanto físicas como no físicas.
Qué es flujo de datos en un computador ?
Es el tránsito o traslado de copias de los datos entre artefactos
diferentes, tanto entre los físicos como entre los no físicos.
Cuales son los flujos de datos posibles en un
computador ?
Existen flujos entre diversas máquinas:
Cuando se entra un dato por el teclado éste es el emisor y el receptor
debe ser un objeto previamente definido y con espacio reservado en la
RAM.
Cuando se saca un dato por la pantalla se toma la copia del dato
existente en un objeto residente en la RAM y se emite por aquel medio.
Cuando se van a sumar dos cantidades se toma la copia de los dos datos
existentes en objetos residentes en la RAM para ser llevados a la
unidad de cálculo y operarlos con el circuito sumador.
Cuando se ha hecho un cálculo en la unidad de cálculos se toma la copia
del resultado y se lleva a la RAM para conservarse en alguna zona
(objeto) previamente reservada.
Cuando se va a conservar un dato externamente se toma su copia del
objeto que lo contiene en la RAM y se escribe en la máquina externa en
alguna zona predispuesta.
Cuando se quiere recuperar un dato de una memoria externa se toma la
copia existente en alguna zona previamente dispuesta en ese medio y se
lleva a un objeto que debe haber sido previamente reservado en la RAM.
Cuando intervienen dos artefactos intangibles: un objeto (que es una
máquina lógica) envía un mensaje a otro (activa uno de sus
comportamientos o algoritmos) a veces agregándole algún argumento para
que use en sus operaciones: el primer objeto dice
doy
o
sale éste argumento y el objeto receptor del
mensaje debe recibirlo (dice
deme o
entra)
ese parámetro.
Cuando quien envía el mensaje debe obtener un resultado fruto de la
activación de un comportamiento del otro objeto el flujo es a la
inversa: el emisor del mensaje recibe (dice
deme o
entra)
y el otro objeto (que debe activar su algoritmo o comportamiento para
producir el resultado) debe enviarlo (dice
doy o
sale).
El concepto fundamental que subyace en cualquier flujo es que el objeto
receptor del dato debe haberse definido
variable
(alterable) pues recibir significa destruir el contenido previo con el
dato recién llegado.
Un caso especial de flujo de datos ocurre cuando dos máquinas
intangibles (dos objetos diferentes)
comparten una
porción común de memoria aunque en ellos se denomine en forma
diferente. Eso ocurre cuando se establece el flujo como
bidireccional
entre argumentos al enviar un mensaje y los parámetros que definen el
método invocado.
Cual de los elementos involucrados en un flujo de
datos sufre destrucción de su contenido previo ?
Es alterado el objeto recetor del dato. Por ésta razón los lenguajes de
programación exigen como receptores solo objetos declarados
variables.
Cual de los elementos involucrados en un flujo de
datos no sufre destrucción ?
No es alterado el objeto emisor de la copia del dato. Por ésta razón
muchos lenguajes permiten enviar información de un objeto constante y
también la que sea fruto de la evaluación de una expresión.
Qué es un elemento mínimo de información o bit ?
Es uno de dos posibles estados pertenecientes a una dicotomía de
conceptos, conceptos enfrentados o contradictores. Convencionalmente se
utilizan los valores 0 y 1 que son todos los dígitos de un sistema
numérico en especial, el sistema binario (compuesto por dos dígitos),
pues éste permite representar valores complejos mediante la combinación
de esos valores en sartas de ellos. Un bit se representa en la máquina
en un flip-flop. El sistema numérico que utiliza normalmente el ser
humano es el decimal (que está formado por diez dígitos). Una cantidad
representada en el sistema binario puede ser convertida mecánicamente a
su equivalente representada en el sistema decimal y viceversa. Se
utiliza el sistema binario en las máquinas por su simpleza y ahorro de
costos en su fabricación.
Qué es un byte ?
Es un grupo de ocho bits. Un bit puede representar uno de dos estados.
Ocho bits puede representar 256 estados diferentes desde el 0000 0000
hasta el 1111 1111.
Qué es un campo ?
Es un grupo de bytes que permiten representar un dato. Su tamaño
depende de las necesidades de almacenamiento y del soporte que
proporcione el lenguaje de programación utilizado para desarrollar la
aplicación.
Qué es un registro ?
Es un grupo de campos que representan datos parciales sobre un mismo
sujeto. Su tamaño depende de la complejidad de la información que se
desee manipular.
Qué es un archivo ?
Es una colección de registros con informaciones de sujetos del mismo
tipo. Usualmente el término es utilizado para referirse a áreas de
memoria en dispositivos externos.
Qué es una base de datos ?
Es un grupo de archivos interrelacionados con el fin de ahorrar espacio
de almacenamiento, facilidad de acceso y facilidades de expansión.
Qué es una red de bases de datos ?
Es un grupo de bases de datos generalmente ubicadas en países distintos
pero comunicadas con medios electrónicos para aprovechar las ventajas
estratégicas de cada entorno cultural.
Cual criterio ha ordenado las anteriores 7 preguntas
?
Las anteriores siete preguntas anteriores han sido expuestas
ordenadamente bajo el criterio de capacidad de representación de
información.
Qué es una dirección en/de memoria ?
Es un número consecutivo contado a partir de principio de la memoria
que hace referencia a la posición absoluta que ocupa el primer byte
reservado para una zona destinada para el almacenamiento de alguna
información.
Qué es administrar la memoria ?
Es mantener organizado un inventario de todos los bytes que conforman
la memoria con el fin de prestar servicios de reservación, devolución y
control de acceso a las diferentes áreas utilizadas por los diferentes
programas que puedan estar en ejecución en un mismo computador.
Cual máquina administra la memoria ?
El administrador de memoria es una máquina intangible, es un programa
perteneciente al sistema operativo.
Qué es reservar memoria ?
Es solicitar un espacio al administrador de la memoria con el fin de
posteriormente conservar allí alguna información. Generalmente esa
solicitud se hace mediante algún mecanismo soportado por el compilador
o el intérprete del lenguaje de programación que se utiliza para
programar la aplicación.
Qué es un objeto en la memoria RAM ?
Es un espacio destinado a tener generalmente varias informaciones sobre
un mismo sujeto y referencias a los algoritmos que puede utilizar para
manipular esas informaciones. A las primeras se les llama los atributos
del objeto y a las segundas se les llama los comportamientos del
objeto. Unas representan informaciones pasivas y las otras
informaciones activas o potenciadoras. Puede observarse que éste
término evoca a otro, el registro usual en otros paradigmas de la
programación, pero difiere de él en sus referencias a los algoritmos
que puede emplear.
Respecto al flujo de datos cuales modalidades de
objetos se usan ?
Se usan dos miradas convencionales, planteadas con el propósito de
presentar más fácilmente los conceptos y fruto de las necesidades
prácticas: Se dice que los objetos son o constantes o variables.
Qué es un objeto constante ?
Es un objeto que dizque no se deja alterar. El término es usado para
objetos simples.
Qué es un objeto variable ?
Es un objeto definido para que permita alterar su contenido. El término
se utiliza tanto para objetos simples como compuestos.
Respecto a su composición cuales tipos de objetos se
usan ?
Otra mirada sobre los objetos está basada en su grado de complejidad.
Se dice que los objetos son simples o compuestos.
Qué es un objeto simple ?
Un objeto se dice que es simple si está conformado por un solo dato.
Cuales son los tipos básicos de información ?
El ser humano utiliza como tipos básicos de información una gran
variedad pero buscando la efectividad en computación usualmente se
emplean unos veinte. En éste escrito y solo con el propósito de hacer
más simple la explicación se asumen solo dos tipos básicos: cantidades
y caracteres. Con los primeros es posible ordenar se realicen cálculos
aritméticos y con los segundos pueden representarse hileras o chorros
de símbolos. No es el grafema que se emplee sino la funcionalidad que
se busque. Por ejemplo el salario de un empleado puede describirse como
una cantidad o también como una serie de símbolos. Cual forma escoger?
La respuesta puede estar implícita en qué se desee hacer con esa
información. Si solamente se va a mostrar por pantalla bastaría con
definirla como caracteres pero si además se desea hacer algún cálculo
con ella deberá definirse como una cantidad. Otro ejemplo sería el
número telefónico de una persona pues aunque está compuesto por dígitos
debería definirse como del tipo caracteres pues a nadie se le ocurriría
sumar dos números telefónicos.
Qué es un objeto compuesto ?
Se dice que un objeto es compuesto cuando su constitución interna está
formada por varios atributos que permiten valorarlo de varias maneras o
representar estados complejos.
Qué es el nombre o referencia de un objeto ?
Es un identificador establecido casi siempre por el programador de la
aplicación con miras a discriminarlo para enviarle mensajes.
Cual es la regla clásica para nombrar correctamente
un objeto variable ?
Su nombre empieza con una letra y si se quiere el resto de símbolos
utilizados deben ser solo otras letras o dígitos o la subraya ( _ ):
Cual es la regla clásica para nombrar correctamente
un objeto constante ?
El nombre de un objeto constante es su contenido (que ya conoce el
programador y por ello decide definirlo constante). La ortografía para
evitar confusiones dependerá del tipo de información que represente,
así:
Para un objeto constante cuyo contenido vaya a ser empleado en cálculos
aritméticos, es decir es una cantidad, su nombre será ese valor tal
como se escribe en aritmética y álgebra. Por ejemplo veintiuna unidades
se llamará 21 (y su contenido será colocado por el compilador en ese
valor).
Para un objeto constante cuyo contenido es solo una sarta de
caracteres, su nombre se diferenciará diciéndolo textualmente. Por
ejemplo si se desea tener los símbolos 2 y 1 juntos y no cambiarán se
escribirá ”21” (y su contenido será colocado por el compilador
yuxtaponiendo el código ASCII para el 2 y a continuación el código
ASCII para el 1 y
NO significa el valor veintiuno).
Qué es una expresión ?
Es un pequeño algoritmo escrito como una combinación de operandos o
insumos y operadores o acciones. Ordena evaluarse en la unidad de
cálculos y producir un resultado.
Qué es una expresión aritmética ?
Es una combinación de operandos tipo cantidad y operadores tipo
aritmético. Los insumos son cantidades y el resultado es otra cantidad.
Qué es una expresión lógica ?
Es una combinación de operandos de variados tipos y operadores lógicos
que ordenan efectuar un cálculo lógico. Los operadores lógicos son de
dos tipos: los relacionales y los booleanos. Los insumos son de algún
tipo pero el resultado es un valor de verdad, es decir solo produce el
valor verdadero o produce el valor falso.
Que es un operando en una expresión ?
Es un objeto simple.
Que es un operador en una expresión ?
Se asumirá que es un circuito físico de la unidad de cálculo y será
representado por un símbolo.
Qué es un operador aritmético ?
Es un comando que activa un circuito electrónico ubicado en la unidad
de cálculo, representado por un símbolo usualmente utilizado en
aritmética y álgebra y que ordena efectuar una operación aritmética:
Circuitos operadores aritméticos:
Símbolo: Función o circuito que activa
_______..._____________________________
+ : para ordenar sumar dos cantidades, y producir una cantidad.
- : para ordenar restar dos cantidades, y producir una cantidad.
* : para ordenar multiplicar dos cantidades, y producir una cantidad.
/ : para ordenar dividir dos cantidades, y producir una cantidad.
^ : para ordenar potenciar con dos cantidades (base y exponente), y
producir una cantidad.
% : para ordenar calcular el módulo con dos cantidades, y producir una
cantidad.
Cuales son los insumos con los que opera un operador
aritmético ?
Son cantidades representadas, o mejor contenidas en objetos simples del
tipo cantidad.
Qué es un operador lógico relacional ?
Es un comando representado mediante un símbolo que activa un circuito
electrónico existente en la unidad de cálculo y evalúa una relación:
Circuitos operadores lógicos relacionales:
Símbolo o Función o circuito que activa
_______..._____________________________
< : para ordenar calcular la relación menor que, da verdadero o
falso
<= : para ordenar calcular la relación menor o igual que, da
verdadero o falso
> : para ordenar calcular la relación mayor que, da verdadero o
falso
>= : para ordenar calcular la relación mayor o igual que, da
verdadero o falso
>< : para ordenar calcular la relación diferente que, da
verdadero o falso
= : para ordenar calcular la relación igual que, da verdadero o falso
Cuales son los insumos con los que opera un operador
relacional ?
Los insumos pueden ser objetos simples de cualquier tipo pero ambos del
mismo tipo.
Qué es un operador lógico booleano ?
Es un comando, representado por un símbolo, que activa un circuito
electrónico destinado a evaluar una operación lógica booleana:
Circuitos operadores lógicos booleanos:
Símbolo o Función o circuito que activa
_______..._____________________________
& : para ordenar evaluar la conjunción o Y (AND) lógico, da
verdadero o falso
| : para ordenar evaluar la disjunción u O (OR) lógico, da verdadero o
falso
~ : para ordenar evaluar la negación o NO (NOT) lógico, da verdadero o
falso
Cuales son los insumos con los que opera un operador
lógico ?
Los insumos son valores de verdad (verdadero o falso).
Cuales son otros operadores de manejo comunes en los
lenguajes de programación ?
Símbolo o Función u operación de manejo que representa:
_______...____________________________________________
( ) : para asociar prioridad de operaciones como en álgebra o
parámetros de un comportamiento con argumentos de un mensaje.
[ ] : para señalar una posición relativa a un grupo de objetos.
. : para cualificar un miembro de un objeto, así: objeto.miembro
, : para separar las referencias en una lista de objetos.
Cómo se establecían las actividades a desarrollar en
los primeros computadores ?
Se establecía mediante la reconfiguración del hardware efectuada con la
desconexión de algunos cables de algunos sitios que tenían una
funcionalidad específica y reconectándolos en otros sitios destinados a
otras funcionalidades. A esa actividad se le llamaba reensamble o
ensamble. Más tarde se ideó una forma de efectuar esas desconexiones y
reconexiones utilizando funciones lógicas en el hardware esta vez
inmodificable y con ello surgió el concepto de programa almacenado.
Qué es un programa para un computador ?
Es un grupo de instrucciones u órdenes que deben ser efectuadas
mediante la activación de los métodos o algoritmos de los objetos y
fruto de la interacción entre ellos.
Qué es un lenguaje de programación ?
Es un sistema convencional para instruir o comandar simbólicamente un
computador. Incluye convenciones ortográficas, sintácticas y
semánticas.
Qué es un lenguaje de máquina ?
Es un leguaje que describe todas las operaciones y los insumos con
códigos binarios, los únicos directamente representables en la
circuitería de la máquina. Por ejemplo las siguientes tres
instrucciones que ordenar efectuar tres operaciones distintas
utilizando tres zonas de la RAM distintas (los ocho bits iniciales son
los códigos de las operaciones u
operadores y los
ocho restantes son las direcciones de las localizaciones a usar como
operandos):
1101 1111 1000 0001
1110 1100 1000 0010
1111 1101 1000 0100
Qué es un lenguaje de programación de bajo nivel ?
Es un lenguaje para programar aún con poca expresividad para el ser
humano pues está orientado a permitir escribir simbólicamente en vez de
hacerlo en lenguaje de máquina. Por ejemplo las siguientes tres
instrucciones en las que simbólicamente lo primero que se indica es el
operador y lo segundo es la localización a usar u operando):
LD A
ADD B
STR C
Qué es un lenguaje de programación de alto nivel ?
Es un lenguaje de programación dotado de expresividad y flexibilidad
que busca facilitar al ser humano la labor de planificación de de los
detalles que han de ocurrir en un computador cuando le sea ordenada
cierta actividad. Por ejemplo las siguientes son la misma instrucción
escrita en varios lenguajes que sintetizan u ordenan algo semejante a
las tres mostradas en lenguaje de máquina o las tres en lenguaje de
bajo nivel:
Copie A + B en C (escrita en
Lexico,
que usa el objeto
receptor a la derecha)
C = A + B; (escrita en C, C++, C#, Java, PHP….)
C:= A + B (escrita en Pascal)
Move A + B to C (escrita en COBOL, que usa la variable receptora a la
derecha)
Let C = A + B (escrita en Basic)
Qué es un lenguaje de programación orientado a
objetos ?
Es un lenguaje que proporciona facilidades directas para programar
siguiendo ese paradigma. Debe permitir al programador definir sus
propios modelos o clases, instanciar o crear objetos de esas clases,
heredar las características de una clase en otra, definir métodos
alternos con el mismo nombre para cualquier clase, enviar mensajes a un
objeto (activar uno de sus comportamientos) y usar solo objetos como
estructura central.
Qué “entiende” o mejor, con qué opera realmente un
computador ?
Los circuitos que operan están basados en la lógica bivaluada y por
ello se les llama circuitos digitales. Los insumos son voltajes e
intensidad. Con dos rangos en sus voltajes se discretiza ese fenómeno
continuo para convencionalmente representar los dígitos binarios (0 o
1). Por eso popularmente se dice que la máquina trabaja con 0s y 1s.
Qué se requiere para que el ser humano pueda dar
órdenes a un computador ?
Se necesita que sepa darle los códigos que ella “entiende”, aquellos
que hacen que se activen sus circuitos. En las primeras épocas lo hacía
mediante conexiones de cables en sitios funcionales (hardware), después
se hacía mediante códigos de máquina escritos con dígitos binarios
(software), luego se aumentó la facilidad reemplazando esos códigos
binarios por símbolos casi legibles con significado preciso
(generalmente se llamó lenguaje assembly, o de ensamble), y finalmente
mediante palabras, estereotipos y en algunos casos frases. En cada
época se creó una nueva facilidad subiendo de nivel en el lenguaje
utilizado. Se partió de lo más simple para la máquina (pero que es una
forma más difícil para el ser humano) y lentamente se avanzó hasta
llegar a un nivel más cercano a la forma natural de comunicarse el
humano (pero más difícil de detectar o “reconocer” por la máquina). A
pesar de los avances en la forma de instruirla, la máquina sigue
trabajando con códigos binarios lo que hace necesario que existan
programas que conviertan las instrucciones escritas en formas de más
nivel a otras formas de bajo nivel. Esos programas se conocen como
traductores o procesadores del lenguaje.
Cuales modalidades de traducción existen ?
Según la forma tecnológica empleada pueden clasificarse en tres
modalidades: compiladores, intérpretes y ensambladores.
Qué es un ensamblador ?
Es un programa que controla la validez sintáctica de las instrucciones
escritas en un lenguaje de bajo nivel y las convierte en sus códigos
binarios equivalentes. Produce un código ejecutable independiente del
código fuente (u original escrito en assembly) y del ensamblador. Ese
código ejecutable coordinará las actividades de una máquina, la
original en la que se ensambló o en cualquiera otra que tenga
características semejantes aunque ella no tenga el ensamblador pues ya
no se requiere. Si un producto se elabora para 1000 clientes entonces
debe haber 1 ensamblador para producir el ejecutable.
Qué es un intérprete ?
Es un programa que controla la validez sintáctica de las instrucciones
escritas por el programador usualmente utilizando un lenguaje de alto
nivel (código o programa fuente) y las convierte en acciones directas.
No produce código ejecutable como sucede en las otras dos modalidades
de traducción. Los programas que se fabriquen con ésta modalidad
requieren el mismo intérprete para poder correr en otra máquina. Si un
producto se hace para 1000 clientes entonces deben existir 1001
intérpretes.
Qué es un compilador ?
Es un traductor que toma el código o programa fuente (escrito en un
lenguaje de alto nivel) y lo convierte en código de bajo nivel o
programa ejecutable. Un producto para 1000 clientes fabricado con un
compilador requiere de solo 1 compilador pues el producto ejecutable es
independiente y corre fuera de la presencia del compilador.
Cuando se usa un compilador cuales son las etapas en
el desarrollo de un programa ?
1. Identificación del problema.
2. Reconocimiento detallado del problema.
3. Análisis y descomposición
4. Descripción rigurosa de las componentes sus relaciones encontradas.
5. Síntesis o recomposición.
6. Registro gráfico o escrito de la solución.
7. Codificación utilizando las reglas de un lenguaje de alto
nivel.
8. Compilación o traducción.
9. Generación de un código ya traducido a formas en bajo nivel pero aún
incompleto.
10. Enlace del programa y otros recursos existentes ya compilados
(propios, de terceros o del Sistema Operativo)
11. Producción del programa ejecutable y almacenamiento en un medio no
volátil.
12. Carga del programa ejecutable desde el medio no volátil
que lo conserva.
13. Puesta en funcionamiento mediante entrega al circuito fetch de la
dirección de la primera instrucción a llevar al procesador para ser
ejecutada (la dirección de tarea o similares en Lexico).
14. Obtención de resultados.
A los pasos 1-6 se les llama fase o etapa de
diseño.
A los pasos 7-11 se les llama fase o etapa de compilación o traducción.
Alos pasos 12-14 se les llama fase o etapa de
ejecución.
Qué es diseñar ?
Es plantear y reconocer propósitos de construcción, buscar
alternativas, sopesar restricciones, trazar estrategias, descomponer,
impulsar coherencias, recomponer y plasmar lo aprehendido.
Qué es un procedimiento ?
Es un derrotero, guión o instructivo a seguir mecánicamente para
generar actividades que solucionen un problema.
Qué es un algoritmo ?
Es cualquier procedimiento que cumpla con 5 características de rigor.
Cuales son las 5 características de los algoritmos ?
1. Entrada de datos: En algunos procedimientos se requiere obtener del
entorno algún dato en otros no hace falta pues todos ya son conocidos.
2. Salida de resultados: Siempre ha de producirse al menos un resultado
producto de aplicar el procedimiento.
3. Finito en su descripción: Todas las instrucciones deben estar
escritas explícitamente, por lo que no valen los términos vagos e
indefinidos usuales en el lenguaje humano tales como: etc., y así
sucesivamente, por ejemplo, o los puntos suspensivos pues ellos
implican un proceso inteligente no exacto.
4. Finito en su realización: debe garantizarse que siguiéndose al pie
de la letra el instructivo debe culminar la tarea en algún instante en
el tiempo para evitar el trabajo eterno.
5. Cada instrucción debe ser posible de efectuar y clara en su
descripción.
Qué relación hay entre los tres conceptos
procedimiento, algoritmo y programa ?
Todo procedimiento no es un algoritmo.
Todo algoritmo no es un programa.
Todo programa no es un algoritmo.
Todo algoritmo es un procedimiento.
Todo programa es un procedimiento.
Qué es compilar un programa ?
Es pedir a un programa procesador de un lenguaje tipo compilador que
reúna los grupos de instrucciones escritas en un lenguaje de alto nivel
que se le indican, las revise y, de estar correctamente escritas bajo
las reglas de ese lenguaje, las convierta a sus equivalentes en un
lenguaje de bajo nivel que use la máquina.
Qué es código o programa fuente ?
Es un grupo de instrucciones escritas siguiendo las reglas de
construcción de un lenguaje de programación.
Qué es código o programa objeto ? (término antiguo
que no tiene relación con POO)
Término antiguo usado en un compilador o en un ensamblador para
describir al producto inicial que ellos generan y que aún no ha sido
ligado con otros recursos existentes ya compilados o ensamblados. El
término no tiene nada que ver con el concepto de objeto de la
programación orientada a objetos.
Qué es ejecutar un programa ?
Es decirle al Sistema Operativo o gran coordinador central de las
actividades de la máquina que debe llevarse un programa a la RAM y
ponerse en funcionamiento (es entregar parte del control del computador
a ese programa para que disponga qué hay que hacer).
Cuales son los pasos recomendados para producir con
rigor programas con calidad ?
1. Entender bien el problema
2. Hacer un análisis detallado
3. Expresar los elementos constitutivos y sus relaciones mediante algún
formalismo.
4. Producir una síntesis reorganizadora de los viejos elementos, con los
nuevos y sus relaciones.
5. Registrar la solución gráfica o textualmente.
6. Codificar en algún lenguaje de programación.
7. Hacerle traducir para producir un ejecutable.
8. Probar el programa ejecutable.
9. Implantar.
Qué es una instrucción ?
Es la descripción de alguna acción a seguir por quien la ejecute.
Qué es una secuencia de instrucciones ?
Es una sucesión de órdenes a llevarse a cabo empezándose con la primera
y rigurosamente pasando a las sucesivas sin saltarse ninguna.
Cuales son las instrucciones básicas para programar ?
Entrada de dato (s): Por ejemplo:
entre x, y, z
permite crear un flujo de datos desde la unidad de entrada hacia la RAM
(particularmente hacia los objetos receptores x, y, z que deben ser
variables para poder ser alterados sus contenidos previos con lo
recibido). En éste caso recibirán en orden el primero, el segundo y el
tercero datos puestos en la unidad de entrada.
Salida de dato (s): Por ejemplo:
muestre “Total = “, total
permite crear un flujo de datos desde la memoria RAM (particularmente
desde los objetos “Total = “ y total) hacia la unidad de salida. Como
puede deducirse, los objetos emisores del dato no necesariamente deben
ser variables pues solo se estará tomando una imagen de su contenido el
cual no cambiará con ésta operación.
Asignar o copiar en un objeto variable el resultado de evaluar una
expresión: Por ejemplo:
copie (A + B) / 2 en M, Q
permite crear un flujo de datos desde la unidad de cálculos hacia la
RAM (particularmente hacia los objetos M, Q que recibirán el dato
producido allí al evaluarse la expresión). Obsérvese que el mismo dato
es asignado a los dos objetos que deben ser variables para poder ser
alterados sus contenidos previos. Evaluar la expresión misma implica el
establecimiento de flujos previos desde la RAM (en éste ejemplo
particularmente desde los objetos A, B y 2) hacia la unidad de cálculos
con el fin de usar esas imágenes de los tres datos para ser utilizadas
con los circuitos + y / o sumador y divisor.
Decidir sobre cual de dos caminos seguir con base en una condición
(según evaluación verdadera o falsa de una expresión)
Repetir la realización de un grupo de instrucciones mientras se cumpla
una condición (evaluación verdadera de una expresión)
Qué es una instrucción de salida de información ?
Salida de dato (s): Por ejemplo: muestre “Total = “, total permite
crear un flujo de datos desde la memoria RAM (particularmente desde los
objetos “Total = “ y total) hacia la unidad de salida. Como puede
deducirse, los objetos emisores del dato no necesariamente deben ser
variables pues solo se estará tomando una imagen de su contenido el
cual no cambiará con ésta operación.
Qué es una instrucción de asignación de información ?
Asignar o copiar en un objeto variable el resultado de evaluar una
expresión: Por ejemplo: copie (A + B) / 2 en M, Q permite crear un
flujo de datos desde la unidad de cálculos hacia la RAM
(particularmente hacia los objetos M, Q que recibirán el dato producido
allí al evaluarse la expresión). Obsérvese que el mismo dato es
asignado a los dos objetos que deben ser variables para poder ser
alterados sus contenidos previos. Evaluar la expresión misma implica el
establecimiento de flujos previos desde la RAM (en éste ejemplo
particularmente desde los objetos A, B y 2) hacia la unidad de cálculos
con el fin de usar esas imágenes de los tres datos para ser utilizadas
con los circuitos + y / o sumador y divisor.
Qué es una instrucción de entrada de información ?
Entrada de dato (s): Por ejemplo: entre x, y, z permite crear un flujo
de datos desde la unidad de entrada hacia la RAM (particularmente hacia
los objetos receptores x, y, z que deben ser variables para poder ser
alterados sus contenidos previos con lo recibido). En éste caso
recibirán en orden el primero, el segundo y el tercero datos puestos en
la unidad de entrada.
Qué es enviar un mensaje a un objeto ?
Es ordenarle realizar una actividad o activar uno de sus
comportamientos. Hay dos formas de hacerlo:
La implícita, destinada a los objetos simples, tiene forma de
operadores básicos y ha sido establecida para conservar la manera usual
de escribir expresiones en la aritmética y el álgebra, por ejemplo:
K+2*(U-4.5)/3 en la que implícitamente se envían los mensajes sume,
multiplique, reste y divida en la forma conocida como infija u
operadores escritos entre los operandos.
La explícita es la forma generalizada en los lenguajes de programación
orientados a objetos y en ella se resaltan explícitamente
el
objeto_receptor y el mensaje enviado separados por un
operador de manejo (el punto) llamado cualificador, así:
objeto_receptor. Mensaje_enviado
Muchas veces el mensaje enviado es acompañado de argumentos u operandos
para que trabaje el algoritmo del objeto_receptor. Éstos se escriben
encerrados entre un par de paréntesis como una lista de objetos
separados con comas. Esta forma es conocida como prefija u operador
escrito antes de los operandos. Cada objeto establece un flujo entre el
objeto emisor del mensaje (donde está escrita la instrucción que se
describe aquí) y el objeto_receptor. Los flujos posibles son doy, deme
o bidireccional, con los que se explicita el sentido del flujo. Debe
tenerse muy presente la regla clásica para un flujo de datos: si vas a
recibir algo debes proporcionar un objeto variable, alterable,
cambiable. Ejemplos:
móvil.vaya_a( doy X, doy Y)
móvil.deme_ubicación(deme calle, deme carrera)
móvil.calcule_distancia_a(doy A, doy B, deme distancia)
En el siguiente ejemplo hay un error de flujo:
avión.establezca(doy color, doy 12, deme identificador, deme 7)
Qué es una estructura ?
Es una forma de organización de elementos, es la disposición de los
elementos de un todo con fines de identificación o manejo.
Qué es una estructura de datos ?
Es una forma de disponer o representar los datos entre un grupo de
ellos.
Qué es una estructura de control lógico ?
Es una forma de organizar la secuencia de ejecución de un grupo de
instrucciones en un computador
Cuales son las estructuras fundamentales de control
lógico ?
Son la secuencia, la decisión y el ciclo mientras.
Cuales son las estructuras no fundamentales de
control lógico más comunes ?
La decisión múltiple o casos, el ciclo para o variando, el ciclo haga
hasta y el ciclo para cada.
Qué es la estructura de control lógico llamada
Secuencia ?
Es la disposición de instrucciones y/o estructuras para ser realizadas
o ejecutadas
en el
estricto orden de la sucesión en que aparecen escritas. Se
encierran por los dos delimitadores { } que significan el
empiece
y
termine ó inicio y fin del bloque de
instrucciones.
Usualmente el grupo se escribe una debajo de la otra para mayor
legibilidad. Por ejemplo:
{
Robot.Avance
Robot.Gire_a_la_izquierda(doy ángulo)
Robot.Retroceda(doy pasos)
}
Qué es la estructura de control lógico llamada
Decisión ?
Es una orden para que el computador decida cual de dos secuencia
realizar dependiendo del resultado de evaluar una expresión lógica. Por
ejemplo:
Es (H<3) & (SALARIO>22000) ?
Si: {
………secuencia
}
No: {
……..secuencia
}
Qué es la estructura de control lógico llamada Ciclo
Mientras ?
Es una orden para que haga una secuencia cada vez que sea verdadera la
evaluación de una expresión. La secuencia puede realizarse 0 o más
veces. Ejemplo:
Copie 0 en i
Mientras i<10 haga:
{
………secuencia
Copie i + 1 en i
}
Será realizada para i= 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9. Afuera del ciclo
la i vale 10 (que es el primer valor que hace falsa la expresión
controladora i<10.
Cómo está conformado por dentro un objeto ?
Está formado por sus miembros.
Qué son los miembros de un objeto ?
Son los atributos y los comportamientos del objeto.
Qué son los atributos de un objeto ?
Los atributos a su vez son otros objetos que permiten contener datos
que representan las características o el estado en el que se encuentra
el objeto.
Qué son los comportamientos de un objeto ?
Los comportamientos son algoritmos o métodos que describen las acciones
u operaciones que puede realizar el objeto. Vistos desde fuera del
objeto son los mensajes que éste "entiende" o a los cuales reacciona.
Qué es un Objeto ?
Ejercicios propuestos