Anda di halaman 1dari 19

111Programacin de Computadoras.

Un programa de computadora se puede definir como una


secuencia de instrucciones que indica las acciones o tareas que han de ejecutarse para dar
solucin a un problema determinado.

Para llegar a tener una secuencia de instrucciones que den solucin a un problema es necesario
ejecutar varias etapas.

Etapa de anlisis: En esta etapa el programador debe entender claramente el problema. Saber que
es lo que se quiere resolver. (Analizar)

Etapa de Solucin general: Escribir la serie de pasos que sean necesarios para dar solucin al
problema. Estos pasos se pueden desarrollar a travs de un Diagrama de flujo (Utilizando
smbolos) a travs de un seudo lenguaje (Utilizando Lenguaje comn). A lo anterior es lo que se
conoce con el nombre de Algoritmo.

Etapa de prueba: Consiste en chequear el algoritmo paso a paso para estar seguro si la solucin da
solucin verdaderamente el problema. (Prueba de escritorio). Etapa de implementacin
especfica: Consiste en traducir el algoritmo a un lenguaje de programacin. (Codificar).

Etapa de prueba: Consiste en ejecutar el programa en un computador y revisar los datos arrojados
para ver si son correctos y hacer los ajustes necesarios. (Implementar).

Etapa de uso: Consiste en instalar el programa de manera definitiva para el uso por parte del
usuario.

2222No os asustis, la palabra Historia puede sonar fuerte y a veces provoca somnolencia en
quienes la escuchan. Tomen esto ms bien como un cuento que trata de hurgar un poco en el
pasado del ser humano, cuando crearon las mquinas y debieron aprender a comunicarse con
ellas.
Para nada este artculo trata de ser algo estrictamente cientfico, nada ms lejos de la realidad.
Trataremos de enfocarlo como un acercamiento del pblico general al mundo de la informtica, sin
necesidad de tener ningn tipo de conocimiento previo.
Un lenguaje es un mtodo de comunicacin que nos permite comunicarnos con los dems. Si
hablamos con un Ingls deberemos hacerlo en lenguaje ingls, si hablamos con un Japons le
hablaremos en lenguaje Japons pero, y si lo que queremos es hablar con una mquina? Pues
en ese caso debemos de hacerlo en un lenguaje que ella pueda entender: un lenguaje de
programacin.
En realidad estoy mintiendo un poco. Las mquinas solo entienden un lenguaje, el llamado
lenguaje mquina, que no es otra cosa que: electricidad o no electricidad, apagado o encendido,
unos o ceros. Entonces no entiende los lenguajes de programacin?, directamente no, primero
han de ser traducidos al lenguaje mquina bien directa o indirectamente

El lenguaje Mquina Este lenguaje es fcil de entender por una computadora, pero como podris
ver es difcilmente entendible por un humano. Es por ello que con el fin de facilitar el trabajo a los
programadores se cre un tipo de lenguaje que sustitua las secuencias de unos y ceros por
palabras o letras provenientes del ingls, facilitando de este modo la lectura, escritura y posterior
ejecucin de los programas. A los primeros lenguajes de este tipo se les denomin lenguajes de
bajo nivel.
Lenguajes de bajo nivel

Los lenguajes de bajo nivel de abstraccin, son los que estn ms cercanos a la forma de trabajar
de un microprocesador, por lo que son fcilmente trasladados a lenguaje mquina.

El lenguaje ensamblador (Assembly) fue el primer lenguaje de programacin que trat de sustituir
el lenguaje mquina por uno mucho ms parecido al de las personas. Lo que hace es sustituir las
secuencias de cdigo mquina por letras o palabras, por lo que en realidad escribir en lenguaje
ensamblador es bsicamente lo mismo que hacerlo en lenguaje mquina, pero las letras y palabras
son ms fciles de recordar y entender que la secuencias de nmeros binarios.

- Lenguajes de alto nivel

