Está en la página 1de 25

Tecnolgico de Estudios Superiores de Cuautitln Izcalli

Organismo Pblico Descentralizado del Estado de Mxico

SISTEMAS COMPUTACIONALES

Autor: Priscila Tafolla Astorga

Co-autores: Cortez Gallardo Jesus Amaury Jimnez Lpez Maribel Pedrozo Monroy Mara Lucero

Av. Nopaltepec S/N FRACCION LA COYOTERA DEL EJIDO SAN ANTONIO CUAMATLA, CUAUTITLAN IZCALLI, ESTADO DE MEXICO C.P.54748 www.tesci.edu.mx Tel.58737337, 58688748, 58683851

INDICE PAGINA

INTRODUCCIN PLANTEAMIENTO DE PROBLEMA JUSTIFICACIN OBJETIVOS HIPTESIS VIABILIDAD FACTIBILIDAD IMPACTO SOCIAL IMPACTO ECONMICO IMPACTO TCNICO INNOVACIN TALENTO MATERIALES NORMATIVIDAD PROGRAMAS CONCLUSIONES BIBLIOGRAFA

3 4 5 6 7 8 9 10 11 12 13 14 15 16 24 25 26

INTRODUCCION La ingeniera en sistemas computacionales es un modo de enfoque interdisciplinario que permite estudiar y comprender la realidad. Puede verse como la aplicacin tecnolgica de la teora de sistemas a los esfuerzos de la ingeniera, adoptando en todo este trabajo el paradigma sistmico. Integra otras disciplinas y grupos de especialidad en un esfuerzo de equipo. Los algoritmos se utilizan para resolver problemas computacionales, estn especificados por reglas para formar instrucciones correctas y someterlas hacia un compilador el cual traduce el cdigo en uno comprensible y ejecutar el programa, es decir, someter la entrada hacia la computadora el cual transforma en una salida de acuerdo con las instrucciones en el programa. La clasificacin de los lenguajes de programacin es de acuerdo a sus aplicaciones principales se refieren a las ventajas que tienen los lenguajes de programacin para resolver problemas orientados a la tecnologa y pueden clasificarse de la siguiente manera: Lenguajes Clsicos o Tradicionales, Lenguajes Visuales (orientados a objetos), Lenguajes de Internet (paginas estticas y dinmicas). Java es un lenguaje de programacin de alto nivel orientado a objetos, desarrollado por James Gosling en 1995. El lenguaje en s mismo toma mucha de su sintaxis de C, Cobol, Visual Basic, pero tiene un modelo de objetos simples y elimina herramientas de bajo nivel. La memoria es gestionada mediante un recolector de basura.

PLANTEAMIENTO DEL PROBLEMA Un programa es un conjunto de lneas de cdigo escritas en un lenguaje de programacin determinado. Pero el cdigo escrito en un lenguaje de alto nivel no puede ser entendido por el ordenador, por lo que es necesaria la traduccin a cdigo mquina. En este proceso tienen lugar dos fases. En la primera fase (compilacin) el compilador traduce cada uno de las partes del programa y crea mdulos objeto, que posteriormente sern unidos por el linker (enlazado), creando el mdulo ejecutable .exe. Como la compilacin y el enlazado son dos procesos dependientes, a menudo se suele denominar a todo el proceso compilacin.

JUSTIFICACIN Este articulo va dirigido para todas aquellas personas que quieran aprender un poco ms sobre los lenguajes de programacin para su entendimiento y comprensin de la funcin que tienen estos lenguajes de programacin La innovacin tecnologa hace que cada ver sean mas eficientes los programas y que se asemeje al lenguaje cotidiano, la mayora de los lenguajes son en ingles y las condiciones de cada lenguaje depende del programa y del compilador en donde sean ejecutados.

OBJETIVOS La apreciacin del desarrollo e implementacin de un lenguaje de programacin. La comprensin del procedimiento seguido en la formacin de un conjunto de reglas gramaticales que permiten identificar y nombrar sin ambigedad acciones y secuencias ordenadas de acciones sobre el contexto especfico de un problema en particular. Proporcionar un medio de familiarizacin con la realizacin de operaciones aritmticas usando una pila y su posterior extensin para la manipulacin de otros datos. La clara especificacin y adecuada documentacin del proceso de creacin o extensin de un lenguaje y sus resultados. El presente trabajo trata de indagar en la evolucin del Lenguaje C a lo largo del tiempo entre los lenguajes de programacin y el avance tecnolgico. Como consecuencia de la corta historia de la Informtica, los lenguajes que esta utiliza tienen una existencia breve comparada con cualquier otra tecnologa. Esto que podra parecer una ventaja a la hora de afrontar una revisin histrica, es un problema ya que no es frecuente encontrar estudios histricos del pasado inmediato, ya que la progresin geomtrica en la aparicin de los lenguajes, hace que la mayora de los lenguajes recopilados en este trabajo sean ms del presente que del pasado. El mismo pretende ubicar cronolgicamente la aparicin del Lenguaje C en el contexto del Hardware y las distintas generaciones de los lenguajes de programacin, simplificada en las primeras paginas a modo de introduccin.

