Vous êtes sur la page 1sur 8

PROGRAMACION BASICA

1.1 BREVE RESEÑA DE LA COMPUTACION


Las ciencias de la computación o ciencias computacionales son aquellas que abarcan las
bases teóricas de la información y la computación, así como su aplicación en sistemas
computacionales. Existen diversos campos o disciplinas dentro de las ciencias de la
computación o ciencias computacionales; algunos resaltan los resultados específicos del
cómputo (como los gráficos por computadora), mientras que otros (como la teoría de
la complejidad computacional) se relacionan con propiedades de los algoritmos usados al
realizar cómputos y otros se enfocan en los problemas que requieren la implementación de
cómputos. Por ejemplo, los estudios de la teoría de lenguajes de programación describen un
cómputo, mientras que la programación de computadoras aplica lenguajes de
programación específicos para desarrollar una solución a un problema computacional
específico.

1.2 IMPACTO DE LA COMPUTADORA EN LA SOCIEDAD


Aún las computadoras que simplemente son para tenerlas en casa, en la oficina, en el
negocio, etc. presentan múltiples ventajas, estamos en un punto en el que la sociedad se ha
apropiado tanto del uso de la computadora que para cualquier miembro de la familia, desde
el más grande al más pequeño, ésta máquina tiene su beneficio personal.

Si bien es cierto que las computadoras han hecho de una u otra manera que la comunicación
sea más rápida y efectiva, uniendo a iles de personas que tienen la capacidad y oportunidad
de conectarse a la red, también lo es, el hecho de que ésta herramienta discrimina a esa
parte de la población que no tiene acceso a ella. Es cuestión de globalizar el uso de la
computadora y la conexión vía internet para disminuir el impacto social que esta ha
generado; nadie dice que es una tarea fácil, pero es necesaria, ya que al convertirse estas
herramientas en el estilo de vida de la sociedad, es injusto no contribuir en la integración
global de esa minoría.

Es evidente que la tecnología ha marcado la pauta en la evolución de la sociedad moderna,


brindándole a parte de un crecimiento en este campo un gran avance de tipo económico y
cultural. Actualmente las computadoras han pasado de ser un lujo a ser una necesidad, ya
que nos facilitan algunas actividades permitiéndonos ahorrar tiempo y dinero en la mayoría
de los casos.

Estas máquinas están fabricadas para todos los gustos y preferencias, además, se acomodan
a todo tipo de necesidades, a tal punto, que gracias a las mejoras que han tenido, es posible
que personas que viajan de una ciudad a otra o que simplemente se movilizan
constantemente y, que necesitan un instrumento de trabajo que puedan llevar a todos los
lugares y que guarde la información necesaria para llevar a cabo de una manera eficaz y
eficiente sus labores, ya pueden contar con este tipo de computadoras portátiles.

Lo que nos preocupa actualmente es la deshumanización en la que se está viendo envuelta


la sociedad a partir de los avances tecnológicos que han tenido lugar. Es entonces, de gran
relevancia advertir que, aunque las computadoras son parte de nuestra vida haciéndola un
poco más fácil, no podemos perder la naturaleza humana y el dominio del hombre sobre
éstas. Es de vital importancia saber que si perdemos nuestra esencia como humanos
dejando todo a manos de las computadoras, entonces, éstas ya no serán parte de nuestra
vida sino que seríamos parte de su vida.

1.3 DEFINICIONES

1.3.1 LENGUAJE DE ALTO NIVEL


Un lenguaje de programación de alto nivel se caracteriza por expresar los algoritmos de una
manera adecuada a la capacidad cognitiva humana, en lugar de la capacidad ejecutora de
las máquinas.

Otra limitación de los lenguajes de nivel bajo es que se requiere de ciertos conocimientos
de programación para realizar las secuencias de instrucciones lógicas. Los lenguajes de alto
nivel se crearon para que el usuario común pudiese solucionar un problema de
procesamiento de datos de una manera más fácil y rápida.

Por esta razón, a finales de los años 1950 surgió un nuevo tipo de lenguajes de
programación que evitaba estos inconvenientes, a costa de ceder un poco en las ventajas.
Estos lenguajes se llaman de tercera generación o de nivel alto, en contraposición a los de
bajo nivel o de nivel próximo a la máquina.
Bajo nivel y maquina
En los primeros lenguajes de nivel bajo la limitación era que se orientaban a un área
específica y sus instrucciones requerían de una sintaxis predefinida. Se clasifican como
lenguajes procedimentales.

Un lenguaje de programación de bajo nivel es aquel en el que sus instrucciones ejercen un


control directo sobre el hardware y están condicionados por la estructura física de la
computadora que lo soporta.

Dicho lenguaje es muy simple o nada complicado, pero estructurar programas a ese nivel es
muy difícil. Dado que este lenguaje viene dado por las especificaciones técnicas del
hardware, no permite una abstracción fuera de lo estipulado para el microprocesador de un
ordenador. Consecuentemente, es fácilmente trasladado a lenguaje de máquina.