Un lenguaje de alto nivel es aquel que se aproxima ms al lenguaje humano que al lenguaje binario, o
lenguaje mquina. Utiliza palabras y expresiones del lenguaje humano (en ingls), por lo que al ser ms
fcilmente compresible por los programadores aumenta la sencillez y rapidez a la hora de crear programas, a
la par que reduce las posibilidades de equivocarse.

En C# se usan palabras como: if, convert, write, etc Ejemplo:

If (numero1 > numero2)


{
Console.Write (gana el primero);
}
Esto significa que, si el nmero 1 es mayor que el nmero 2, se va a escribir gana el primero en una
ventana de consola.

3335 lenguajes

1. Lenguajes de programacin ms populares: Java

En el ndice TIOBE correspondiente al mes de agosto de 2015, Java tiene el primer lugar
prcticamente indiscutido.

A partir del ao 2012 Java se ha convertido en uno de los lenguajes de programacin ms


populares. Cul es la razn de su xito? Uno de sus principales mritos es la retrocompatibilidad
(o compatibilidad regresiva), lo que lo diferencia de muchos otros lenguajes de programacin que,
al introducir nuevas versiones, dejan obsoletas las anteriores.

Java es de los lenguajes de programacin ms populares porque, adems, permite crear apps para
la web escalables para un sinnmero de usuarios. Java lleva la delantera al momento de
desarrollar aplicaciones para Android, sistema operativo de dispositivos mviles.
En resumen, el diseo de Java, su potencia, el respaldo de amplios sectores de la industria del
software y el hardware, su fiabilidad y su portabilidad lo han convertido en primero entre los
lenguajes de programacin ms populares.

Su crecimiento y uso parece asegurado para el futuro.

2. Lenguajes de programacin ms populares: C

Se trata, sin dudas, del lenguaje de programacin ms popular a la hora de crear software de
sistemas, aunque no son de desdear sus dotes para la creacin de aplicaciones. De hecho, gran
parte de la popularidad de C est basada en que se usa en propsitos diversos, y no solo para los
que fue diseado originalmente.

C es un lenguaje de programacin sencillo que tiene como una de sus principales virtudes que se
puede aprender rpidamente. No est ligado a ningn sistema operativo ni a una mquina
especfica.

Sus aplicaciones han sido variadas: desde la programacin en sistemas UNIX hasta el desarrollo de
sistemas operativos como GNU/Linux o Windows. Aplicaciones de escritorio como GIMP
programa de edicin de imgenes similar al Photoshop de Adobe, pero gratis! tienen a C como
principal lenguaje de programacin.

C se encontraba, hace exactamente un ao, en agosto de 2014, en el primer lugar del ndice
TIOBE, lo que habla muy bien de su popularidad como lenguaje de programacin.

3. Lenguajes de programacin ms populares: C++

Podramos decir que se trata de una extensin del lenguaje de programacin C que permite la
manipulacin de objetos.
Se trata de un lenguaje verstil, multiplataforma, que ofrece gran rendimiento y que no parece
pasar de moda.

Photoshop, Autodesk y otros programas populares incluidos muchos videojuegos estn


hechos en C++, uno de los lenguajes preferidos por la industria.

4. Lenguajes de programacin ms populares: C#

C# es el cuarto lugar de la lista TIOBE, en agosto, y es un lenguaje de programacin orientado a


objetos (OOP, segn las siglas en ingls). Ha sido desarrollado por el gigante Microsoft. Est
diseado para la utilizacin de la infraestructura de lenguaje comn.

Se deriva de la sintaxis del C y del C++. Es una herramienta ideal para abordar la creacin de
aplicaciones complejas con facilidad. Con C# no solo podemos escribir programas para la web, sino
otros de tipo ms general.

Los programadores recomiendan aprender C# sobre todo a los que se interesan en programar
apps para Windows, ya que el C# es su lenguaje de programacin estndar.

5. Lenguajes de programacin ms populares: Python