HIPOTESIS 1.- El avance tecnolgico informtico genera una creciente evolucin de los lenguajes de Programacin provocado por el alto nivel de necesidades de programadores y usuarios. 2.- Cuanto mayor ha sido el adelanto del hardware, mayor fue el desarrollo del Lenguaje C. 3.- En funcin de los progresivos requerimientos del software se han debido perfeccionar progresivamente las distintas versiones de C para la realizacin de nuevos programas. 4.- Desde sus comienzos el Lenguaje C ha pulido su contenido, hasta la actualidad donde posee ms ventajas que inconvenientes, siendo ms sus adeptos que sus detractores.

VIABILIDAD Java es un lenguaje de programacin de alto nivel orientado a objetos, sus aplicaciones estn tpicamente compiladas en un bytecode, la compilacin en cdigo mquina tambin es posible. En la ejecucin, el bytecode es interpretado a cdigo maquina. Programar en java ha facilitado la adaptacin de cualquier programa para poder opacar en el sistema operativo, facilita la fluidez del programa que se utiliza, estabiliza sus procesos, adems de tiener varias aplicaciones para trabajar sobre sistemas operativos.

FACTIBILIDAD Para evitar la volcadura del sistema o del satt. Los scripts de java estabilizan las aplicaciones, haciendo mas intuitivo, fluido y para la mayora de los usuarios les es mayor cmodo utilizar estos scripts. La programacin en java es muy intuitiva, a prueba de errores y muy fluida. En Java se evitan fugas de memoria en gran medida gracias a la recoleccin de basura (automatic garbage collector). El programador determina cundo se crean los objetos y el entorno en tiempo de ejecucin de Java, es el responsable de gestionar el ciclo de vida de los objetos.

IMPACTO SOCIAL Los programas hechos en Java no tienden a ser muy rpidos, pero se est trabajando en eso. Los programas de Java son interpretados nunca alcanzan la velocidad de un ejecutable. Java es un lenguaje de programacin. Es muy fcil de aprender, y sigue siendo un lenguaje y por lo tanto aprenderlo no es cosa fcil. Especialmente para los no programadores.

10

IMPACTO ECONMICO Es un lenguaje multiplataforma, esto significa que no esta enlazado a un sistema operativo en concreto y los programas desarrollados, con el funcionaran correctamente tanto en Windows como en Linux. Es un lenguaje gratuito y solo necesitas un editor de programacin para poder trabajar. Tambin puede servirte un pequeo curso muy prctico sobre Java y tienes tutoriales terico-prcticos en YouTube.

11

IMPACTO TECNICO El impacto tcnico es positivo ya que brinda facilidades para el programador y mayor productividad del mismo, contra: devaluacin de los trabajos y abundancia de programadores con tiempo para competir. El avance tcnico genera una creciente evolucin de los lenguajes de Programacin provocado por el alto nivel de necesidades de programadores y usuarios. Cuanto mayor ha sido el adelanto del hardware, mayor fue el desarrollo del Lenguaje C, en funcin de los progresivos requerimientos del software se han debido perfeccionar progresivamente las distintas versiones de C para la realizacin de nuevos programas. Desde sus comienzos el Lenguaje C ha pulido su contenido, hasta la actualidad donde posee ms ventajas que inconvenientes, estos lenguajes permiten, por un lado, escribir las operaciones que son necesarias realizar para resolver el problema de un modo parecido a como se escribira convencionalmente (es decir, redactar adecuadamente el algoritmo de resolucin del problema) y, por el otro, se encarga de traducir el algoritmo al lenguaje mquina (proceso conocido como compilacin) con lo que se le confiere al programa la capacidad de correr (ser ejecutado) en el ordenador. En la actualidad hay muchos tipos de lenguajes de programacin, cada uno de ellos con su propia gramtica, su terminologa especial y una sintaxis particular. Por ejemplo, existen algunos creados especialmente para aplicaciones cientficas o matemticas generales (BASIC, FORTRAN, PASCAL, etc. ); otros, en cambio, se orientan al campo empresarial y al manejo de textos y ficheros, es decir, son en realidad fundamentalmente gestores de informacin (COBOL, PL/1, etc. ), o muy relacionados con el lenguaje mquina del ordenador como el C y el ASSEMBLER.

