Trabajo programación (caracteristicas, versiones y desarrolladores de c#)
1. UNIVERSIDAD GERARDO
BARRIOS
Catedrático:
Pedro Antonio Villalta.
Cátedra:
Programación Computacional II.
Tema:
Características, versiones y desarrolladores sobre C#.
Alumno:
Fidel Ángel Sandoval Bran----------Usis029213.
NOTA: _____________
Día 03 de Febrero del año 2014
2. Características principales de C#
•Sencillez de uso
C# elimina muchos elementos añadidos por otros lenguajes y que facilitan su uso y
compresión, como por ejemplo ficheros de cabecera, o ficheros fuentes IDL1 Es por ello
2
1
.
que se dice que C# esauto contenido. Además, no se incorporan al lenguaje elementos
pocoútiles, como por ejemplo macros, herencia múltiple u operadoresdiferentes al
operador de acceso a métodos (operador punto) paraacceder a miembros de espacios de
nombres.
•Modernidad
Al ser C# un lenguaje de última generación, incorpora elementos que seha demostrado a
lo largo del tiempo que son muy útiles para elprogramador, como tipos decimales
oBooleanos, un tipo básicostring,así como una instrucción que permita recorrer
colecciones con facilidad(instrucciónforeach. Estos elementos hay que simularlos en
otroslenguajes como C++ o Java.
•Orientado a objetos
C# como lenguaje de última generación, y de propósito general, esorientado a objetos. C#
no permite la inclusión de funciones ni variablesglobales que no estén incluidos en una
definición de tipos, por lo que laorientación a objetos es más pura y clara que en otros
lenguajes comoC++. Además, C# soporta todas las características del paradigma de
laprogramación orientada a objetos, como son laEncapsulación, laherenciay
elPolimorfismo.
•Orientado a componentes
La propia sintaxis de C# incluye elementos propios del diseño decomponentes que otros
lenguajes tienen que simular. La sintaxis de C#incluye por ejemplo formas de
definirpropiedades,eventosoatributos.
•Recolección de basura
Como ya se comentó, todo lenguaje incluido en la plataforma .NET tienea su disposición el
recolector de basura del CLR. Esto implica que no esnecesario incluir instrucciones de
destrucción de objetos en el lenguaje.
•Seguridad de tipos
C# incluye mecanismos de control de acceso a tipos de datos, lo quegarantiza que no se
produzcan errores difíciles de detectar como unacceso a memoria de ningún objeto,
por ejemplo. Para ello, el lenguajeprovee de una serie de normas de sintaxis, como por
ejemplo no realizarconversiones entre tipos que no sean compatibles. Además, no
sepueden usar variables no inicializadas previamente, y en el acceso atablas se hace una
comprobación de rangos para que no se excedanninguno de los índices de la misma. Se
puede controlar así mismo losdesbordamientos en operaciones aritméticas,
produciéndose excepciones cuando se produzcan.
•Instrucciones seguras
Para evitar errores comunes como se producían programando en otroslenguajes, en C# se
han impuesto una serie de restricciones en el uso deinstrucciones de control más
3. comunes. Por ejemplo, la evaluación detoda condición ha de ser una expresión
condicional y no aritmética,como ocurría por ejemplo en C o en C++. Así se evitan errores
porconfusión del operador igualdad con el de asignación. Otra restricciónque se impone
en la instrucción de selecciónswitch, imponiendo quetoda selectora de la instrucción
finalice con una instrucciónbreakogotoque indique cuál es la siguiente acción a realizar.
•Unificación de tipos
En C# todos los tipos derivan de una superclase común llamadaSystem.Object, por lo que
automáticamente heredarán todos losmiembros definidos en esta clase. Es decir,
sonobjetos. A diferencia de Java, en C# esta característica también se aplica para los tipos
básicos.
•Extensión de los operadores básicos
Para facilitar la legibilidad de código y conseguir que los nuevos tipos dedatos que se
definan a través de las estructuras estén al mismo nivelque los elementos predefinidos en
el lenguaje, al igual que C++ pero adiferencia de Java, C# permite redefinir el significado
de la mayoría delos operadores (incluidos el de la conversión) cuando se apliquen a
diferentes tipos de objetos.Las redefiniciones de operadores se hacen de manera
inteligente, de modo que a partir de una única definición de los operadores++y-el
compilador puede deducir automáticamente cómo ejecutarlos de manera prefija y
postfija. Definiendooperadores simples como la suma, el compilador deduce como aplicar
la versión deasignación compuesta (+=). Además, para asegurar la consistencia, el
compilador exige que los operadores con opuesto (como por ejemplo el operador
igualdad==ysu opuesto!=) siempre se redefinan por parejas.
•Extensión de modificadores
C# ofrece, a través de losatributos, la posibilidad de añadir a losmetadatos del módulo
resultante de la compilación de cualquier fuenteinformación adicional a la generada por el
compilador que luego podráser consultada en tiempo de ejecución a través de la
biblioteca dereflexión de .NET.
•Eficiente
En C#, todo el código incluye numerosas restricciones para garantizar suseguridad, no
permitiendo el uso de punteros. Sin embargo, y adiferencia de Java, existen modificadores
para saltarse esta restricción,pudiendo manipular objetos a través de punteros. Para ello
bastaidentificar regiones de código con el identificadorunsafe y podránusarse en ellas
punteros de forma similar a como se hace en C++. Estacaracterística puede resultar de
utilidad en situaciones en las que senecesite gran velocidad de procesamiento.
4. VERSIONES Y DESARROLLADORES DE LENGUAJE DE
PROGRAMACIÓN
AÑO
1943
1955
1958
1959
1967
NOMBRE
PLANKALKÜL
FORTRAN
LISP
COBOL
LOGO
1969
B
1970
1970
PASCAL
FORTH
1972
1973
1974
C
ML
SQL
1975
1980
1980
1980
1983
1984
1985
1986
1987
1988
1988 (puesto a la venta)
1989
1990
1991
1991
1991
SCHEME
SMALLTALK
ADA
OBJETIVE-C
C++
MATLAB
EIFFEL
ERLANG
PERL
TCL
MATHEMATICA
FL
HASKELL
PYTHON
VISUAL BASIC
HTML
1993
LUA
1995
RUBY
DESARROLLADOR
Konrad Zuse
John Backus
John McCarthy
Short RangeCommittee
WallyFeurzeig y Seymour
Papert
Kanneth L, Thompson,
Dennis M y Ritchie
NiklausWirth
Charles H. Moore y Elisabeth
Rather
Dennis M. Ritchie
RobinMilner
Donald D. Chamberlin y
Raymond F. Boyce
Guy L, Steele y Gerald Jay
Alan Kay
Jean Ichbiah y Tucker Taft
Brad Cox
BjarneStroustrup
MathWorks
Bertrand Meyer
Ericsson
Larry Wall
TCL CoreTeam
WolframResearch
Backus
Haskell Curry
Python Software Foundation
Microsoft
World Wide Web
Consortium y WHATWG
Roberto lerusalimschy
Waldemar Celes
Luiz Henrique
Comunidad de Ruby
5. AÑO
NOMBRE
JAVA
1995
1995
1995
Delphi(Object Pascal)
JAVASCRIPT
1995
1999
PHP
D
2000
2003
2003
2007
2009
2011
C#
Groovy
scala
CLOJURE
GO
Dart
DESARROLLADOR
James Gosling y Sun
Microsystems
Embarcdero Technologies
Netscape
CommunicationsCorp
Mozilla Fundation
PHP Group
DihitalMars
AndreiAlexandrescu
Microsoft
JCP
Laboratorios de EPFL
RichHickey
Google
Google
C#:
(pronunciado si sharp en inglés) es un lenguaje de programación orientado a
objetos desarrollado y estandarizado por Microsoftcomo parte de su plataforma.NET, que
después fue aprobado como un estándar por la ECMA (ECMA-334) eISO (ISO/IEC 23270).
C# es uno de los lenguajes de programación diseñados para la infraestructura de lenguaje
común.
Su sintaxis básica deriva deC/C++ y utiliza el modelo de objetos de la plataforma .NET,
similar al de Java, aunque incluye mejoras derivadas de otros lenguajes.
El nombre C Sharp fue inspirado por la notación musical, donde '#' (sostenido, en
inglés sharp) indica que la nota (C es la nota do en inglés) es unsemitono más alta,
sugiriendo que C# es superior a C/C++. Además, el signo '#' se compone de cuatro signos
'+' pegados.1
Aunque C# forma parte de la plataforma .NET, ésta es una API, mientras que C# es un
lenguaje de programación independiente diseñado para generar programas sobre dicha
plataforma. Ya existe un compiladorimplementado que provee el marco Mono - DotGNU,
el cual genera programas para distintas plataformas
como Windows, Unix, Android, iOS,WindowsPhone, Mac OS y GNU/Linux.