Python es ampliamente considerado uno de los lenguajes de programacin ms populares, sobre


todo porque es de los ms fciles de aprender. Es el que recomendamos para los programadores
noveles.

Se trata de un lenguaje de programacin interpretado y multiparadigma (admite ms de un


paradigma de programacin, ms de un estilo).
Python surgi a fines de los aos ochenta del siglo pasado y est hecho para ser legible con
facilidad. Uno de sus puntos ms interesantes es el uso de palabras donde otros lenguajes utilizan
smbolos.

A su alrededor se ha constituido una nutrida comunidad de programadores y seguidores. Su


campo de aplicacin fundamental podra ser el de las ciencias, el desarrollo web y de aplicaciones
de escritorio (sobre todo para comenzar).

444

La programacin ha pasado por diferentes etapas histricas, en las que se fue evolucionando
desde formas de programar directas en la computadora, hasta formas que estn ms cercanas del
algoritmo de solucin de los problemas. Asi se puede decir que la programacin de computadoras
es la ciencia que permite a una persona programar una computadora para que resuelva tareas de
manera rpida. por su parte un Programa de computadora se puede definir como una secuencia de
instrucciones que indica las acciones o tareas que han de ejecutarse para dar solucin a un
problema determinado. se puede afirar que programar computadoras es indispensable en cualquier
rea laboral, ya que diferentes problemas que se puedan presentar tardan tiempo resolverlos de
manera manual. La computadora resuelve problemas de acuerdo como se le haya programado de
manera rpida.

RUBY: es un lenguaje con un balance cuidado. Su creador, Yukihiro Matz Matsumoto,


mezcl partes de sus lenguajes favoritos (Perl, Smalltalk, Eiffel, Ada, y Lisp) para formar un nuevo
lenguaje que incorporara tanto la programacin funcional como la programacin imperativa.
Rpidamente se convirti en uno de los grandes protagonistas del desarrollo web.
ASP.net: Fue creado por la Microsoft, es usado por programadores para construir sitios
web dinmicos, aplicaciones web y servicios web XML.

AJAX: Ajax es una tecnologa asncrona, en el sentido de


que los datos adicionales se solicitan al servidor y se cargan en segundo plano sin interferir con la
visualizacin ni el comportamiento de la pgina. JavaScript es el lenguaje interpretado (scripting
language) en el que normalmente se efectan las funciones de llamada de Ajax mientras que el
acceso a los datos se realiza mediante XMLHttpRequest, objeto disponible en los navegadores
actuales. En cualquier caso, no es necesario que el contenido asncrono est formateado en XML.

OBJETIVE C: Para ser un lenguaje de programacin creado en 1980, Objetive C sigue


estando en plena forma. Tanta que forma parte del core sobre el que se desarrollan los lenguajes
de programacin que emplea Apple en sus sistemas operativos, siendo el autntico corazn de
iOS.

PHP: es un lenguaje de cdigo abierto muy popular especialmente adecuado para el


desarrollo web y que puede ser incrustado en HTML. Actualmente es el responsable de
que ms de 20 millones de webs de todo el mundo puedan seguir estando operativas,
incluyendo algunas tan populares como Facebook o Wikipedia

PYTHON: es un lenguaje de programacin


multiparadigma. Esto significa que ms que forzar a los programadores a adoptar un estilo
particular de programacin, permite varios estilos: programacin orientada a objetos,
programacin imperativa y programacin funcional. Otros paradigmas estn soportados
mediante el uso de extensiones. Es utilizado por empresas como Google o la NASA. Es
adems el lenguaje de programacin responsable de que funcione un servicio como
Dropbox.

PERL: La estructura completa de Perl deriva ampliamente del


lenguaje C. Perl es un lenguaje imperativo, con variables, expresiones, asignaciones,
bloques de cdigo delimitados por llaves, estructuras de control y subrutinas. Adems de
ser muy utilizado en desarrollo web, tambin es utilizado en administracin de sistemas,
desarrollo de aplicaciones de escritorio, desarrollo de videojuegos, e incluso en reas tan
especficas como la bioinformtica.