12

INNOVACION Las innovaciones tecnolgicas se centran en la mejora de la capacidad de procesamiento, almacenamiento y ancho de banda de las redes, elementos que hacen referencia ms al uso de los ordenadores que a cambios fundamentales de la informtica en s misma, las mejoras que se producen son realmente importantes, la capacidad para procesar se duplica cada 18 meses. Pero, ms impresionante resulta an que la capacidad de almacenamiento por unidad de rea se duplique cada ao y que el total de datos que puede circular por los cables de fibra ptica se duplique cada nueve meses. La tecnologa inalmbrica est superando a la telefona fija, sobre todo en los pases en desarrollo. Los telfonos mviles y los aparatos inalmbricos estn enfrentndose a los desafos que representan la capacidad y la conectividad. No obstante, hay grandes posibilidades de que en muchos pases en vas de desarrollo el primer acercamiento a Internet se produzca va telfono mvil, ms que a travs del ordenador. Los equipos tecnolgicos sern ms inteligentes -la revolucin de la inteligencia artificial no est siendo como algunos predecan, pero en todas partes se estn desarrollando aparatos inteligentescon el uso de tecnologas que van desde el reconocimiento de la voz hasta la anulacin de ruidos. La tecnologa ha evolucionado y madurado hasta convertirse en una tecnologa instrumental y llegar a convertirse en una tecnologa dominante y ubicua, una vez que sea posible aadir conectividad inalmbrica con un bajo coste adicional en componentes, volumen y consumo de energa. En un prximo futuro veremos un sin nmero de nuevas aplicaciones informticas aplicadas a los ms variados campos.

13

MATERIALES Consiste bsicamente en mover los bits de un lado a otro, cambiar su estado de cero a uno o de uno a cero, comparar dos bits, sumarlos, y no mucho ms; Python, la navaja suiza, un poco ms a alto nivel que la BASH de unix y ms a bajo nivel que un lenguaje de programacin tradicional, permite hacernos nuestras utilidades para el procesamiento de informacin. Es un lenguaje de programacin multiparadigma, que permite usar programacin estructurada, funcional u orientada a objetos, dependiendo del tipo de proyecto. Permite uso de varias bibliotecas matemticas, as que para aplicaciones cientficas en base web, es nuestra herramienta. Ruby, un lenguaje mgico, con un elevado nivel abstraccin, se ha ganado un puesto entre los grandes por la facilidad de su aprendizaje, por su sistema de gestin de paquetes llamados gemas, y por frameworks como Sinatra o Rails, que permiten el desarrollo rpido de aplicaciones (o RAD). Scala, feo, funcional, e increblemente potente, tiene una curva de aprendizaje considerablemente mayor que los otros lenguajes vistos, pero sin embargo, la compensa con la posibilidad de interactuar con clases de Java (ya que se ejecuta sobre la JVM) y con un rendimiento muy bueno para anlisis de datos (por ello lo usan en Twitter para manejar el trfico constante de informacin que tienen). La nocin de materiales puede aplicarse a diferentes situaciones y espacios siempre girar en torno a varios elementos importantes y tiles para desempear determinada accin, tambin objetos que deben ser utilizados de manera conjunta como por ejemplo los diagramas de flujo y todo lo necesario para poder desempear un programa.

14

TALENTO En cuanto a talento nos referimos a la capacidad de innovar y tener la suficiente creativacion para crear y disear distintos sistemas asi como lo diagramas y/o herramientas para crear estos mismos. El cuanto a talento no necesariamente nos referimos al delos programas o las distintas tecnologas si no tambin disear crear o innovar eso es distinto de cada persona ya que en un futuro nosotros tendremos las suficientes herramientas y conocimientos para poder inventar o crear nuevos proyectos y asi ir avanzando aun mas en la tecnologa por medio de distintos lenguajes de programacin. Tambin es importante saber identificar y saber como usar nuestros propios talentos ya que esto nos servir para darle buen uso a nuestros conocimientos y saber emplear los lenguajes de programacin adecuadamente. Aveces tenemos el talento solo que no todos lo saben identificar o emplear de la misma manera, pero mediante llevemos a la practica nuestros conocimientos y experiencia en distintos proyectos sabremos sacarle provecho a nuestro talento, tambin el talento lo vemos en los lenguajes de programacin porque no todos sabemos utilizarlos o no todos le entienden, es muy importante saber utilizarlos, saber para que sirven y con que finalidad se va a hacer o a utilizar cierto lenguaje tambin saber utilizar todas y cada una de las herramientas porque se busca en un futuro es a gente mas preparada precisamente que sepa utilizar todos sus recursos adecuadamente incluso para formar una empresa o ser jefe se necesita saber mas por que para mandar a sus empleados se debe saber con seguridad y conocimiento que es lo que se pide.

