Download Taller fundamentos de programación (460614)

Document related concepts
Transcript
Taller fundamentos de programación
M. Viviana Quevedo Jamaica
Paula A. Barragán Hernández
San Josemaria Escrivá de Balaguer
Chía – Cundinamarca
2014
1003
Taller fundamentos de programación
M. Viviana Quevedo Jamaica
Paula A. Barragán Hernández
Francisco Pinzón
Lic. Tecnología e informática
IED San Josemaria Escrivá de Balaguer
Chía - Cundinamarca
2014
1003
Solución.
1. Definir los siguientes términos:
Proceso: Un proceso es un conjunto de actividades mutuamente relacionadas o
Que, al interactuar, transforman elementos de entrada y los convierten en
resultados, Es la consecución de determinados actos, acciones, sucesos o hechos
que deben necesariamente sucederse para completar un fin específico. Todos
estos pasos o instancias que componen un proceso deben ser organizados,
coordinados y realizados de manera sistemática, de a uno por vez (secuencia
alternativa) o pueden incluso superponerse las instancias (secuencia simultánea).
Proceso es un término que, si bien podemos definir como lo hemos hecho de
manera precisa, refiere a diferentes fines según sobre qué estemos hablando
Actividad: Es el conjunto de acciones que se llevan a cabo para cumplir las metas
de un programa o subprograma de operación, que consiste en la ejecución de
ciertos procesos o tareas (mediante la utilización de los recursos humanos,
materiales, técnicos, y financieros asignados a la actividad con un costo
determinado), y que queda a cargo de una entidad administrativa de nivel
intermedio o bajo. Es una categoría programática cuya producción es intermedia, y
por tanto, es condición de uno o varios productos terminales. La actividad es la
acción presupuestaria de mínimo nivel e indivisible a los propósitos de la
asignación formal de recursos. Conjunto de operaciones o tareas que son
ejecutadas por una persona o unidad administrativa como parte de una función
asignada.
Programar: es el proceso de diseñar, codificar, depurar y mantener el código
fuente de programas computacionales. El código fuente es escrito en un lenguaje
de programación. El propósito de la programación es crear programas que
exhiban un comportamiento deseado.
2. ¿Qué es programación de computadoras?
La programación de computadoras es el arte de hacer que una computadora haga
lo que nosotros queramos En el nivel más simple consiste en ingresar en la
computadora una secuencia de órdenes para lograr un cierto objetivo. En el
entorno de MS DOS los usuarios solían crear archivos de texto con comandos
denominados "archivos por lotes" (.BAT). Estos simplemente ejecutaban la
secuencia de órdenes en lotes, de allí su nombre. Bajo Windows es posible
producir estos archivos, aunque en la práctica no es lo más común. Por ejemplo,
podrías producir un documento (como este tutorial) compuesto por varios archivos
separados. Tu procesador de texto puede crear backups de cada uno de estos
archivos cuando guardas una nueve versión de los documentos. Al final del día,
querés colocar la versión actual del documento, es decir los últimos archivos, en
una carpeta de respaldo. Finalmente, para poner un poco de orden, borras las
versiones previas. Un sencillo archivo BAT para hacer esto sería:
COPY *.HTM BACKUP DEL *.BAK
3. ¿Qué es el lenguaje binario y assembler?
La manera en que las computadoras "hablan entre sí" es conocida por muy pocas
personas. Por eso es que ahora vamos a presentar un poquito acerca de lo que es
el código ASCII, que es "el idioma de las computadoras”. ASCII son las siglas en
inglés de "American Standard Code For Information Interchange", que en español
sería algo como Código Americano Estandarizado para el Intercambio de
Información.
4. ¿Cómo se clasifican los lenguajes de programación?
Los lenguajes de programación se pueden clasificar de acuerdo con diversos
criterios. El criterio más simple que se puede considerar hace referencia a la
proximidad del lenguaje con la máquina o con el lenguaje natural. De acuerdo con
este criterio, existen tres niveles:
• Lenguajes de bajo nivel: Lenguajes máquina.
• Lenguajes de nivel medio: Lenguajes ensambladores y macroensambladores.
• Lenguajes de alto nivel: El resto de los lenguajes, a los que ya hemos hecho
referencia.
Dado que los lenguajes de programación, en cierto modo, han tenido un desarrollo
paralelo a la evolución de los ordenadores, se pueden clasificar atendiendo a su
desarrollo histórico. Esta clasificación distingue cinco generaciones de lenguajes:
• Primera generación: Lenguajes máquina.• Segunda generación: Ayudas a la
programación, como los ensambladores.
• Tercera generación: Lenguajes de alto nivel imperativos, que siguen vigentes en
la actualidad, como Pascal, Modula• 2, Fortran, Cobol, C y Ada.
• Cuarta generación: Lenguajes o entornos de programación orientados
básicamente a aplicaciones de gestión y bases de datos, como SQL, Natural, etc.
5. ¿Que son lenguajes de programación de alto, medio y bajo nivel? Con ejemplos
Clasificaciones de los lenguajes de alto nivel
La siguiente clasificación:
Aplicaciones científicas: En las que predominan las operaciones numéricas o
matriciales propias de algoritmos matemáticos. Lenguajes adecuados para estas
aplicaciones son Fortran y Pascal.
Aplicaciones de procesamiento de datos: Donde son frecuentes las operaciones
de creación, mantenimiento y consulta sobre ficheros y bases de datos. Dentro de
este campo estarían aplicaciones de gestión empresarial, como programas de
nóminas, contabilidad, facturación, control de inventario, etc. Lenguajes aptos para
este tipo de aplicaciones son Cobol y SQL.
Aplicaciones de tratamiento de textos: Asociadas al manejo de textos en lenguaje
natural. Lenguajes adecuados para ello son el Snobol y el C.
Aplicaciones en inteligencia artificial: Realización de programas que emulan el
comportamiento inteligente: algoritmos de juegos, programas de comprensión del
lenguaje natural, visión artificial, robótica y sistemas expertos. Los lenguajes que
se suelen utilizar en estos casos son el Lisp y el Prolog.
Aplicaciones de programación de sistemas: Programación de módulos de
sistemas operativos, compiladores, ensambladores, intérpretes y, en general,
aquellos de interfaz entre el hardware y los usuarios. Tradicionalmente se utilizaba
el lenguaje ensamblador, pero en la actualidad se muestran muy adecuados los
lenguajes Ada, C y Modula• 2.Otra forma de clasificar los lenguajes de alto nivel
tiene en cuenta el estilo de programación que fomentan, es decir, la filosofía de
construcción de programas:
Lenguajes imperativos o procedurales. Estos lenguajes se fundamentan en el uso
de variables para almacenar valores y el uso de instrucciones que indican las
operaciones a realizar sobre los datos. La mayoría de los lenguajes de alto nivel
son de este tipo.Lenguajes declarativos. En este caso, el proceso por el cual se
ejecuta el programa no aparece de forma explícita. Los programas se construyen
mediantela definición de funciones (lenguajes funcionales como Lisp) o
expresiones lógicas que indican las relaciones entre determinadas estructuras de
datos (lenguajes de programación lógica como Prolog).
Lenguajes orientados a objetos. El diseño de los programas se centra más enlos
datos y su estructura. Los programas consisten en descripciones de unidades
denominadas objetos que encapsulan los datos y las operaciones que actúan
sobre ellos. Uno de los lenguajes más usados en esta filosofía es el C++.
Lenguajes orientados al problema. Este tipo de lenguajes están diseñados para
problemas específicos, principalmente de gestión. Los programas están formados
por sentencias que indican qué se quiere hacer. Generalmente, suelen ser
generadores de aplicaciones que permiten cierta automatización de la tarea de
desarrollo de software de gestión.
• Quinta generación: Lenguajes orientados a aplicaciones en Inteligencia Artificial,
como Lisp y Prologo. Lenguaje de Programación de Medio NivelLa clasificación
de lenguajes de programación, mediante un nivel de abstracción medio, es
bastante discutible. Personalmente sostengo sólo por dos niveles de abstracción:
bajo nivel y alto nivel. Sin perjuicio de ello, se plasmarán aquí, aquellos
argumentos sostenidos, por quienes aceptan este tercer nivel de clasificación.
Quienes sostienen la clasificación de lenguajes de programación medio,
argumentan que éstos, son aquellos lenguajes que se encuentran, justamente,
entre los de bajo nivel y los de alto nivel, ya que poseen características que
permiten interactuar directamente con el sistema. Un ejemplo de ello, sería el
lenguaje C, el cual puede trabajar (entre otras características) con direcciones de
memoria. Sin embargo, dicho acceso, no es efectuado de forma directa (a través
de lenguaje máquina o ensamblador), sino que requiere ser “traducido”
previamente por su compilador. Por dicha razón, es que asumo a C como lenguaje
de alto nivel y descarto la clasificación de lenguajes de medio nivel. Suele
colocarse como ejemplo de lenguaje de programación de medio nivel, anterior a C,
a BCPL [4], diseñado para escribir Sistemas Operativos y Compiladores.
Lenguajes de Programación de Bajo Nivel
Los lenguajes de bajo nivel, son aquellos que dependen intrínsecamente del
ordenador. Aquellos programas informáticos, programados con lenguajes de bajo
nivel, al ser exclusivamente dependientes del hardware, no pueden migrarse, ya
que están justamente diseñados, para un hardware específico. Existen dos tipos
de lenguajes de bajo nivel: el lenguaje máquina y el lenguaje ensamblador.
El lenguaje de máquina (también denominado lenguaje de primera generación)
es el sistema de códigos directamente interpretable por un circuito micro
programable, como el microprocesador de una computadora o el micro controlador
de un autómata. Este lenguaje está compuesto por un conjunto de instrucciones
que determinan acciones a ser tomadas por la máquina. Un programa consiste en
una cadena de estas instrucciones de lenguaje de máquina (más los datos). Estas
instrucciones son normalmente ejecutadas en secuencia, con eventuales cambios
de flujo causados por el propio programa o eventos externos. El lenguaje de
máquina es específico de cada máquina o arquitectura de la máquina, aunque el
conjunto de instrucciones disponibles pueda ser similar entre ellas. Función en 32bits en código de maquina x86, para calcular el enésimo número dela serie de
Fibonacci.
Un lenguaje ensamblador o assembler (assembly lenguaje):
Es un lenguaje de programación de bajo nivel para los ordenadores,
microprocesadores, micro controladores, y otros circuitos integrados
programables. Implementa una representación simbólica de los códigos de
máquina binarios y otras constantes necesarias para programar una arquitectura
dada de CPU y constituye la representación más directa del código máquina
específico para cada arquitectura legible por un programador. Esta representación
es usualmente definida por el fabricante de hardware, y está basada en los
mnemónicos que simbolizan los pasos de procesamiento (las instrucciones), los
registros del procesador, las posiciones de memoria, y otras características del
lenguaje. Un lenguaje ensamblador es por lo tanto, específico a cierta arquitectura
de computador física (o virtual). Esto está en contraste con la mayoría de los
lenguajes de programación de alto nivel, que, idealmente son portables. Este
lenguaje, también es conocido como lenguaje de segunda generación.
6. ¿Cuáles son las ventajas y desventajas de los lenguajes de programación?
Ventajas:
- El lenguaje C ha sido pensado para ser altamente transportable.
-Un núcleo del lenguaje simple, con funcionalidades añadidas importantes, como
funciones matemáticas y de manejo de archivos, proporcionadas por bibliotecas.
- Es un lenguaje muy flexible que permite programar con múltiples estilos. Uno de
los más empleados es el estructurado "no llevado al extremo" (permitiendo ciertas
licencias de ruptura).
-Un sistema de tipos que impide operaciones sin sentido.
-Usa un lenguaje de pre-procesado, el preprocesador de C, para tareas como
definir macros e incluir múltiples archivos de código fuente.
- Acceso a memoria de bajo nivel mediante el uso de punteros.
- Interrupciones al procesador con uniones.
- Un conjunto reducido de palabras clave.
- Por defecto, el paso de parámetros a una función se realiza por valor. El paso
por referencia se consigue pasando explícitamente a las funciones las direcciones
de memoria de dichos parámetros.
- Punteros a funciones y variables estáticas, que permiten una forma rudimentaria
de encapsulado y polimorfismo Desventajas: Al igual que otros lenguajes tiene sus
inconvenientes como:
- Recolección de basura nativa, sin embargo se encuentran a tal efecto bibliotecas
como la "libgc" desarrollada por Sun Microsystems, o el Recolector de basura de
Boehm.
- Soporte para programación orientada a objetos, aunque la implementación
original de C++ fue un preprocesador que traducía código fuente de C++ a C.
- Encapsulación.
-Funciones anidadas, aunque GCC tiene esta característica como extensión.
- Polimorfismo en tiempo de código en forma de sobrecarga, sobrecarga de
operadores y sólo dispone de un soporte rudimentario para la programación
genérica.
- Soporte nativo para programación multihilo y redes de computadores.
- Carece de instrucciones de entrada/salida, de instrucciones para manejo de
cadenas de caracteres, con lo que este trabajo queda para la librería de rutinas,
con la consiguiente pérdida de transportabilidad.
7. ¿Que son las palabras reservadas en programación?
En los lenguajes informáticos, una palabra reservada es una palabra que tiene un
significado gramatical especial para ese lenguaje y no puede ser utilizada como un
identificador de objetos en códigos del mismo, como ser variables.Por ejemplo, en
SQL, un usuario no puede ser llamado "group", porque la palabra group es usada
para indicar que un identificador se refiere a un grupo, no a un usuario. Al tratarse
de una palabra clave su uso queda restringido.
8. ¿Qué es la sintaxis de un lenguaje de programación?
La sintaxis de un lenguaje de programación es el conjunto de reglas que debemos
seguir para que el compilador sea capaz de reconocer nuestro programa como un
programa C valido.
9. ¿Qué son los lenguajes de la quinta generación?
Es una clasificación para los lenguajes de programación que incluye aquellos que
emplean la programación con restricciones para resolver problemas, en lugar de
emplear algoritmos escritos por el programador. La mayoría de los lenguajes
basados en restricciones, los lenguajes de programación lógica y los declarativos,
son lenguajes de quinta generación.
10. Buscar 5 programas de creación de juegos
- KPL - Facilita la programación de videojuegos, con impresionantes gráficas y
sonidos.
- Basic4GL - Programación en BASIC para Windows con soporte OpenGL (2D y
3D)
- Panda3D - Engine 3D gratuito usado en la creación de ToonTown por Disney.
(Python, C++)
- Glest - Juego de estrategia (RTS) en 3D completamente personalizable y
gratuito.
- Kaneva - Sistema para la creación de juegos multijugador en línea (MMO
games). En estado Beta.
- Blink 3D - Creador de escenas 3D para uso en internet (juegos, educación,
machinima). (Alpha).