C: El lenguaje de programacin C lleva desde 1972 y sigue siendo uno de los ms


utilizados de todo el mundo. Carece del atractivo que s tienen muchos frameworks
orientados a la web, pero C sigue siendo esencial en el desarrollo de sistemas operativos
o drivers.

C#: A no confundir con C o con C++, C# es en realidad un lenguaje de programacin


orientado a objetos, desarrollado por Microsoft en el ao 2000 para competir con Java. No
importa si es mejor o peor que el lenguaje desarrollado por Sun, porque lo cierto es que
es un lenguaje cada vez ms demandado por las empresas.
XML: no ha nacido slo para su aplicacin para
Internet, sino que se propone como un estndar para el intercambio de informacin
estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de
texto, hojas de clculo y casi cualquier cosa imaginable.

C++: Como su predecesor (C), C++ es ampliamente utilizado para el desarrollo de


sistemas operativos, aplicaciones de escritorio, drivers y mucho ms. Se ha ganado fama
de ser ms complejo e ineficiente que algunos de sus competidores pero aun as sigue
siendo uno de los ms importantes de la actualidad.
JAVASCRIPT: Se utiliza principalmente
en su forma del lado del cliente (client-side), implementado como parte de un navegador
web permitiendo mejoras en la interfaz de usuario y pginas web dinmicas aunque existe
una forma de JavaScript del lado del servidor (Server-side JavaScript o SSJS). Su uso en
aplicaciones externas a la web, por ejemplo en documentos PDF, aplicaciones de
escritorio (mayoritariamente widgets) es tambin significativo. Actualmente su uso se ha
disparado con la llegada de smartphones y tablets, desplazando a flash en muchas de sus
funciones.

HTML: significa HyperText Markup Language, es el lenguaje en que se escriben los


millones de documentos que hoy existen en el World Wide Web. Cuando accedemos a
uno de estos documentos, el cliente (Netscape, IE, Mosaic, Lynx, Mozilla) los interpreta y
los muestra.
JAVA: es una tecnologa que se usa para el desarrollo
de aplicaciones que convierten a la Web en un elemento ms interesante y til. Java no es lo
mismo que javascript, que se trata de una tecnologa sencilla que se usa para crear pginas web y
solamente se ejecuta en el explorador. Java le permite jugar, cargar fotografas, chatear en lnea,
realizar visitas virtuales y utilizar servicios como, por ejemplo, cursos en lnea, servicios bancarios
en lnea y mapas interactivos. Si no dispone de Java, muchas aplicaciones y sitios web no
funcionarn.

SQL: Es cierto que las bases de datos basadas en


desarrollos No SQL estn creciendo en popularidad en los ltimos tiempos, pero sigue
habiendo una tremenda base instalada que precisamente se basa en SQL y sus
derivados. Teniendo adems en cuenta el auge de fenmenos como el Big Data, cada
vez ms empresas demandan a expertos en programacin para bases de datos y ah
SQL sigue siendo el Rey.
ENTORNO DE DESARROLLO
INTERADO (IDE) Y SU USO EN LA
ACTUALIDAD

Los IDES, son un programa compuesto por un conjunto de


herramientas para un programador, es decir, consiste en un editor de cdigo, un compilador, un
depurador y un constructor de interfaz grfica (GUI). Algunos entornos son compatibles con
mltiples lenguajes de programacin, como Eclipse o NetBeans, ambos basados en Java; o
MonoDevelop, basado en C#. Tambin puede incorporarse la funcionalidad para lenguajes
alternativos mediante el uso de plugins. Por ejemplo, Eclipse y NetBeans tienen plugins para C,
C++, Ada, Perl, Python, Ruby y PHP, entre otros.
Muchos de los programadores de Unix argumentan que las herramientas de la lnea de comandos
POSIX constituyen un IDE, aunque con un estilo diferente de la interfaz y en el entorno Unix.
Adems, muchos programadores de Unix utilizan Emacs o Vim.