La estructura de los lenguajes son como sigue:

0. Código Binario - Es el lenguaje básico, sólo admite positivo (1) o negativo (0). Todo
sistema informático está basado en este código, ya que el positivo quiere decir que se
permite el paso de la electricidad y el negativo no lo permite.

1. Lenguaje Máquina - Las invocaciones a memoria, como los procesos aritmético lógicos
son posiciones literales de conmutadores físicos del hardware en su representación
booleana. Estos lenguajes son literales de tareas.

2. Lenguajes de bajo nivel - Son instrucciones que ensamblan los grupos de conmutadores
necesarios para expresar una mínima lógica aritmética. Están íntimamente vinculados al
hardware. Por norma general están disponibles a nivel firmware, cmos o chip set. Estos
lenguajes están orientados a procesos. Los procesos se componen de tareas. Contienen
tantas instrucciones como la arquitectura del hardware así haya sido diseñada.

Por ejemplo: La arquitectura CISC contiene muchas más instrucciones a este nivel, que la
RISC.

Son denominados como ensambladores de un hardware concreto, o kernel.

3. Lenguajes de medio nivel - Son aquellos que, basándose en los juegos de instrucciones
disponibles (chip set), permiten el uso de funciones a nivel aritmético, pero a nivel lógico
dependen de literales en ensamblador. Estos lenguajes están orientados a procedimientos.
Los procedimientos se componen de procesos.

Ejemplos: C, Basic.

4. Lenguajes de alto nivel - Son aquellos que permiten una máxima flexibilidad al
programador a la hora de abstraerse o de ser literal. Permiten un camino bidireccional entre
el lenguaje máquina y una expresión casi oral entre la escritura del programa y su posterior
compilación. Estos lenguajes están orientados a objetos. Los objetos se componen de
propiedades cuya naturaleza emerge de procedimientos.

Ejemplos: C++, Fortran, Cobol, Lisp.

Ejemplos: Visual Basic para aplicaciones.

E.B. Lenguajes de redes - Son aquellos que se basan en un convenio de instrucciones


totalmente independientes de la máquina, y completamente dependientes de la red a la que
están orientadas. Se dividen en descriptivos (HTML, XML, VML), de cliente-Servidor
(Java, PHP) y de script.

1.3.2 COMPILADOR
Un compilador es un programa que permite traducir el código fuente de un programa en
lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina).
De esta manera un programador puede diseñar un programa en un lenguaje mucho más
cercano a como piensa un ser humano, para luego compilarlo a un programa más manejable
por una computadora.

La construcción de un compilador involucra la división del proceso en una serie de fases


que variará con su complejidad. Generalmente estas fases se agrupan en dos tareas: el
análisis del programa fuente y la síntesis del programa objeto.

1.3.3 TRADUCTOR
Un traductor es un programa que recibe como entrada código escrito en un cierto lenguaje y
produce como salida código en otro lenguaje, generalmente el lenguaje de entrada es de
más alto nivel que el de salida, por ejemplo, los traductores son los ensambladores y los
compiladores.

1.3.4 SISTEMA NUMÉRICO


Los sistemas de numeración son las distintas formas de representar la información
numérica. Se nombran haciendo referencia a la base, que representa el número de dígitos
diferentes para representar todos los números.

Sistema Binarios: Es el sistema de numeración que utiliza internamente hardware de las


computadoras actuales. Se basa en la representación de cantidades utilizando los dígitos 1 y
0, por tanto su base es dos (numero de dígitos de sistemas). Cada digito de un número
representado en este sistema se representa en BIT (contracción de binary digit).
1.3.5 ARQUITECTURA DE COMPUTADORAS
La arquitectura de computadoras es el diseño conceptual y la estructura operacional
fundamental de un sistema de computadora. Es decir, es un modelo y una descripción
funcional de los requerimientos y las implementaciones de diseño para varias partes de una
computadora, con especial interés en la forma en que la unidad central de proceso (UCP)
trabaja internamente y accede a las direcciones de memoria.

1.3.6 SISTEMAS OPERATIVOS


Un sistema operativo (SO, frecuentemente OS, del inglés Operating System) es un
programa o conjunto de programas que en un sistema informático gestiona los recursos de
hardware y provee servicios a los programas de aplicación, ejecutándose en modo
privilegiado respecto de los restantes y anteriores próximos y viceversa.2

Uno de los propósitos del sistema operativo que gestiona el núcleo intermediario consiste
en gestionar los recursos de localización y protección de acceso del hardware, hecho que
alivia a los programadores de aplicaciones de tener que tratar con estos detalles. La mayoría
de aparatos electrónicos que utilizan microprocesadores para funcionar, llevan incorporado
un sistema operativo (teléfonos móviles, reproductores de DVD, computadoras, radios,
enrutadores, etc.). En cuyo caso, son manejados mediante una Interfaz Gráfica de Usuario,
un gestor de ventanas o un entorno de escritorio, si es un celular, mediante una consola o
control remoto si es un DVD y, mediante una línea de comandos o navegador web si es un
enrutador.

