miércoles, 28 de junio de 2017

Lenguaje C

¿Qué es el lenguaje de programación C?


C es un lenguaje de programación de propósito general que ofrece economía sintáctica, control de flujo y estructuras sencillas y un buen conjunto de operadores. No es un lenguaje de muy alto nivel y más bien un lenguaje pequeño, sencillo y no está especializado en ningún tipo de aplicación. Esto lo hace un lenguaje potente, con un campo de aplicación ilimitado y sobre todo, se aprende rápidamente. En poco tiempo, un programador puede utilizar la totalidad del lenguaje.

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX, puesto que fueron desarrollados conjuntamente. Sin embargo, este lenguaje no está ligado ningún sistema operativo ni a ninguna máquina concreta. Se le suele llamar lenguaje de programación de sistemas debido a su utilidad para escribir compiladores y sistemas operativos, aunque de igual forma se puede desarrollar cualquier tipo de aplicación.

¿De dónde proviene la base de C?
La base del C proviene del BCPL, escrito por Martin Richards, y del B escrito por Ken Thompson en 1970 para el primer sistema UNIX en un DEC PDP-7. Estos son lenguajes sin tipos, al contrario que el C que proporciona varios tipos de datos.

Tipos de datos
Los tipos que ofrece son:
Caracteres, números enteros y en coma flotante, de varios tamaños. Además se pueden crear tipos derivados mediante la utilización de punteros, vectores, registros y uniones.

Primer compilador de C
El primer compilador de C fue escrito por Dennis Ritchie para un DEC PDP-11 y escribió el propio sistema operativo en C.

¿Cómo trabaja el lenguaje C?


C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoría de computadoras actuales, como son los caracteres, números y direcciones. Estos tipos de datos pueden ser manipulados por las operaciones aritméticas que proporcionan las computadoras. No proporciona mecanismos para tratar tipos de datos que no sean los básicos, debiendo ser el programador el que los desarrolle. Esto permite que el código generado sea muy eficiente y de ahí el éxito que ha tenido como lenguaje de desarrollo de sistemas. No proporciona otros mecanismos de almacenamiento de datos que no sea el estático y no proporciona mecanismos de entrada ni salida. Ello permite que el lenguaje sea reducido y los compiladores de fácil implementación en distintos sistemas. Por contra, estas carencias se compensan mediante la inclusión de funciones de librería para realizar todas estas tareas, que normalmente dependen del sistema operativo.

Mi primer programa en lenguaje de programación C


Un programa, concepto desarrollado por Von Neumann en 1946, es un conjunto de instrucciones que sigue la computadora para alcanzar un resultado específico.
El programa se escribe en un lenguaje de programación C en este caso, el lenguaje de programación está constituido por un conjunto de reglas sintácticas y semánticas.
Las reglas sintácticas especifican la formación de instrucciones válidas, mientras que las semánticas especifican el significado de estas instrucciones.

C es un lenguaje de programación de tipo estructurado, que implementa por lo tanto soluciones en forma estructurada. En este enfoque la solución de los problemas se diseña de arriba hacia abajo (top-down), y de izquierda a derecha (left to right). Si la solución es correcta, el programa será fácil de entender, depurar y modificar.

La tarea intelectual, la que requiere de un pensamiento profundo, de una capacidad de razonamiento flexible y crítica, corresponde a la construcción del diagrama de flujo, que representa la solución detallada del problema. La escritura o codificación del programa, por otra parte, puede resultar una tarea sencilla si conocemos las reglas sintácticas y semánticas que constituyen el lenguaje de programación.

Analicemos a continuación el primer programa escrito en el lenguaje C:


#include <stdio.h>
/* Programa 1.1
El siguiente es el primer programa escrito en el lenguaje C. */
void main (void)
{
printf( “Mi primer programa en C” );}


Observa que todo programa comienza con las instrucciones que permiten incorporar las bibliotecas necesarias para correr un determinado programa en C.

En este caso, la instrucción:
#include <stdio.h>

Permite la inclusión de la biblioteca estándar stdio (Standard Input Output Header) de entrada/salida, la cual incluye las instrucciones printf y scanf necesarias para escribir y leer, respectivamente. Observa que todo lo que desees imprimir debe ir entre paréntesis ( ) y comillas “ ”, excepto si escribes variables, constantes o una expresión aritmética, relacional o lógica.

La siguiente instrucción del programa representa la manera de escribir comentarios en el lenguaje C.

Observa que todo comentario debe comenzar con /* y finalizar con */.

Por otra parte, los programas se comienzan a ejecutar a partir de un determinado lugar.
La instrucción: void main(void) indica el lugar a partir del cual se comienza a ejecutar el programa principal (main). El primer void indica que el programa no arrojará resultados de un tipo de datos. El segundo void especifica que el programa no tiene parámetros.
Finalmente, es importante mencionar que todas las instrucciones deben estar dentro de un bloque ({ }) y finalizar con punto y coma (;). Excepto en los casos en que las instrucciones correspondan a las estructuras selectivas, repetitivas o a nombres de funciones.