En las distintas plataformas de Microsoft Windows, las herramientas de lnea de comando para el
desarrollo rara vez se utilizan. En consecuencia, hay muchas soluciones comerciales y no
comerciales; sin embargo cada uno tiene un diseo diferente que comnmente crean
incompatibilidades. La mayora de los principales proveedores de compiladores para Windows
siguen ofreciendo copias gratuitas de sus herramientas de lnea de comando. Adems las
herramientas del software libre GNU (gcc, gdb) estn disponibles en muchas plataformas,
incluyendo Windows.
Algunos entornos libres, como Code::Blocks, Eclipse, Lazarus, KDevelop y Netbeans, que a su vez
se desarrollan utilizando un lenguaje multiplataforma (por ejemplo, Free Pascal o Java), se
ejecutan en diversas plataformas, incluyendo Windows, GNU/Linux, y Mac OS X.

SISTEMAS OPERATIVOS Y

555

Buenas prcticas de programacin

Las buenas prcticas diferencian a los buenos programadores de los malos programadores. Son ciertas reglas o
lineamientos acordados de manera informal por la industria del software para producir cdigo de alta calidad.

Es altamente aconsejable adoptarlas desde los comienzos, ya que los malos hbitos no son sencillos de desterrar una
vez adquiridos.

Esta es una lista, no taxativa, de algunas sugerencias ampliamente aceptadas en el mbito profesional:

Identificadores representativos

Se deben aplicar en los nombres de variables, funciones, tipos de dato, etc.

Los identificadores representan datos reales, por ende, son ms fciles de interpretar si se usan nombres reales.
Identificadores consistentes

Utilizar un mismo estilo de nombre, sin mezclar. Por ejemplo, elegir entre escribir los nombres como unaVariable,
una_variable UnaVariable.

Algo que tambin puede hacerse es cambiar el estilo por cada tipo de identificador: variables, constantes, funciones,
tipos de datos. Por ejemplo, las constantes suelen escribirse con sus identificadores completamente en maysculas,
por ejemplo: INT_MAX.

Formato consistente

Usar sangra (indentacin) siempre de la misma forma (con espacios o con tabulaciones) y alineando de la misma
manera las lneas de cdigo que componen cada bloque.

Usar consistentemente los espacios y las lneas en blanco (por ejemplo, despus de cada mdulo, dejar siempre la
misma cantidad de lneas en blanco).

Evitar variables globales

Causan ambigedad al no poder predecirse el valor que tendrn en determinado punto de la ejecucin del programa,
ya que su valor puede cambiarse desde cualquier parte del cdigo. Este problema se intensifica a medida que las
lneas de cdigo aumentan y cuando ms de un programador trabaja en l.

Adems, las variables globales obstaculizan la legibilidad del cdigo, al referir a datos que no se encuentran dentro
del mdulo que las usa, y dificultan las pruebas o deteccin de errores.

Por ltimo, generan acoplamiento en el cdigo.

No se deben confundir las variables globales con constantes o definiciones de tipo, que suelen utilizarse de manera
global y esto es correcto.

Documentacin

As como cualquier producto tiene un manual de instrucciones, el cdigo debe tener tambin descripciones sobre
cmo usarlo correctamente. El usuario del cdigo, habitualmente, ser un programador, ya sea un tercero o el
mismo programador que lo escribi (teniendo en cuenta que, pasado cierto tiempo, ser muy difcil recordar por qu
y con qu intencin se escribi el cdigo de determinada manera).

Adems, existen herramientas que son capaces de generar archivos o apartados de documentacin de manera
automtica, a partir de la documentacin incluida en el cdigo.

Normalmente, al documentar un mdulo se incluye: nombre, propsito, descripcin, autor original, cambios
hechos, autor de los cambios.

