miércoles, 8 de octubre de 2014
Capitulo 1.3: Clasificación de computadoras
Introducción
En esta actividad o investigación se hablara de los
distintos tipos de clasificar una computadora, en el aspecto general. Sin más
que contar comencemos.
Supercomputadoras
Las computadoras / ordenadores más potentes de todas, muy
rápida, de gran longitud de palabra. Tienen en su gran mayoría varios (muchos)
procesadores, trabajando a la vez (en paralelo) y logran procesar miles de
millones de operaciones por segundo.
Se utilizan para realizar simulaciones de procesos muy
complejos con una gran cantidad de datos (análisis del genoma humano,
simulación de explosiones nucleares, predicciones meteorológicas, etc.). Se
instalan en ambientes controlados debido a su gran generación de calor.
Macro computadoras (Mainframes)
Computadoras de uso general, también se instalan en
ambientes controlados. Tiene gran capacidad de procesamiento y capacidad de
manejo de puertos de entrada y salida.
Por tener gran capacidad de almacenamiento, esta computadora
es capaz de tener conexión simultánea con muchas terminales. Se utiliza mucho
en las empresas de gran tamaño como bancos, etc. Es capaz de realizar varios
millones de operaciones por segundo.
Minicomputadoras
Las microcomputadoras aparecieron en el mercado con el
propósito de dar servicio a empresas e instituciones de tamaño más pequeño que
las que utilizan mainframes.
Tiene características parecidas a las de las mainframes,
pero con menores prestaciones en velocidad, tamaño de memoria, capacidad de
almacenamiento y número de terminales que puede aceptar.
Estaciones de trabajo (Workstations)
Son computadoras que normalmente sirven para conectarse a
una computadora más grande a través de una red, con gran capacidad de
procesamiento.
Computadoras personales (PC)
Se llaman así a todas las computadoras como la IBM PC o
compatibles y modelos similares posteriores. También a las computadoras
Macintosh de APPLE y modelos similares posteriores.
Son microcomputadoras que tienen bajo precio con gran
disponibilidad de hardware y software debido a su popularidad.
Dentro de este grupo se incluyen las computadoras portátiles
como las LapTops.
También están las Notebooks que son un poco más pequeñas que
las Laptops, las Netbooks, que son computadoras portátiles pequeñas,
principalmente para navegar en Internet y finalmente están las PDA (Personal
Digital Assistant - Asistente Digital Personal) con muchas menos prestaciones
que las computadoras personales anteriores.
Conclusiones
Es interesante la información, en particular la de las
supercomputadoras, en el que dice que las mismas tienen que tener ambiente
controlado por la gran generación o emanación de calor, me lo imagine en como
estaría todo el espacio donde se encuentra una supercomputadoras, y sin duda
solo estas son las clasificaciones de las computadoras, en el aspecto general,
ya que pueden ser clasificados por el tipo de procesador o cuantos GHz tiene el
mismo procesador, dimensiones, entre otras cosas. No menciono más ejemplos,
porque no lo he investigado a fondo de esa manera de clasificar (más
especifica).
Bibliografía
* Tipos de computadoras, Recuperado el 9 de Septiembre del 2014: http://www.unicrom.com/Cmp_tipos_computadoras.asp
Capitulo 3.3: Organización de los programas: algoritmos y estructura de datos
Organización de los programas: algoritmos
y estructura de datos
Algoritmo:
Secuencia de acciones o pasos que permite
resolver un problema. Un mismo problema puede ser resuelto con distintos
algoritmos.
Estructuras de datos
En el desarrollo de programas, existe una fase
previa a la escritura del programa, esta es el diseño del algoritmo que
conducirá a la solución del problema, en esta fase también deberá considerarse
la estructura de datos que se va a utilizar. El término estructura de datos se
refiere a la forma en que la información está organizada dentro de un programa.
La correcta organización de datos puede
conducir a algoritmos más simples y más eficientes.
Estructura de datos:
Conjunto de variables agrupadas y organizadas
de cierta forma para representar un comportamiento.
Estructuras de datos estáticas:
Son aquellas cuyo tamaño en memoria es fijo,
por ejemplo, los arreglos.
Estructuras de datos dinámicas:
Son las estructuras que permiten variar su tamaño
en memoria de acuerdo a las necesidades del ambiente, por ejemplo, listas
enlazadas.
Referencias
* http://fcqi.tij.uabc.mx/usuarios/palacios/UNIDAD%201%20%20Introduccion%20a%20los%20algoritmos%20y%20Estructuras%20de%20Datos.pdf
* https://www.youtube.com/watch?v=PWgVXuQKrdo
* https://www.youtube.com/watch?v=yE0aMD5IueE
Referencias
* http://fcqi.tij.uabc.mx/usuarios/palacios/UNIDAD%201%20%20Introduccion%20a%20los%20algoritmos%20y%20Estructuras%20de%20Datos.pdf
* https://www.youtube.com/watch?v=PWgVXuQKrdo
* https://www.youtube.com/watch?v=yE0aMD5IueE
Capitulo 3.2: Lenguajes y entorno de programación
Lenguajes y entorno de programación
Hay distintos lenguajes que nos
permiten dar instrucciones a un ordenador (un programa de ordenador
es básicamente eso: un conjunto de órdenes para un ordenador).
El lenguaje más directo es el propio
del ordenador, llamado "lenguaje de máquina" o "código máquina",
formado por secuencias de ceros y unos. Este lenguaje es muy poco intuitivo
para nosotros, y difícil de usar. Por ello se recurre a otros lenguajes más
avanzados, más cercanos al propio lenguaje humano (lenguajes de alto nivel), y
es entonces el mismo ordenador el que se encarga de convertirlo a algo que
pueda manejar directamente.
Se puede distinguir dos tipos de
lenguajes, según se realice esta conversión:
En los intérpretes, cada instrucción que
contiene el programa se va convirtiendo a código máquina
antes de ejecutarla, lo que hace que sean más lentos (a cambio, los
intérpretes suelen ser más fáciles de crear, lo que permite que sean baratos y
que puedan funcionar en ordenadores con menor potencia).
En los compiladores, se convierte todo el
programa en bloque a código máquina y después se ejecuta. Así, hay que esperar
más que en un intérprete para comenzar a ver trabajar el programa, pero después
éste funciona mucho más rápido (a cambio, los compiladores son más
caros y suelen requerir ordenadores más potentes).
Hay lenguajes para los que sólo hay
disponibles intérpretes, otros para los que sólo existen compiladores, y otros
en los que se puede elegir entre ambos. La mayoría de los lenguajes actuales son
compilados, y el entorno de desarrollo suele incluir:
Un editor para escribir o revisar
los programas.
El compilador propiamente dicho, que
los convierte a código máquina.
Otros módulos auxiliares, como
enlazadores (linkers) para unir distintos subprogramas, y depuradores
(debuggers) para ayudar a descubrir errores.
Es cada vez más frecuente que todos estos
pasos se puedan dar desde un único "entorno integrado".
Por ejemplo, el entorno de Turbo Pascal tiene
la siguiente apariencia:
Algunos de los lenguajes más difundidos son:
BASIC, que durante mucho tiempo se
ha considerado un buen lenguaje para comenzar a aprender, por su sencillez,
aunque se podía tender a crear programas poco legibles. A pesar de esta
"sencillez" hay versiones muy potentes, incluso para programar en
entornos gráficos como Windows.
COBOL, que fue muy utilizado para negocios (para
crear software de gestión, que tuviese que manipular grandes
cantidades de datos), aunque últimamente está bastante en desuso.
FORTRAN, concebido para ingeniería, operaciones matemáticas,
etc. También va quedando desplazado.
Ensamblador, muy cercano al código máquina (es
un lenguaje de "bajo nivel"), pero sustituye las secuencias de ceros
y unos (bits) por palabras más fáciles de recordar, como MOV, ADD, CALL o JMP.
C, uno de los mejor considerados actualmente
(junto con C++ y Java, que mencionaremos a continuación), porque no es
demasiado difícil de aprender y permite un grado de control del
ordenador muy alto, combinando características de lenguajes de alto y bajo
nivel. Además, es muy transportable: existe un estándar, el ANSI C, lo que
asegura que se pueden convertir programas en C de un ordenador a otro o de un sistema
operativo a otro con bastante menos esfuerzo que en otros lenguajes.
C++, un lenguaje desarrollado a partir de C,
que permite Programación Orientada a Objetos, por lo que resulta más
adecuado para proyectos de una cierta envergadura.
Java, desarrollado a su vez a partir de C++,
que elimina algunos de sus inconvenientes, y ha alcanzado una gran difusión
gracias a su empleo en Internet.
PASCAL, el lenguaje estructurado por
excelencia (ya se irá viendo qué es esto más adelante), y que en algunas
versiones tiene una potencia comparable a la del lenguaje C, como es el
caso de Turbo Pascal en programación para DOS y de Delphi en
la programación para Windows. Frente al C tiene el inconveniente de que es
menos portable, y la ventaja de que en el caso concreto de la
programación para DOS, Turbo Pascal no tiene nada que envidiar la mayoría de
versiones del lenguaje C en cuanto a potencia, y además resulta más
fácil de aprender, es muy rápido, crea ficheros EXE más pequeños, etc.,
mientras que en la programación para Windows, Delphi es una muy buena
herramienta para crear aplicaciones de calidad en un tiempo
razonablemente breve.
Dos conceptos que se mencionan mucho al hablar
de programación son "programación estructurada" y "programación
orientada a objetos".
La programación estructurada consiste
en dotar al programa de un cierto orden, dividiéndolo en bloques independientes
unos de otros, que se encargan de cada una de las tareas necesarias. Esto hace
un programa más fácil de leer y modificar.
La programación orientada a objetos se
tratará más adelante, cuando ya se tenga una buena base de programación
"convencional". Como simple comentario, para que vayan sonando las
cosas a conocidas, diré que "Objects Pascal" es el nombre que se
suele dar a un lenguaje Pascal que permita programación orientada a objetos
(como es el caso de Turbo Pascal), y que "C++" es una ampliación del
lenguaje C, que también soporta P.O.O.
Referencias
Suscribirse a:
Entradas (Atom)