El programa 1.1 arroja el siguiente resultado:

Mi primer programa en C

La codificación de programas en Java

La codificación de programas en java o también conocido como estilo de programación es un tema importante para las personas que se dedican a programar. Por lo que, la legibilidad de un programa determina en buena medida que se haya desarrollado correctamente y que el producto final sea eficiente.


Legibilidad > Corrección > Eficiencia

Legibilidad: Un programa Java debe ser fácil de leer y entender, incluso para una persona que no ha participado en el desarrollo del programa. La legibilidad es un aspecto muy importante porque facilita el mantenimiento del software, la corrección de errores o la modificación de la funcionalidad de la aplicación con menor coste.

Corrección: Un programa debe hacer lo que debe hacer, ni más, ni menos.
Esto es lo que se entiende por corrección. Un programa debe cumplir rigurosamente los requisitos funcionales y técnicos de la fase de especificación. Durante la fase de prueba se verifica que el programa funciona correctamente y que cumple los requisitos técnicos y funcionales.

Eficiencia: La eficiencia se refiere al tiempo que un programa tarda en ejecutarse y a los recursos que consume. Cuanto más rápido sea un programa y utilice menos memoria o disco duro, el diseño es mejor. La eficiencia no es un problema que deba atender cuando se aprende a programar. Ahora lo mejor es utilizar los mecanismos de optimización propios de los compiladores. La eficiencia se debe analizar solo cuando un programa funciona correctamente y cumple con los requisitos técnicos definidos.


El proceso de desarrollo de software

¿Que es el proceso de desarrollo de software?

https://fundamentos-de-programacion1.blogspot.mx/2017/06/el-proceso-de-desarrollo-de-software.html
Un modelo de proceso de desarrollo de software puede verse como una manera de dividir el trabajo en distintas actividades (o el ciclo de vida del producto en distintas fases) con la intención de lograr la mejor gestión y el mejor resultado para el proyecto. Estos modelos pueden incluir la definición previa de entregables específicos y otros artefactos que son creados y completados por el equipo para diseñar, codificar, probar y mantener el software en cuestión.

El proceso de desarrollo de los programas Java no difiere de la mayoría de los lenguajes de programación. Es necesario seguir un conjunto de pasos para desarrollar correctamente un producto software.

Definición
La Ingeniería del Software estudia los distintos procesos de desarrollo de software. El IEEE define Ingeniería del Software como la aplicación sistemática, disciplinada y cuantificable de un proceso de desarrollo, operación y mantenimiento de un producto software.


El proceso clásico de desarrollo de software es ampliamente utilizado por su sencillez. Este proceso se compone de las siguientes fases: especificación, diseño, codificación, prueba y mantenimiento.

Especificación: En esta fase se decide la funcionalidad, las características técnicas de una aplicación y sus condiciones de uso. En esta fase es necesario responder a las siguientes preguntas:
  • ¿Para qué se va a utilizar la aplicación?
  • ¿Cuáles son las necesidades funcionales de los usuarios?
  • ¿Cuál es el perfil de los usuarios de la aplicación?
  • ¿En qué plataforma se ejecutará la aplicación?
  • ¿Cuáles son sus condiciones de operación?
  • ¿Cómo se va a utilizar?


Diseño: En esta fase se utiliza toda la información recogida en la fase de especificación y se propone una solución que responda a las necesidades del usuario y se pueda desarrollar. En esta fase se define la arquitectura de la aplicación. Es necesario detallar la estructura y la organización del programa y cómo se relacionan las distintas partes de la aplicación.

Codificación: Esta fase consiste en la programación en Java de las especificaciones de diseño de la fase anterior. Durante esta fase de codificación o implementación se aplican normas de programación para facilitar la legibilidad de los programas Java.

Prueba: En esta fase se compila y se ejecuta la aplicación para verificar que cumple con los requisitos funcionales y técnicos definidos en la fase de especificación. Si el programa no cumple con todos los requisitos, se puede deber a errores de diseño o de programación. En tal caso, es necesario corregir los errores que se hayan detectado y repetir de nuevo el proceso de diseño y codificación. Durante la fase de prueba se verifica que la aplicación cumple con los criterios de calidad establecidos en el proyecto: facilidad de uso, corrección, eficiencia, integridad, fiabilidad, flexibilidad, facilidad de mantenimiento, facilidad de prueba, portabilidad, capacidad de reutilización.
Una vez que la aplicación se ha probado y cumple con los requisitos establecidos, entonces se pone en funcionamiento y comienza la fase de operación para que sea utilizada para el fin con el que ha sido desarrollada.



Mantenimiento: Una vez que la aplicación se ha puesto en operación da comienzo la fase de mantenimiento. En esta fase se corrigen errores de funcionamiento de la aplicación, se modifica la funcionalidad o se añaden las nuevas funcionalidades que demandan los usuarios. La fase de mantenimiento es la de mayor duración, pues pueden pasar muchos años desde el inicio de la operación hasta que el producto es retirado.