Tambin es buena prctica incluir, junto a la documentacin, casos de prueba (test cases) que permitan validar el
cdigo ante cualquier modificacin que se haga. Para que sean correctos, los casos de prueba deben validar el
cdigo con datos vlidos, datos invlidos, datos lmite (el primer o el ltimo valor admitido), sin datos, y cualquier
otra posibilidad que pueda incluirse.

Comentarios

Su utilidad es similar a la de la documentacin.

Se deben evitar obviedades (por ejemplo, decir se asigna un valor a la variable cuando el cdigo claramente
muestra una asignacin). Un buen comentario aclara qu hace el cdigo ypor qu se decidi hacerlo de esa manera.

Cuando se trabaja en equipo, los comentarios deben hacerse en un idioma que resulte neutral para todos los
integrantes (por ejemplo, ingls, si el equipo incluye integrantes que no son de habla hispana).

Agrupar los literales en un nico lugar

Evitar desparramar valores literales a lo largo de todo el cdigo permite hacer modificaciones centralizadas. Por
esto, los literales deben, preferentemente, ubicarse en una nica seccin del cdigo y referirse a ellos
simblicamente desde cada lugar donde se necesiten.

A la prctica de colocar valores literales cuando podran haberse usado referencias se la llama hard-coding.

Por ejemplo, si se utiliza un valor fijo en un clculo que debe hacerse en varias partes del cdigo, es conveniente
que ese valor se declare como constante y luego se utilice el nombre de la misma cada vez que sea necesario. De
esta manera, llegado el caso de realizar una modificacin, ser suficiente con hacerla en un solo punto del cdigo.

Modularizacin

Las tareas deben subdividirse.

Modularizar permite que el cdigo sea reusable, no slo dentro del mismo programa sino en otros programas que
requieran funcionalidad similar.

Los mdulos deben ser atmicos, es decir, realizar slo una tarea. Es preferible invocar a ms de un mdulo que
abarcar varias tareas en uno.

Adems de la reutilizacin, una buena modularizacin permite aislar problemas ms fcilmente.

Simplicidad y claridad

Evitar la complejidad innecesaria que hace que un cdigo sea menos legible. No slo lo hace ilegible para terceros,
sino para el propio programador, cuando necesita volver a utilizar ese cdigo tiempo despus de haberlo escrito.

La complejidad podra estar, no slo en el algoritmo, sino en la forma de escribirlo: a veces, es mejor escribir
algunas lneas ms antes que abreviar demasiado.
Comprobar validez de datos externos

Asumir que el usuario puede proporcionar datos en un formato diferente al esperado por el programa. El usuario
puede ser un humano o incluso otro programa u otra mquina, y la incongruencia puede ser causada por error o por
malicia.

Se debe evitar que el programa se detenga o quede inconsistente, para que pueda continuarse trabajando sin
alteraciones.

Mensajes de error adecuados

En pos de la usabilidad, es necesario no aturdir al usuario con mensajes de error que le brinden informacin que
l desconoce. Pero, a la vez, los detalles de un error deben quedar almacenados en alguna parte, accesibles para la
persona con el conocimiento tcnico para lidiar con ese error. Por ejemplo, podran almacenarse en algn log.

Portabilidad

Permite ejecutar el mismo cdigo en diferentes entornos.

Por eso, se deben evitar las rutas absolutas (que hacen referencia al sistema de archivos de una mquina en
particular), indicar literalmente direcciones IP, nombres de usuarios o contraseas, utilizar libreras que slo corren
en determinado sistema operativo, etc.

No dar por sentado el formato de salida de los datos

Cuando un mdulo o expresin retorna algn valor, ste podra tener diferentes fines, dependiendo del uso que se le
de al programa.