15

NORMATIVIDAD Independientemente de los algoritmos usados, hay muchas formas y estilos de programar. La legibilidad de un programa es demasiado importante como para prestarle la atencin que merece por parte del programador. Los programas, a lo largo de su vida, se van quedando obsoletos debido a cambios en su entorno. Un programa pensado para una determinada actividad, es muy normal tener que modificarlo porque cambie dicha actividad o porque decidamos incluirle nuevas posibilidades que antes no estaban previstas. De aqu las mltiples versiones que sacan al mercado las empresas de programacin. Adems, debido a la dificultad de algunos programas para probarlos exhaustivamente, a veces, se descubren errores cuando el programa lleva funcionando cierto tiempo. Por otra parte, tambin es frecuente que uno deba modificar un programa escrito por otro programador. Es entonces, cuando hay que modificar un programa escrito hace cierto tiempo o escrito por otro programador, cuando salen los problemas de legibilidad de un programa. Para poder modificarlo, primero hay que comprender su funcionamiento, y para facilitar esta tarea el programa debe estar escrito siguiendo unas normas bsicas. La tarea de mantenimiento del software (corregir y ampliar los programas) es una de las tareas ms rduas del ciclo de vida del software. Por eso, al programar debemos intentar que nuestros programas sean lo ms expresivos posibles, para ahorrarnos tiempo, dinero y quebraderos de cabeza a la hora de modificarlos. Adems, el C es un lenguaje que se presta a hacer programas complejos y difciles de comprender. En C se pueden encapsular rdenes y operadores, de tal forma que, aunque consigamos mayor eficiencia su comprensin sea todo un reto. Como curiosidad, diremos que en EEUU existe un concurso de programacin en C, en el que gana el que consiga hacer el programa ms crptico. Resumiendo y repitiendo, diremos que la claridad en un programa es de vital importancia, pues la mayor parte del tiempo de mantenimiento de un programa se emplea en estudiar y comprender el cdigo fuente existente. Esto es especialmente importante cuando se trabaja en grupo pero no es exclusivo de este modo de trabajo. Naturalmente, esto es ms importante cuantas ms lneas de cdigo tenga el programa, pero incluso en programas pequeos puede perderse mucho tiempo intentando comprender su funcionamiento, si no estn programados con mimo. Unas normas de estilo en programacin, son tan importantes que todas las empresas dedicadas a programacin imponen a sus empleados una mnima uniformidad, para facilitar el intercambio de programas y la modificacin por cualquier empleado, sea o no el programador inicial. Por supuesto, cada programa debe ir acompaado de una documentacin adicional, que aclare detalladamente cada mdulo del programa, objetivos, algoritmos usados, ficheros... No existen un conjunto de reglas fijas para programar con legibilidad, ya que cada programador tiene su modo y sus manas y le gusta escribir de una forma determinada. Lo que s existen son un conjunto de reglas generales, que aplicndolas, en mayor o menor medida, se consiguen programas bastante legibles. Aqu intentaremos resumir estas reglas. Identificadores significativos
16

Un identificador es un nombre asociado a un objeto de programa, que puede ser una variable, funcin, constante, tipo de datos... El nombre de cada identificador debe identificar lo ms claramente posible al objeto que identifica (valga la redundancia). Normalmente los identificadores deben empezar por una letra, no pueden contener espacios (ni smbolos raros) y suelen tener una longitud mxima que puede variar, pero que no debera superar los 10-20 caracteres para evitar lecturas muy pesadas. Un identificador debe indicar lo ms breve y claramente posible el objeto al que referencia. Por ejemplo, si una variable contiene la nota de un alumno de informtica, la variable se puede llamar nota_informatica. Observe que no ponemos los acentos, los cuales pueden dar problemas de compatibilidad en algunos sistemas. El carcter '_' es muy usado para separar palabras en los identificadores. Es muy normal usar variables como i, j o k para nombres de ndices de bucles (for, while...), lo cual es aceptable siempre que la variable sirva slo para el bucle y no tenga un significado especial. En determinados casos, dentro de una funcin o programa pequeo, se pueden usar este tipo de variables, si no crean problemas de comprensin, pero esto no es muy recomendable. Para los identificadores de funcin se suelen usar las formas de los verbos en infinitivo, seguido de algn sustantivo, para indicar claramente lo que hace. Por ejemplo, una funcin podra llamarse Escribir_Opciones, y sera ms comprensible que si le hubiramos llamado Escribir o EscrOpc. Si la funcin devuelve un valor, su nombre debe hacer referencia a este valor, para que sea ms expresivo usar la funcin en algunas expresiones, como: Constantes simblicas En un programa es muy normal usar constantes (numricas, cadenas...). Si estas constantes las usamos directamente en el programa, el programa funcionar, pero es ms recomendable usar constantes simblicas, de forma que las definimos al principio del programa y luego las usamos cuando haga falta. As, conseguimos principalmente dos ventajas: Los programas se hacen ms legibles: Es ms legible usar la constante simblica PI como el valor de p que usar 3.14 en su lugar: Volumen_Esfera = 4/3. * PI * pow(radio,3); Los programas sern ms fciles de modificar: Si en un momento dado necesitamos usar PI con ms decimales (3.141592) slo tenemos que cambiar la definicin, y no tenemos que cambiar todas las ocurrencias de 3.14 por 3.141592 que sera ms costoso y podemos olvidarnos alguna. En C, las constantes simblicas se suelen poner usando una rden al Preprocesador de C, quedando definidas desde el lugar en que se definen hasta el final del fichero (o hasta que expresamente se indique). Su formato general es: #define CONSTANTE valor que se encarga de cambiar todas las ocurrencias de CONSTANTE por el valor indicado en la segunda palabra (valor). Este cambio lo realiza el preprocesador de C, antes de empezar la compilacin. Por ejemplo:
17

