objective c

Upload: diego

Post on 07-Mar-2016

4 views

Category:

Documents


0 download

DESCRIPTION

Descripción de Lenguaje C orientado a objetos.

TRANSCRIPT

PROGRAMACION ORIENTADA A OBJETOS

Pgina | 50

Programacin

Orientada a

ObjetosIntegrantes GUAYMAS, Miguel A. - 58828 GUTIERREZ, Diego A. - 57972 MICELLI, Gonzalo D. - 59192 RODRIGUEZ, Gabriel - 57885Profesor

Vctor Fernndez INFORMTICA I 2011

INTRODUCCINEste trabajo surgi de la idea de profundizar el tema de objetos en programacin, ya que ltimamente era frecuente escuchar sobre lenguajes y programacin orientada a objetos como un tipo de programacin mas eficaz, verstil y fcil de realizar, por lo que esto nos caus cierto asombro y en base a esto fue lo que nos condujo a la eleccin del tema.

En el contenido que veremos a continuacin trataremos de descifrar algunas pequeas inquietudes sobre la programacin en C, ms precisamente, lenguaje y programacin basada en C orientado a objetos.

En grandes libros sobre este tipo de programacin, en especial en algunos textos universitarios, se cuidan en exceso el formalismo con lo que se tienen textos elegantsimos e irreprochables con los que es casi imposible enterarse de que se trata. Nosotros por nuestra parte, nos basaremos en un lenguaje bsico y muchos y sencillos ejemplos para un mejor esclarecimiento de los conceptos y definiciones fundamentales y una buena interpretacin de todo lo que tenga ver con programacin orientada a objetos (POO, en adelante).Es muy importante citar y destacar en esta parte introductoria que cuando hacemos referencia a la programacin orientada a objetos no estamos hablando de unas cuantas caractersticas nuevas aadidas a un lenguaje de programacin, sino que invoca una nueva forma de pensar acerca del proceso de descomposicin de problemas y de desarrollo de soluciones de programacin.

En primera instancia, con el fin de un mejor esclarecimiento de los conceptos previo a todo el contenido, empezaremos describiendo sobre la base de la POO y su principal, y a veces confundible diferencia con los lenguajes no orientados a objetos.

Explicaremos detalladamente sobre los lenguajes, ANSI C, Smaltalk y Objective C, cuyos ltimos dos lenguajes son la base fundamental de la programacin sobre objetos, por lo que sobre ellos daremos un poco mas de nfasis. Estos dos ltimos se basan en las funciones de ANSI C y es un conjunto de extensiones de este mismo lenguaje.

Trataremos de dejar claro este tema para su posterior anlisis o debate, segn las especificaciones del profesor.

En las pginas siguientes esperemos que le sean de sumo agrado y que logre distinguir el propsito de usar esta maravillosa forma de, bsicamente, pensar y descifrar los problemas y por supuesto, programar. Deseamos dejar de la mejor y eficaz forma, explcitamente todo el contenido.INDICE

UNA BASE FUNDAMENTAL: LENGUAJE C7

ANSI C E ISO C8Propiedades9

Ventajas9

Variantes10

Proceso de compilacin10

Estructura bsica de un programa en C11Tipos bsicos y variables12Funciones13

Aplicaciones14

PROGRAMACIN ORIENTADA A OBJETOS15Qu es la programacin orientada a objetos?15La gran diferencia entre lenguajes orientados y no orientados a objetos16

Qu es un objeto?17Que es un mensaje?19Qu es una clase?22LOS TRES PRINCIPIOS DE LOS LENGUAJES ORIENTADOS A OBJETOS24Encapsulacin24Herencia24Polimorfismo26Otras caractersticas extras26Abstraccin26Recoleccin de basura27Sobrecarga27ALGUNOS LENGUAJES BASADOS EN POO27Smalltalk27

Adaptaciones de Smalltalk28

Objective C29

Qu es Objective C?29

Caractersticas del lenguaje30

Compilador39

Crear un ejecutable40

Cuadro comparativo C y Objective C41

C++41

Tipos de datos42