No siempre un programa es utilizado por un usuario humano, sino que podra resultar que el usuario sea otro
programa, que utiliza los datos para continuar procesndolos. Por esto, los datos pueden tener diferente fin: a veces
se necesitar imprimirlos, a veces enviarlos a travs de una red (en diversos formatos), otras veces los datos de
salida de un programa sern la entrada de otro.

Bajo acoplamiento

El grado de acoplamiento indica la interdependencia entre mdulos, es decir, en qu medida dependen de la


implementacin o estado interno del otro.

La transitividad puede utilizarse como medida del acoplamiento: suponiendo que un mdulo A invoca al mdulo B
y ste invoca al mdulo C, el mdulo A debera conocer lo menos posible el funcionamiento del mdulo C.
Mientras ms requiera A conocer de C, ms acoplados estarn.
Cuanto mayor sea el acoplamiento, mayor ser la dificultad al modificar o reemplazar algn mdulo, y mayor ser
la dificultad para probar su funcionamiento.

La posibilidad de aislar lo ms posible los mdulos tambin facilita el trabajo en equipo sin necesidad de
comprender todo el resto del cdigo y sin riesgo de que una modificacin altere el trabajo que est haciendo otra
persona.

Alta cohesin

Todo agrupamiento de datos debe tener sentido. Todo lo que se agrupe de alguna manera (por ejemplo, en una
estructura de datos o en un archivo) debe tener una cercana interrelacin.

Esto permite un fcil reemplazo de mdulos y un buen orden en el cdigo.

Con las buenas prcticas se logra que el cdigo tenga

Legibilidad
Eficiencia: utilizacin ptima de los recursos.
Robustez y confiabilidad: tolerancia a fallas.
Mantenibilidad: facilidad para corregir errores.
Adaptabilidad: ante requerimientos cambiantes o nueva funcionalidad.
Conformidad con estndares: por ejemplo, para comunicarse con otro programa.
Usabilidad: utilizar ms fcilmente el cdigo.
Menor costo de desarrollo: evaluado en tiempo y dinero.

666 Aunque C# forma parte de la plataforma .NET, sta es una API, mientras que C# es un
lenguaje de programacin independiente diseado para generar programas sobre dicha
plataforma. Ya existe un compilador implementado que provee el marco Mono -DotGNU, el
cual genera programas para distintas plataformas
como Windows, Unix, Android, iOS, Windows Phone, Mac OS yGNU/Linux.

Lenguaje C#

La sintaxis de C# es muy expresiva, pero tambin es sencilla y fcil de aprender. La sintaxis