1.4 DESCRIPCION DE TIPOS DE PROGRAMACIÓN

1.4.1 PROGRAMACION ESTRUCTURADA


La programación estructurada es un paradigma de programación orientado a mejorar la
claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando
únicamente subrutinas y tres estructuras: secuencia, selección (if y switch) e iteración
(bucles for y while), considerando innecesario y contraproducente el uso de la instrucción
de transferencia incondicional (GOTO), que podría conducir a "código espagueti", que es
mucho más difícil de seguir y de mantener, y era la causa de muchos errores de
programación.

Surgió en la década de 1960, particularmente del trabajo Böhm y Jacopini,1 y una famosa
carta, La sentencia goto considerada perjudicial, de Edsger Dijkstra en 19682 — y fue
reforzado teóricamente por el teorema del programa estructurado, y prácticamente por la
aparición de lenguajes como ALGOL con adecuadas y ricas estructuras de control.
1.4.2 LA PROGRAMACIÓN ORIENTADA A OBJETOS
POO (OOP según sus siglas en inglés) es un paradigma de programación que usa los
objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está
basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo,
acoplamiento y encapsulamiento. Su uso se popularizó a principios de la década de los años
1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan
la orientad a objetos. Los objetos son entidades que tienen un determinado estado,
comportamiento (método) e identidad:

El estado está compuesto de datos o informaciones; serán uno o varios atributos a los que se
habrán asignado unos valores concretos (datos).

El comportamiento está definido por los métodos o mensajes a los que sabe responder
dicho objeto, es decir, qué operaciones se pueden realizar con él.

La identidad es una propiedad de un objeto que lo diferencia del resto; dicho con otras
palabras, es su identificador (concepto análogo al de identificador de una variable o una
constante).

Los métodos (comportamiento) y atributos (estado) están estrechamente relacionados por la


propiedad de conjunto. Esta propiedad destaca que una clase requiere de métodos para
poder tratar los atributos con los que cuenta. El programador debe pensar indistintamente
en ambos conceptos, sin separar ni darle mayor importancia a alguno de ellos. Hacerlo
podría producir el hábito erróneo de crear clases contenedoras de información por un lado y
clases con métodos que manejen a las primeras por el otro. De esta manera se estaría
realizando una programación estructurada camuflada en un lenguaje de programación
orientado a objetos.

La POO difiere de la programación estructurada tradicional, en la que los datos y los


procedimientos están separados y sin relación, ya que lo único que se busca es el
procesamiento de unos datos de entrada para obtener otros de salida. La programación
estructurada anima al programador a pensar sobre todo en términos de procedimientos o
funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan.
En la programación estructurada solo se escriben funciones que procesan datos. Los
programadores que emplean Programación Orientada a Objetos, en cambio, primero
definen objetos para luego enviarles mensajes solicitándoles que realicen sus métodos por
sí mismos.
1.4.3 PROGRAMACION DE DESCRIPCION DE HARDWARE
SISTEMAS NUMERICOS
Un lenguaje de descripción de hardware (HDL, Hardware Description Language) permite
documentar las interconexiones y el comportamiento de un circuito electrónico, sin utilizar
diagramas esquemáticos.

El flujo de diseño suele ser típico:

Definir la tarea o tareas que tiene que hacer el circuito.

Escribir el programa usando un lenguaje HDL. También existen programas de captura de


esquemas que pueden hacer esto, pero no son útiles para diseños complicados.

Comprobación de la sintaxis y simulación del programa.

Programación del dispositivo y comprobación del funcionamiento.

Un rasgo común a estos lenguajes suele ser la independencia del hardware y la modularidad
o jerarquía, es decir, una vez hecho un diseño éste puede ser usado dentro de otro diseño
más complicado y con otro dispositivo compatible.

1.5 LENGUAJES DE PROGRAMACIÓN


Un lenguaje de programación es un lenguaje formal diseñado para expresar procesos que
pueden ser llevados a cabo por máquinas como las computadoras.

Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una
máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.1

Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su
estructura y el significado de sus elementos y expresiones. Al proceso por el cual se
escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código fuente
de un programa informático se le llama programación.

También la palabra programación se define como el proceso de creación de un programa de


computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes
pasos:

El desarrollo lógico del programa para resolver un problema en particular.


Escritura de la lógica del programa empleando un lenguaje de programación específico
(codificación del programa).

Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.

Prueba y depuración del programa.

Desarrollo de la documentación.

Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y
'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de
programación y a otros más, como por ejemplo HTML (lenguaje para el marcado de
páginas web que no es propiamente un lenguaje de programación, sino un conjunto de
instrucciones que permiten diseñar el contenido de los documentos).

Permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo
deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de
circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo
al lenguaje humano o natural. Una característica relevante de los lenguajes de
programación es precisamente que más de un programador pueda usar un conjunto común
de instrucciones que sean comprendidas entre ellos para realizar la construcción de un
programa de forma colaborativa.