Ejemplo de una clase43C#43Instrucciones de control44

Metas del diseo del lenguaje47

Compiladores47

Cadena de caracteres48CONCLUSIN49BIBLIOGRAFA CONSULTADA50

DESARROLLO

UNA BASE FUNDAMENTAL: LENGUAJE C XE "UNA BASE FUNDAMENTAL\: LENGUAJE C" Lenguaje C

C es un lenguaje de programacin creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolucin del anterior lenguaje B (Se le dio el nombre "C" porque muchas de sus caractersticas fueron tomadas del lenguaje anterior B, ambos basados en BCPL.

BCPLes lasiglaeninglsdeBasic Combined Programming Language(Lenguaje de Programacin Bsico Combinado). Fue diseado porMartin Richardsde laUniversidad de Cambridgeen1966.

El primer compilador implementado fue escrito en1967. El lenguaje fue descrito por primera vez en una conferencia informtica en1969. Aos despus,Dennis Ritchielo utiliz como base para desarrollarB.

Los lenguajes de los que surgi sonlenguajessin tipos, al contrario que el C que proporciona variostipos de datos. Los tipos que ofrece son caracteres, nmeros enteros y en comaflotante,de varios tamaos. Adems se pueden crear tipos derivados mediante la utilizacin de punteros,vectores,registrosy uniones.

El lenguaje C se trata de un lenguaje categorizado de medio nivel pero con muchas caractersticas de bajo nivel. Dispone de las estructuras tpicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel.

Trabaja con tipos dedatosque son directamente tratables por elhardwarede la mayora decomputadorasactuales, como son los caracteres, nmeros y direcciones. Estos tipos de datos pueden ser manipulados por lasoperacionesaritmticas que proporcionan las computadoras. No proporciona mecanismos para tratar tipos de datos que no sean los bsicos, debiendo ser el programador el que los desarrolle. Esto permite que elcdigogenerado sea muy eficiente y de ah elxitoque ha tenido como lenguaje dedesarrollode sistemas. No proporciona otros mecanismos dealmacenamientode datos que no sea el esttico y no proporciona mecanismos de entrada ni salida. Ello permite queel lenguajesea reducido y los compiladores de fcil implementacin en distintos sistemas. Por contra, estas carencias se compensan mediante la inclusin defuncionesde librera para realizar todas estas tareas, que normalmente dependen del sistema operativo.

En 1973, este se haba vuelto tan potente que la mayor parte del kernel Unix, originalmente escrito en el lenguaje ensamblador PDP-11/20, fue reescrita en C. ste fue uno de los primeros ncleos de sistema operativo implementados en un lenguaje distinto al ensamblador.

En 1978, Ritchie y Brian Kernighan publicaron la primera edicin de El lenguaje de programacin C, tambin conocido como La biblia de C. Este libro fue durante aos la especificacin informal del lenguaje. El lenguaje descrito recibe habitualmente el nombre de "el C de Kernighan y Ritchie" o simplemente "K&R C" (Luego aparece el estndar ANSI C)

Al salir al mercado de la informtica y ser una grata novedad, muchos programadores quisieron adaptar este tipo de lenguajes en otros propios, pero siguiendo la base en programacin C, por lo que esto acarreaba mucha problemtica y distintos tipos de lenguajes de pronto todos hacan lenguajes C!

ANSI C e ISO C XE "UNA BASE FUNDAMENTAL: LENGUAJE C:ANSI C E ISO C" La primera estandarizacin del lenguaje C fue en ANSI, con el estndar X3.159-1989. El lenguaje que define este estndar fue conocido vulgarmente como ANSI C. Posteriormente, en 1990, fue ratificado como estndar ISO (ISO/IEC 9899:1990).

El estndar est basado en el manual de referenciaoriginal de 1972 y se desarrolla con el mismoespritude sus creadores originales. La primera versin de estndar se public en 1988 y actualmente todos los compiladores utilizan lanuevadefinicin. Una aportacin muy importante de ANSI consiste en la definicin de un conjunto de libreras que acompaan al compilador y de las funciones contenidas en ellas. Muchas de las operaciones comunes con el sistema operativo se realizan a travs de estas funciones. Una coleccin de ficheros de encabezamiento, headers, en los que se definen los tipos de datos y funciones incluidas en cada librera.

A finales de la dcada de 1970, C empez a sustituir a BASIC como lenguaje de programacin de microcomputadores predominante. Durante la dcada de 1980 se empez a usar en los IBM PC, lo que increment su popularidad significativamente. Al mismo tiempo, Bjarne Stroustrup empez a trabajar con algunos compaeros de Bell Labs para aadir funcionalidades de programacin orientada a objetos a C. El lenguaje que crearon, llamado C++, es hoy en da el lenguaje de programacin de aplicaciones ms comn en el sistema operativo Microsoft Windows; mientras que C sigue siendo ms popular en el entorno Unix.

En parte a causa de ser de relativamente bajo nivel y de tener un modesto conjunto de caractersticas, se pueden desarrollar compiladores de C fcilmente.

C se desarroll originalmente (conjuntamente con el sistema operativo Unix, con el que ha estado asociado mucho tiempo) por programadores para programadores. Sin embargo, ha alcanzado una popularidad enorme, y se ha usado en contextos muy alejados de la programacin de sistemas, para la que se dise originalmente.

XE "UNA BASE FUNDAMENTAL: LENGUAJE C:Propiedades" Propiedades Un ncleo del lenguaje simple, con funcionalidades aadidas importantes, como funciones matemticas y de manejo de archivos, proporcionadas por bibliotecas.

Es un lenguaje muy flexible que permite programar con mltiples estilos. Uno de los ms 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 mltiples archivos de cdigo 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 parmetros a una funcin se realiza por valor. El paso por referencia se consigue pasando explcitamente a las funciones las direcciones de memoria de dichos parmetros.

Punteros a funciones y variables estticas, que permiten una forma rudimentaria de encapsulado y polimorfismo.

Tipos de datos agregados (struct) que permiten que datos relacionados (como un empleado, que tiene un id, un nombre y un salario) se combinen y se manipulen como un todo (en una nica variable "empleado").

XE "UNA BASE FUNDAMENTAL: LENGUAJE C:Ventajas" Ventajas

El lenguaje en c es muy eficiente puesto que es posible utilizar sus caractersticas de bajo nivel para realizar implementaciones ptimas.

A pesar de su bajo nivel es el lenguaje ms portado en existencia, habiendocompiladorespara casi todos los sistemas conocidos.

Proporciona facilidades para realizar programas modulares y/o utilizar cdigo o bibliotecas existentes. XE "UNA BASE FUNDAMENTAL: LENGUAJE C:Variantes" Variantes

Este lenguaje fue la base fundamental y esencial para la creacin de posteriores lenguajes de programacin y ha influido especialmente a Vala, C#, Objective-C, C++, AWK, Java, entre otros.

Desde el inicio del lenguaje han surgido varias ramas de evolucin que han generado varios lenguajes:

Objective-Ces un primer intento de proporcionar soporte para laprogramacin orientada a objetosen C, de escasa difusin, pero actualmente usado enMac OS XyGNUstep.

C++diseado porBjarne Stroustrupfue el segundo intento de proporcionarorientacin a objetosa C y es la variante ms difundida y aceptada. Esta versin combina la flexibilidad y el acceso de bajo nivel de C con las caractersticas de la programacin orientada a objetos como abstraccin, encapsulacin y ocultacin.

Tambin el lenguaje C ha influido especialmente a Vala, C#, Objective-C, C++, AWK, Java, entre otros.

XE "UNA BASE FUNDAMENTAL: LENGUAJE C:Proceso de compilacin" Proceso de compilacin

Lacompilacinde un programa C se realiza en varias fases que normalmente son automatizadas y ocultadas por los entornos de desarrollo:

Preprocesadoconsistente en modificar elcdigo fuenteen C segn una serie de instrucciones (denominadasdirectivas de preprocesado) simplificando de esta forma el trabajo delcompilador. Por ejemplo, una de las acciones ms importantes es la modificacin de las inclusiones (#include) por las declaraciones reales existentes en el archivo indicado.

Compilacinque genera elcdigo objetoa partir del cdigo ya pre procesado.

Enlazadoque une loscdigos objetode los distintos mdulos y bibliotecas externas (como lasbibliotecas del sistema) para generar el programa ejecutable final.

XE "UNA BASE FUNDAMENTAL: LENGUAJE C:Estructura bsica de un programa en C" Estructura bsica de unprogramaen C

La mejor forma deaprenderun lenguaje es programando con l. Elprogramams sencillo que se puede escribir en C es el siguiente:

main ( )

{

}

Como nos podemosimaginar,este programa no hace nada, pero contiene la parte ms importante de cualquier programa C y adems, es el ms pequeo que se puede escribir y que se compile correctamente. En el se define lafuncinmain, que es la que ejecuta el sistema operativo al llamar a un programa C. El nombre de una funcin C siempre va seguida de parntesis, tanto si tieneargumentoscomo si no. La definicin de la funcin est formada por un bloque de sentencias, que esta encerrado entre llaves {}.

Un programa algo ms complicado es el siguiente:

#include

main ( )

{

printf ("Hola amigos!\n");

}

Con el visualizamos el mensaje Hola amigos! en el terminal. En la primera lnea indica que se tengan en cuenta las funciones y tipos definidos en la librera stdio (standard input/output). Estas definiciones se encuentran en el fichero header stdio.h. Ahora, en la funcin main se incluye una nica sentenciaquellamaa la funcin printf. Esta toma comoargumentouna cadena de caracteres, que se imprimen van encerradas entredoblescomillas " ". El smbolo \n indica uncambiode lnea.

Hay ungrupodesmbolos, que sontratadoscomo caracteres individuales, que especifican algunos caracteres especiales delcdigo ASCII. Los ms importantes son:

\aAlerta

\bEspacio atrs

\fSalto de pgina

\nSalto de lnea

\rRetorno decarro

\tTabulacin horizontal

\vTabulacin vertical

\\Barra invertida

\'Comilla simple

\"Comillas dobles

\OOOVisualiza uncarctercuyo cdigoASCIIes OOO en octal

\xHHHVisualiza un carcter cuyo cdigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes mdulos ofuentes. Es conveniente mantener las fuentes de un tamao no muy grande, para que la compilacin sea rpida. Tambin, al dividirse un programa en partes, puede facilitar la legibilidad del programa y su estructuracin. Las diferentes fuentes son compiladas de forma separada, nicamente las fuentes que han sido modificados desde la ltima compilacin, y despus combinados con las libreras necesarias para formar el programa en su versin ejecutable.

Tipos bsicos y variables XE "UNA BASE FUNDAMENTAL: LENGUAJE C:Tipos bsicos y variables" Los tipos de datos bsicos definidos por C son caracteres, nmeros enteros y nmeros en coma flotante. Los caracteres son representados por char, los enteros por short, int, long y los nmeros en coma flotante por float y double. Los tipos bsicos disponibles y su tamao son:

CharCarcter(normalmente 8 bits)

ShortEntero corto con signo(normalmente 16 bits)

IntEntero con signo(depende de la implementacin)

UnsignedEntero sin signo(depende de la implementacin)

LongEntero largo con signo(normalmente 32 bits)

FloatFlotante simple(normalmente 32 bits)

DoubleFlotantedoble(normalmente 64 bits)

Funciones XE "UNA BASE FUNDAMENTAL: LENGUAJE C:Funciones" Un programa C est formado por un conjunto de funciones que al menos contiene la funcin main. Una funcin se declara con el nombre de la funcin precedido del tipo de valor que retorna y una lista de argumentos encerrados entre parntesis. El cuerpo de la funcin est formado por un conjunto de declaracionesy de sentencias comprendidas entre llaves

Expresionesy operadores:

Los distintos operadores permiten formar expresiones tanto aritmticas como lgicas. Los operadores aritmticos y lgicos son:

+, -suma, resta

++, --incremento, decremento

*, /, %multiplicacin, divisin, mdulo

>>,