Lexico
...el poder de lo simple...
Enero.27.2011

Conceptos fundamentales en programación


La orientación a objetos es uno de los paradigmas de programación más utilizados en el mundo. Ha mostrado ser de gran utilidad y apoyo pues facilita la labor. Uno de sus grandes propósitos ha sido facilitar la reutilización del código con el fin de agilizar el desarrollo de las aplicaciones. Pensamiento elaborado, pensamiento registrado, pensamiento reutilizado.

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