#define PI 3.141592 Por convenio, las macros se suelen poner completamente en maysculas y las variables no, de forma que leyendo el programa podamos saber rpidamente qu es cada cosa. En general, se deben usar constantes simblicas en constantes que aparezcan ms de una vez en el programa referidas a un mismo ente que pueda variar ocasionalmente. Obsrvese, que aunque el valor de p es constante, podemos variar su precisin, por lo que es recomendable usar una constante simblica en este caso, sobre todo si se va a usar en ms de una ocasin en nuestro programa. Puede no resultar muy til dedicar una constante para el nmero de meses del ao, por ejemplo, ya que ese valor es absolutamente inalterable. Comentarios, comentarios... El uso de comentarios en un programa escrito en un lenguaje de alto nivel es una de las ventajas ms importantes con respecto a los lenguajes mquina, adems de otras ms obvias. Los comentarios sirven para aumentar la claridad de un programa, ayudan para la documentacin y bien utilizados nos pueden ahorrar mucho tiempo. No se debe abusar de comentarista, ya que esto puede causar una larga y tediosa lectura del programa, pero en caso de duda es mejor poner comentarios de ms. Por ejemplo, es absurdo poner: Nota = 10; /* Asignamos 10 a la variable Nota */ Los comentarios deben ser breves y evitando divagaciones. Se deben poner comentarios cuando se crean necesarios, y sobre todo: Al principio del programa o de cada fichero del programa que permita seguir un poco la historia de cada programa, indicando: Nombre del programa, objetivo, parmetros (si los tiene), condiciones de ejecucin, mdulos que lo componen, autor o autores, fecha de finalizacin, ltimas modificaciones realizadas y sus fechas... y cualquier otra eventualidad que el programador quiera dejar constancia. En cada sentencia o bloque (bucle, if, switch...) que revista cierta complejidad, de forma que el comentario indique qu se realiza o cmo funciona. Al principio de cada funcin cuyo nombre no explique suficientemente su cometido. Se debe poner no slo lo que hace sino la utilidad de cada parmetro, el valor que devuelve (si lo hubiera) y, si fuera oportuno, los requisitos necesarios para que dicha funcin opere correctamente. En la declaracin de variables y constantes cuyo identificador no sea suficiente para comprender su utilidad. En los cierres de bloques con '}', para indicar a qu sentencias de control de flujo pertenecen, principalmente cuando existe mucho anidamiento de sentencias y/o los bloques contienen muchas lneas de cdigo. No olvidemos que los comentarios son textos literarios, por lo que debemos cuidar el estilo, acentos y signos de puntuacin. Estructura del programa
18