de C# basada en signos de llave podr ser reconocida inmediatamente por cualquier persona
familiarizada con C, C++ o Java. Los desarrolladores que conocen cualquiera de estos
lenguajes pueden empezar a trabajar de forma productiva en C# en un plazo muy breve. La
sintaxis de C# simplifica muchas de las complejidades de C++ y proporciona caractersticas
eficaces tales como tipos de valor que admiten valores NULL, enumeraciones, delegados,
expresiones lambda y acceso directo a memoria, que no se encuentran en Java. C# admite
mtodos y tipos genricos, que proporcionan mayor rendimiento y seguridad de tipos, e
iteradores, que permiten a los implementadores de clases de coleccin definir
comportamientos de iteracin personalizados que el cdigo cliente puede utilizar fcilmente.
Las expresiones Language-Integrated Query (LINQ) convierten la consulta fuertemente tipada
en una construccin de lenguaje de primera clase.
Como lenguaje orientado a objetos, C# admite los conceptos de encapsulacin, herencia y
polimorfismo. Todas las variables y mtodos, incluido el mtodo Main que es el punto de
entrada de la aplicacin, se encapsulan dentro de definiciones de clase. Una clase puede
heredar directamente de una clase primaria, pero puede implementar cualquier nmero de
interfaces. Los mtodos que reemplazan a los mtodos virtuales en una clase primaria
requieren la palabra clave override como medio para evitar redefiniciones accidentales. En
C#, una struct es como una clase sencilla; es un tipo asignado en la pila que puede
implementar interfaces pero que no admite la herencia.
Adems de estos principios bsicos orientados a objetos, C# facilita el desarrollo de
componentes de software a travs de varias construcciones de lenguaje innovadoras, entre
las que se incluyen las siguientes:
Firmas de mtodos encapsulados denominadas delegados, que habilitan
notificaciones de eventos con seguridad de tipos.
Propiedades, que actan como descriptores de acceso para variables miembro
privadas.
Atributos, que proporcionan metadatos declarativos sobre tipos en tiempo de
ejecucin.
Comentarios en lnea de documentacin XML.
Language-Integrated Query (LINQ) que proporciona funciones de consulta integradas
en una gran variedad de orgenes de datos.
Si necesita interactuar con otro software de Windows, como objetos COM o archivos DLL
nativos de Win32, podr hacerlo en C# mediante un proceso denominado "interoperabilidad".
La interoperabilidad habilita los programas de C# para que puedan realizar prcticamente las
mismas tareas que una aplicacin C++ nativa. C# admite incluso el uso de punteros y el
concepto de cdigo "no seguro" en los casos en que el acceso directo a la memoria es
totalmente crtico.
El proceso de compilacin de C# es simple en comparacin con el de C y C++, y es ms
flexible que en Java. No hay archivos de encabezado independientes, ni se requiere que los
mtodos y los tipos se declaren en un orden determinado. Un archivo de cdigo fuente de C#
puede definir cualquier nmero de clases, structs, interfaces y eventos.
A continuacin se enumeran otros recursos de C#:
Para disponer de una introduccin general al lenguaje, vea el captulo 1
de Especificacin del lenguaje C#.
Para obtener informacin detallada sobre aspectos concretos del lenguaje C#,
vea Referencia de C#.
Para obtener ms informacin sobre LINQ, vea LINQ (Language-Integrated Query).
Para buscar los artculos y recursos ms recientes del equipo de Visual C#, vea Visual
C#.
Arquitectura de la plataforma .NET Framework

Los programas de C# se ejecutan en .NET Framework, un componente que forma parte de


Windows y que incluye un sistema de ejecucin virtual denominado Common Language
Runtime (CLR) y un conjunto unificado de bibliotecas de clases. CLR es la implementacin
comercial de Microsoft de CLI (Common Language Infrastructure), un estndar internacional
que constituye la base para crear entornos de ejecucin y desarrollo en los que los lenguajes y
las bibliotecas trabajan juntos sin ningn problema.
El cdigo fuente escrito en C# se compila en un lenguaje intermedio (IL) conforme con la
especificacin CLI. El cdigo de lenguaje intermedio y recursos tales como mapas de bits y
cadenas se almacenan en disco en un archivo ejecutable denominado ensamblado, cuya
extensin es .exe o .dll generalmente. Un ensamblado contiene un manifiesto que proporciona
informacin sobre los tipos, la versin, la referencia cultural y los requisitos de seguridad del
ensamblado.
Cuando se ejecuta un programa de C#, el ensamblado se carga en CLR, con lo que se
pueden realizar diversas acciones en funcin de la informacin del manifiesto. A continuacin,
si se cumplen los requisitos de seguridad, CLR realiza una compilacin Just In Time (JIT) para
convertir el cdigo de lenguaje intermedio en instrucciones mquina nativas. CLR tambin
proporciona otros servicios relacionados con la recoleccin de elementos no utilizados
automtica, el control de excepciones y la administracin de recursos. El cdigo ejecutado por
CLR se denomina algunas veces "cdigo administrado", en contraposicin al "cdigo no
administrado" que se compila en lenguaje mquina nativo destinado a un sistema especfico.
En el diagrama siguiente se muestran las relaciones en tiempo de compilacin y tiempo de
ejecucin de los archivos de cdigo fuente de C#, las bibliotecas de clases de .NET
Framework, los ensamblados y CLR.

Anda mungkin juga menyukai