Un programa debe ser claro, estar bien organizado y que sea fcil de leer y entender. Casi todos los lenguajes de programacin son de formato libre, de manera que los espacios no importan, y podemos organizar el cdigo del programa como ms nos interese. Para aumentar la claridad no se deben escribir lneas muy largas que se salgan de la pantalla y funciones con muchas lneas de cdigo (especialmente la funcin principal). Una funcin demasiado grande demuestra, en general, una programacin descuidada y un anlisis del problema poco estudiado. Se deber, en tal caso, dividir el bloque en varias llamadas a otras funciones ms simples, para que su lectura sea ms agradable. En general se debe modularizar siempre que se pueda, de forma que el programa principal llame a las funciones ms generales, y estas vayan llamando a otras, hasta llegar a las funciones primitivas ms simples. Esto sigue el principio de divide y vencers, mediante el cual es ms fcil solucionar un problema dividindolo en subproblemas (funciones) ms simples. A veces, es conveniente usar parntesis en las expresiones, aunque no sean necesarios, para aumentar la claridad. Cada bloque de especial importancia o significacin, y cada funcin debe separarse de la siguiente con una lnea en blanco. A veces, entre cada funcin se aaden una linea de asteriscos o guiones, como comentario, para destacar que empieza la implementacin de otra funcin (aparte de los comentarios explicativos de dicha funcin). El uso de la sentencia GOTO debe ser restringido al mximo, pues la los programas y los hace ilegibles. Como dicen Kerninghan y Ritchie en su libro de C, su utilizacin slo est justificada en casos muy especiales, como salir de una estructura profundamente anidada, aunque para ello podemos, a veces, usar los comandos break, continue, return o la funcin exit(). Igualmente, esos recursos, para salir de bucles anidados deben usarse lo menos posible y slo en casos que quede bien clara su finalidad. Si no queda clara su finalidad, ser mejor que nos planteemos de nuevo el problema y estudiemos otra posible solucin que seguro que la hay. Normalmente, un programa en C se suele estructurar de la siguiente forma: Primero los comentarios de presentacin, como ya hemos indicado. Despus, la inclusin de bibliotecas del sistema, los ficheros .h con el #include y entre ngulos (<...>) el nombre del fichero. Quizs la ms tpica sea: #include <stdio.h> Bibliotecas propias de la aplicacin. Normalmente, en grandes aplicaciones, se suelen realizar varias libreras con funciones, separadas por su semntica. Los nombres de fichero se ponen entre comillas (para que no las busque en el directorio de las bibliotecas o libreras estndar) y se puede incluir un comentario aclarativo: #include "rata.h" /* Rutinas para control del ratn */

#include "cola.h" /* Primitivas para el manejo de una cola */

19

Variables globales, usadas en el mdulo y declaradas en otro mdulo distinto, con la palabra reservada extern. Constantes simblicas y definiciones de macros, con #define. Definicin de tipos, con typedef. Declaracin de funciones del mdulo: Se escribir slo el prototipo de la funcin, no su implementacin. De esta forma, el programa (y el programador) sabr el nmero y el tipo de cada parmetro y cada funcin. Declaracin de variables globales del mdulo: Se trata de las variables globales declaradas aqu, y que si se usan en otro mdulo debern llevar, en el otro mdulo, la palabra extern. Implementacin de funciones: Aqu se programarn las acciones de cada funcin, incluida la funcin principal. Normalmente, si el mdulo incluye la funcin principal, la funcin main(), sta se pone la primera, aunque a veces se pone al final y nunca en medio. El resto de funciones, se suelen ordenar por orden de aparicin en la funcin principal y poner juntas las funciones que son llamadas desde otras. Es una buena medida, que aparezcan en el mismo orden que sus prototipos, ya que as puede ser ms fcil localizarlas. Naturalmente, este orden no es estricto y pueden cambiarse algunos puntos por otros, pero debemos ser coherentes, y usar el mismo orden en todos los mdulos. Por ejemplo, es frecuente saltarse la declaracin de los prototipos de las funciones poniendo en su lugar la implementacin y, por supuesto, dejando para el final la funcin main(). Otro punto muy importante es el referente a variables globales. En general es mejor no usar nunca variables globales, salvo que sean variables que se usen en gran parte de las funciones (y mdulos) y est bien definida y controlada su utilidad. El uso de estas variables puede dar lugar a los llamados efectos laterales, que provienen de la modificacin indebida de una de estas variables en algn mdulo desconocido. Lo mejor es no usar nunca variables globales y pasar su valor por parmetros a las funciones que estrictamente lo necesiten, viendo as las funciones como cajas negras, a las que se le pasan unos determinados datos y nos devuelve otros, perfectamente conocidos y expresados en sus parmetros. Por la misma razn que no debemos usar variables globales, no se deben usar pasos de parmetros por referencia (o por variable), cuando no sea necesario. Indentacin o sangrado La indentacin o sangrado consiste en marginar hacia la derecha todas las sentencias de una misma funcin o bloque, de forma que se vea rpidamente cuales pertenecen al bloque y cuales no. Algunos estudios indican que el indentado debe hacerse con 2, 3 4 espacios. Usar ms espacios no aumenta la claridad y puede originar que las lneas se salgan de la pantalla, complicando su lectura. La indentacin es muy importante para que el lector/programador no pierda la estructura del programa debido a los posibles anidamientos.
20

Normalmente, la llave de comienzo de una estructura de control ({) se pone al final de la linea y la que lo cierra (}) justo debajo de donde comienza -como veremos ms adelante- pero algunos programadores prefieren poner la llave { en la misma columna que la llave }, quedando una encima de otra. Eso suele hacerse as, en la implementacin de funciones, donde la llave de apertura de la funcin se suele poner en la primera columna. Sin embargo, poner la llave de apertura { al final de la lnea que da comienzo a ese bloque es lo preferido por los programadores, pues uno puede "olvidarse" de ella sabiendo que el bloque empieza en esa lnea y termina en el carcter } que haya justo debajo de ella. Adems, poner el { al principio de la lnea puede estorbar al hacer modificaciones. Veamos, a continuacin, la indentacin tpica en las estructuras de control: Aunque estos formatos no son en absoluto fijos, lo que es muy importante es que quede bien claro las sentencias que pertenecen a cada bloque, o lo que es lo mismo, donde empieza y termina cada bloque. En bloques con muchas lineas de cdigo y/o con muchos anidamientos, se recomienda aadir un comentario al final de cada llave de cierre del bloque, indicando a qu sentencia cierra. Por ejemplo: Presentacin Al hacer un programa debemos tener en cuenta quien o quienes van a usarlo o pueden llegar a usarlo, de forma que el intercambio de informacin entre dichos usuarios y el programa sea de la forma ms cmoda, clara y eficaz posible. En general, se debe suponer que el usuario no es un experto en la materia, por lo que se debe implementar un interfaz que sea fcil de usar y de aprender, intuitivo y que permita efectuar la ejecucin de la forma ms rpida posible. Para ello, se suelen usar las siguientes tcnicas: Usar argumentos en la lnea de comandos para especificar las distintas opciones posibles. Avisar lo ms detalladamente posible de todos los errores que se produzcan, los motivos de los mismos y cmo solucionarlos. Incluir una ayuda en lnea (on line) en el programa, de forma que el usuario pueda consultar, en cualquier parte del programa, cmo ejecutar cada una de las acciones posibles en cada momento. Un estndar es usar la tecla de funcin F1 para solicitar esta ayuda. Es muy usual incluir el argumento ? (o con una barra o guion delante) para solicitar que el programa nos muestre una ayuda sobre su funcionamiento, opciones, ficheros usados... Si el programa requiere algunos argumentos obligatorios, se puede mostrar esa ayuda si falla alguno de esos argumentos. Usar teclas estndar: ESC para salir o deshacer las modificaciones hechas, RePg y AvPg para retroceder y avanzar una pgina, Supr (o Del) para borrar, las flechas para seleccionar o cambiar de posicin, el tabulador... Usar las teclas de funcin (F1, F2...) para las operaciones ms usuales y combinaciones de teclas para acceder a otras operaciones de forma rpida (como Alt-P, Ctrl-F1...).
21

Cualquier programa debe ir siempre acompaado de un manual de usuario, en el que se explique detalladamente todo lo referente a la ejecucin del programa: Requisitos mnimos de ejecucin (de procesador, memoria RAM necesaria, espacio en disco que ocupa...), parmetros disponibles, ficheros que usa, mensajes de error, soluciones a los errores, variables de entorno (si las usa), ejemplos (si procede)... La ejecucin y manejo de programas se ha facilitado mucho con la llegada de entornos grficos, en los que se usan comnmente mens de opciones, iconos (pequeos dibujos), botones... Adems, el manejo del ratn (mouse) hace ms intuitivo y cmodo el manejo de determinados programas (aunque stos no sean ejecutados bajo un entorno grfico). Permitir al usuario volver hacia atrs: Es muy frecuente que, ejecutando un programa, se necesite modificar un dato que hemos indicado anteriormente o que simplemente deseemos ver algo anterior. Un programa debe permitir volver a cualquier punto anterior para mostrar o correquir cualquier dato. Para ello es muy frecuente usar la tecla ESC (carcter '\x1B' en un PC). Indicar lo que se est haciendo: Un programa no debe permitir pasar mucho tiempo efectuando alguna operacin sin indicar al usuario qu est haciendo, cuanto le queda o la fase que est actualmente ejecutando. En programas de grandes clculos es muy necesario para evitar que el usuario se desespere y piense que algo ha fallado. Se debe, por supuesto, incluir siempre la posibilidad de parar el proceso. Avisar de los cambios importantes y confirmar la accin si es necesario: Cuando el usuario elige alguna accin, si sta es delicada o no admite vuelta atrs es necesario avisarle al usuario de lo que se va a hacer y exigirle que confirme tal accin. Por ejemplo, al borrar un fichero o alterar datos importantes.

22

PROGRAMAS El mundo del software libre es bastante amplio, por todas partes del globlo hay millones de personas de personas que siguen fielmente esta filosofia del open source y son tan comprometidas que deciden regalar su conocimiento a proyectos de software libre de todo tipo; algo que personalmente no tenia muy claro, era que lenguajes eran los ms usados en todos estos proyectos, o bueno, digamos que tenia una idea muy general, al ser usuario de GNU/linux pues es facilmente darse cuenta que C es el lenguaje que ms se usa para desarrollar, como tambin me fascina el mundo web, pues es fcil darse cuenta que PHP y Javascript son los reyes absolutos, sin embargo datos exactos no tengo (tenia). El sitio Black Duck KnowledgeBase recopila la informacin de ms de 200000 proyectos Open Source con su correspondiente licencia desde el ao 2002, recientemente la empresa hizo publico un anlisis donde muestra cuales son los lenguajes ms populares dentro de la comunidad open source. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. C C++ Java Shell Javascript PHP Perl Python SQL C# (40,90%) (14,01%) (10,96%) (8,96%) (5,55%) (4,86%) (3,19%) (2,74%) (1,60%) (1,24%)

Comparando estos datos, con los de los proyectos que hicieron algn lanzamiento en los ltimos 12 meses, se puede producir el siguiente grfico:

23

CONCLUSIONES El C tiene sus detractores, como no poda ser de otra manera, sin embargo lo que nadie puede negar es que es uno de los lenguajes de programacin ms extendidos (hay quin afirma que el que ms). Adems, la historia del C est tremendamente ligada a la de los sistemas operativos UNIX y , por tanto, la mayor parte del software desarrollado para dichos sistemas est hecho en C. Crticas del Lenguaje C Dentro de las principales crticas que le asechan podemos destacar: Lo poco estricto que es el lenguaje con la comprobacin de los tipos de datos, dejando esta tarea muchas veces en manos del programador. El no verificar automticamente los lmites de los vectores. La repeticin que hace de smbolos en operadores diferentes (=,*,-). (Sobrecarga de operadores) .El no poder anidar funciones, con lo que se dificulta la estructuracin y la abstraccin de datos. La incertidumbre existente en el orden de evaluacin de las listas de expresiones y parmetros. La facilidad con que los programas pueden derivar hacia ser crpticos. Tampoco es prudente negar la evolucin que ha experimentado a lo largo de los primeros pasos que ha dado con el nombre de B, hasta hoy en donde podemos observar que se ha adaptado con holgura a los avances de hardware como de software. Incluso en el desarrollo de C++, podemos apreciar que tambin se ha adecuado a las necesidades que ha surgido en la programacin orientada a objetos. En el campo de los lenguajes estructurados se destacado como uno de los mas utilizados y que siguen estando en vigencia an en la actualidad tanto en el mbito laboral, como educativo. Bondades del Lenguaje C. As como crticas tambin posee ventajas que hacen que sus adeptos lo consideren de la forma siguiente: Como un lenguaje de programacin estructurado de mediano nivel, pero muy verstil y eficiente, que revolucion las tcnicas y estilo de programacin. C es un lenguaje independiente del sistema operativo que se utiliza para desarrollar aplicaciones portables. C provee las mismas facilidades para la manipulacin de bytes de un lenguaje assembler combinadas con instrucciones estructuradas de control de flujo condicionado y manipulacin de tipos y estructuras de Datos de los lenguajes de tercera generacin. En Lenguaje C, lo fcil es simple y lo difcil posible. Un buen programador de C, utiliza libreras y desarrolla programas modulares con funciones bien estructuradas, que son fciles de mantener.

24

BIBLIOGRAFIA

Los documentos empleados para la realizacin de este trabajo han sido obtenidos de: Delphi 5. Autor: Francisco Charte. Editorial ANAYA Multimedia 1999. (681.3 CHA del). Fundamentos de Informtica. Autor: Luis A. Urea y cols. Editorial ra-ma 1997 (681.3 FUN). Java 2 EDICCION 2000. Autor Miguel Angel Martn Tardio. ANAYA Multimedia 2000. (681.3 MAR man). VBScript y programacin ASP. Autor: Oscar Gonzlez Moreno. Editorial ANAYA Multimedia 1997. (681.3 GON vbs) http://www.puc.cl/curso_dist/cbc/textos/teoria/lengua2.html http://lawebdelprogramador.com/ http://www.lcc.uma.es/~tutor-fi/normasC.html www.tsi.com.mx/das/roman/manual/u1.htm#a1_3_4 http://www.geocities.com/SiliconValley/2915/manual.htm http://html.programacion.net/xhtml/capitulo1.htm www.geocities.com www.lycos.es www.google.com www.programando.com www.terra.es www.ya.com

25