SlideShare una empresa de Scribd logo
1 de 6
Breve historia de C / C++ / C#
Durante el desarrollo de la plataforma .NET, las bibliotecas de clases fueron escritas originalmente usando un
sistema de código gestionado llamado Simple Managed C (SMC). En enero de 1999, Anders Hejlsberg formó
un equipo con la misión de desarrollar un nuevo lenguaje de programación llamado Cool (Lenguaje C
orientado a objetos). Este nombre tuvo que ser cambiado debido a problemas de marca, pasando a llamarse
C#.2 La biblioteca de clases de la plataforma .NET fue migrada entonces al nuevo lenguaje.
Hejlsberg lideró el proyecto de desarrollo de C#. Anteriormente, ya había participado en el desarrollo de otros
lenguajes como Turbo Pascal, Delphi y J+.
La historia de C parte de un lenguaje anterior, el lenguaje B, escrito por Ken Thompson en 1970 con el
objetivo de recodificar el sistema operativo UNIX, que hasta el momento se había programado en
ensamblador. La pega del ensamblador era que lo ligaba a una serie de máquinas concretas, por lo que
conseguirun lenguaje abstraído de cada máquina conseguiría una portabilidad del sistema muchísimo mayor.
A su vez B fue inspirado en el BCPL de Martin Richard, diseñado tres años antes.
En 1972 es Dennis Ritchie (de los Laboratorios Bell de AT&T) quien diseña finalmente C a partir del B de
Thompson, aportando un diseño de tipos y estructuras de datos que consiguen una claridad y eficacia en el
lenguaje muy superior. Es un lenguaje que permite realizar una programación estructurada economizando las
expresiones, con abundancia de operadores y tipos de datos (aunque los básicos sean pocos),codificando en
alto y bajo nivel simultáneamente, reemplazando ventajosamente la programación en ensamblador y
permitiendo una utilización natural de las funciones primitivas del sistema. Además, no está orientado a
ningún área en especial y sobre todo consigue un código objeto altamente optimizado que repercute en que los
programas son muy rápidos.
Durante muchos años no existen reglas estándarpara el lenguaje, pero en 1983 se decide formar un comité
con el objetivo de crear el estándarANSI (Instituto Nacional Americano de Estándares). El proceso dura seis
años y a principios de los 90 el estándares reconocido por la ISO (Organización Internacional de Estándares)
y comienza a comercializarse con el nombre ANSI C.
Paralelamente, en 1980 surge C++ de la mano de Bjarne Stroustrup (también de Laboratorios Bell de AT&T).
Diseña este lenguaje con el objetivo de añadir a C nuevas características: clases y funciones virtuales (de
SIMULA67), tipos genéricos y expresiones (de ADA), la posibilidad de declarar variables en cualquier punto
del programa (de ALGOL68), y sobre todo, un auténtico motor de objetos con herencia múltiple que permite
combinar la programación imperativa de C con la programación orientada a objetos.Estas nuevas
características mantienen siempre la esencia del lenguaje C: otorgan el control absoluto de la aplicación al
programador, consiguiendo una velocidad muy superior a la ofrecida por otros lenguajes.El siguiente hecho
fundamental en la evolución de C++ es sin duda la incorporación de la librería STL años más tarde, obra de
Alexander Stepanov y Adrew Koening. Esta librería de clases con contenedores y algoritmos genéricos
proporciona a C++ una potencia única entre los lenguajes de alto nivel.
Debido al éxito del lenguaje, en 1990 se reúnen las organizaciones ANSI e ISO para definir un estándarque
formalice el lenguaje. El proceso culmina en 1998 con la aprobación del ANSI C++.
La última variante que ha surgido de C es el moderno C#. En el año 2000, Microsoft presenta su plataforma
.NET junto con un nuevo lenguaje, C# (diseñado por Anders Hejlsberg), que servirá de lenguaje principal de
la plataforma. C# es un híbrido de C++ y Java que fusiona, principalmente, la capacidad de combinar
operadores propia del primero (no incorpora la herencia múltiple) con la plena orientación a objetos del
segundo.La orientación a objetos es tal que el propio programa está encapsulado en una clase.Actualmente
C# se encuentra entre los 10 lenguajes más utilizados. A pesar de su corta historia, ha recibido la aprobación
del estándarde dos organizaciones: en el 2001 se aprueba el ECMA y en el 2003 el ISO.
Información sobre C#
C# (pronunciado si sharp en inglés) es un lenguaje de programación orientado a objetos desarrollado y
estandarizado por Microsoft como parte de su plataforma .NET, que después fue aprobado como un estándar
por la ECMA (ECMA-334) e ISO (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 de C/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 un semitono 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
compilador implementado que provee el marco Mono - DotGNU, el cual genera programas para distintas
plataformas como Windows, Unix, Android, iOS, Windows Phone, Mac OS y GNU/Linux
Características principales de C#
A continuación enumeramos las principales características que definen al lenguaje de programación C#.
Algunas de estas características no son propias del lenguaje, sino de la plataforma .NET, aunque se listan aquí
ya que tienen una implicación directa en el lenguaje.
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.12. Es por ello que se dice que C# es auto contenido.
Además, no se incorporan al lenguaje elementos poco útiles, como por ejemplo macros, herencia múltiple u
operadores diferentes al operadorde acceso a métodos (operador punto)para acceder a miembros de espacios
de nombres.
Modernidad
Al ser C# un lenguaje de última generación, incorpora elementos que se ha demostrado a lo largo del tiempo
que son muy útiles para el programador, como tipos decimales o
Booleanos, un tipo básico string, así como una instrucción que permita recorrer colecciones con facilidad
(instrucción foreach). Estos elementos hay que simularlos en otros lenguajes como C++ o Java.
Orientado a objetos
C# como lenguaje de última generación, y de propósito general, es orientado a objetos.C# no permite la
inclusión de funciones ni variables globales que no estén incluidos en una definición de tipos, por lo que la
orientación a objetos es más pura y clara que en otros lenguajes como C++. Además, C# soporta todas las
características del paradigma de la programación orientada a objetos,como son la
Encapsulación, la herencia y el polimorfismo
Orientado a componentes
La propia sintaxis de C# incluye elementos propios del diseño de componentes que otros lenguajes tienen que
simular. La sintaxis de C# incluye por ejemplo formas de definir propiedades, eventos o atributos.
Recolección de basura
Como ya se comentó, todo lenguaje incluido en la plataforma .NET tiene a su disposición el recolector de
basura del CLR. Esto implica que no es necesario 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 que garantiza que no se produzcan errores
difíciles de detectar como un acceso a memoria de ningún objeto, por ejemplo. Para ello, el lenguaje provee
de una serie de normas de sintaxis, como por ejemplo no realizar conversiones entre tipos que no sean
compatibles. Además, no se pueden usarvariables no inicializadas previamente, y en el acceso atablas se hace
una comprobación de rangos para que no se excedan ninguno de los índices de la misma. Se puede controlar
así mismo los desbordamientos en operaciones aritméticas, produciéndose excepciones cuando se produzcan.
Instrucciones seguras
Para evitar errores comunes como se producían programando en otros lenguajes, en C# se han impuesto una
serie de restricciones en el uso de instrucciones de control más comunes. Por ejemplo, la evaluación de toda
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 por confusión del operador igualdad con el de asignación. Otra restricción que se impone en
la instrucción de selección switch, imponiendo que toda selectora de la instrucción finalice con una
instrucción break o goto que 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 llamada System.Object, por lo que automáticamente
heredarán todos los miembros definidos en esta clase. Es decir, son objetos.Adiferencia 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 conseguirque los nuevos tipos de datos que se definan a través de las
estructuras estén al mismo nivel que los elementos predefinidos en el lenguaje, al igual que C++ pero a
diferencia 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. Definiendo operadores simples como la suma, el compilador deduce como aplicar la versión
designación compuesta (+=). Además, para asegurar la consistencia,el compilador exige que los operadores
con opuesto (como por ejemplo el operador igualdad== y su opuesto !=)siempre se redefinan por parejas.
Extensión de modificadores
C# ofrece, a través de los atributos, la posibilidad de añadir a los metadatos del módulo resultante de la
compilación de cualquier fuente de información adicional a la generada por el compilador que luego podrá ser
consultada en tiempo de ejecución a través de la biblioteca de reflexión de.NET.
Eficiente
En C#, todo el código incluye numerosas restricciones para garantizar su seguridad, no permitiendo el uso de
punteros.Sin embargo, y a diferencia de Java, existen modificadores para saltarse esta restricción, pudiendo
manipular objetos a través de punteros.Para ello basta identificar regiones de código con el identificador
unsafe,y podrán usarse en ellas punteros de forma similar a como se hace en C++. Esta característica puede
resultar de utilidad en situaciones en las que se necesite gran velocidad de procesamiento.
Tipos para definir números enteros:
Tipo de datos de enteros
Tipo
Equivalente
BCL
Tamaño Rango Significado
byte System.Byte
8-bit (1-
byte)
0 a 255
Entero sin
signo
sbyte System.SByte
8-bit (1-
byte)
-128 a 127
Entero con
signo
short System.Int16
16-bit (2-
byte)
-32.768 a 32.767
Entero corto
con signo
ushort System.UInt16
16-bit (2-
byte)
0 a 65.535
Entero corto
sin signo
int System.Int32
32-bit (4-
byte)
-2.147.483.648 a 2.147.483.647
Entero medio
con signo
uint System.UInt32
32-bit (4-
byte)
0 a 4.294.967.295
Entero medio
sin signo
long System.Int64
64-bit (8-
byte)
-9.223.372.036.854.775.808 a
9.223.372.036.854.775.807
Entero largo
con signo
ulong System.UInt64
64-bit (8-
byte)
0 a 18.446.744.073.709.551.615
Entero largo
sin signo
Los tipos de coma flotante pueden representar números con componentes fraccionales.
Existen dos clases de tipos de coma flotante: float y double. El tipo double es el más
utilizado porque muchas funciones matemáticas de la biblioteca de clases de C# usan
valores double. Quizá, el tipo de coma flotante más interesante de C# es decimal, dirigido
al uso de cálculos monetarios. La aritmética de coma flotante normal está sujeta a una
variedad de errores de redondeo cuando se aplica a valores decimales. El tipo decimal
elimina estos errores y puede representar hasta 28 lugares decimales.
Tipo de datos de coma flotante
Tipo
Equivalente
BCL
Tamaño Rango Significado
float System.Single
32-bit
(4-byte)
±1.401298E−45 a ±3.402823E+38
Coma
flotante
corto
double System.Double
64-bit
(8-byte)
±4.94065645841246E−324 a
±1.79769313486232E+308
Coma
flotante
largo
decimal System.Decimal
128-bit
(16-byte)
−7.9228162514264337593543950335
a
+7.9228162514264337593543950335
Coma
flotante
monetario
Los caracteres en C# no tienen un tamaño de 8 bits como en otros muchos lenguajes de
programación, sino que usa un tamaño de 16 bits llamado Unicode al cual se le llama char.
No existen conversiones automáticas de tipo entero a char.
Tipo de datos de caracteres
Tipo Equivalente BCL Tamaño Rango Significado
char System.Char 16-bit (2-byte) 'u0000' a 'uFFFF' Carácter unicode
Para los tipos de datos lógicos no existen conversiones automáticas de tipo entero a bool.
Tipo de datos lógicos
Tipo Equivalente BCL Tamaño Rango Significado
bool System.Boolean 8-bit (1-byte) true o false Verdadero o falso
En ocasiones, resulta más sencillo usar un sistema numérico en base 16 en lugar de 10, para
tal caso C# permite especificar números enteros en formato hexadecimal, y se define
anteponiendo 0x, por ejemplo: 0xFF, que equivale a 255 en decimal.
C# tiene caracteres denominados secuencias de escape para facilitar la escritura con el
teclado de símbolos que carecen de representación visual.
C#, al igual que C++, define un tipo de cadena de caracteres. Dentro de la cadena de
caracteres se pueden usar secuencias de escape. Una cadena de caracteres puede iniciarse
con el símbolo @ seguido por una cadena entre comillas ("), en tal caso, las secuencias de
escape no tienen efecto, y además la cadena puede ocupar dos o más líneas.
Enteros
decimal 245, [0..9]+
hexadecimal 0xF5, 0x[0..9, A..F, a..f]+
entero largo 12L
entero largo sin signo 654UL
Coma flotante
float 23.5F, 23.5f; 1.72E3F, 1.72E3f, 1.72e3F, 1.72e3f
double 23.5, 23.5D, 23.5d, 1.72E3, 1.72E3D
decimal 9.95M
Caracteres
char 'a', 'Z', 'u0231'
Cadenas
String "Hello, world"; "C:Windows", @"C:Windows"
Secuencias de escape
Alerta (timbre) a
Retroceso b
Avance de página f
Nueva Línea n
Retorno de carro r
Tabulador horizontal t
Tabulador vertical v
Nulo 0
Comilla simple '
Comilla doble "
Barra inversa 
Mapa conceptual de C#

Más contenido relacionado

La actualidad más candente

Lenguaje De Programacion
Lenguaje De ProgramacionLenguaje De Programacion
Lenguaje De Programacion
charnisch
 
Unidad1
Unidad1Unidad1
Unidad1
chembe
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1
camnav
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++
yesid19
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1
Joaquin1418
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1
Facebook
 
1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje
yuli02
 
Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2
camnav
 
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Carlos
 
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
nibox
 
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
logan1725
 
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Carlos
 

La actualidad más candente (17)

Lenguaje De Programacion
Lenguaje De ProgramacionLenguaje De Programacion
Lenguaje De Programacion
 
LENGUAJE DE PROGRAMACION C++ INTRODUCCION
LENGUAJE DE PROGRAMACION C++ INTRODUCCIONLENGUAJE DE PROGRAMACION C++ INTRODUCCION
LENGUAJE DE PROGRAMACION C++ INTRODUCCION
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivas
 
Unidad1
Unidad1Unidad1
Unidad1
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1
 
Instrucciones Básicas para C++
Instrucciones Básicas para C++Instrucciones Básicas para C++
Instrucciones Básicas para C++
 
Estructura de Lenguaje C++
Estructura de Lenguaje C++Estructura de Lenguaje C++
Estructura de Lenguaje C++
 
Estructuras de un programa
Estructuras de un programaEstructuras de un programa
Estructuras de un programa
 
1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje
 
Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2
 
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
 
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
 
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
 
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
 

Similar a C# documento de texto junto con mapa conceptual

Reporte de visual c#(jose gonzalo estrada lopez)
Reporte de visual c#(jose gonzalo estrada lopez)Reporte de visual c#(jose gonzalo estrada lopez)
Reporte de visual c#(jose gonzalo estrada lopez)
josegonzalo130
 
Historia del C++ y JAVA
Historia del C++ y JAVAHistoria del C++ y JAVA
Historia del C++ y JAVA
Nohemi Cuesta
 
Trabajo programación (caracteristicas, versiones y desarrolladores de c#)
Trabajo programación (caracteristicas, versiones y desarrolladores de c#)Trabajo programación (caracteristicas, versiones y desarrolladores de c#)
Trabajo programación (caracteristicas, versiones y desarrolladores de c#)
Fidel_Angel
 
Reporte_de_microsoft_visual_c#
Reporte_de_microsoft_visual_c#Reporte_de_microsoft_visual_c#
Reporte_de_microsoft_visual_c#
José García
 
Lenguaje de programacion c#
Lenguaje de programacion c#Lenguaje de programacion c#
Lenguaje de programacion c#
XM Filial de ISA
 

Similar a C# documento de texto junto con mapa conceptual (20)

C#
C#C#
C#
 
Todo sobre C#
Todo sobre C#Todo sobre C#
Todo sobre C#
 
Reporte de visual c#(jose gonzalo estrada lopez)
Reporte de visual c#(jose gonzalo estrada lopez)Reporte de visual c#(jose gonzalo estrada lopez)
Reporte de visual c#(jose gonzalo estrada lopez)
 
1. introducción a c#
1.  introducción a c#1.  introducción a c#
1. introducción a c#
 
Historia del C++ y JAVA
Historia del C++ y JAVAHistoria del C++ y JAVA
Historia del C++ y JAVA
 
Lenguaje de la programación orientada a objetos c#
Lenguaje de la programación orientada a objetos c#Lenguaje de la programación orientada a objetos c#
Lenguaje de la programación orientada a objetos c#
 
Lenguaje C sharp
Lenguaje C sharpLenguaje C sharp
Lenguaje C sharp
 
Trabajo programación (caracteristicas, versiones y desarrolladores de c#)
Trabajo programación (caracteristicas, versiones y desarrolladores de c#)Trabajo programación (caracteristicas, versiones y desarrolladores de c#)
Trabajo programación (caracteristicas, versiones y desarrolladores de c#)
 
C sharp
C sharpC sharp
C sharp
 
Reporte_de_microsoft_visual_c#
Reporte_de_microsoft_visual_c#Reporte_de_microsoft_visual_c#
Reporte_de_microsoft_visual_c#
 
Consulta c++
Consulta c++Consulta c++
Consulta c++
 
C++
C++C++
C++
 
ENSAYO SOBRE EL LENGUAJE C
ENSAYO SOBRE EL LENGUAJE C ENSAYO SOBRE EL LENGUAJE C
ENSAYO SOBRE EL LENGUAJE C
 
Lenguaje de programacion c#
Lenguaje de programacion c#Lenguaje de programacion c#
Lenguaje de programacion c#
 
Pul123
Pul123Pul123
Pul123
 
Programa en lenguaje C, Hildemaro Sequera, MI-42
Programa en lenguaje C, Hildemaro Sequera, MI-42Programa en lenguaje C, Hildemaro Sequera, MI-42
Programa en lenguaje C, Hildemaro Sequera, MI-42
 
Que es visual c# eduardo sorto
Que es visual c# eduardo sortoQue es visual c# eduardo sorto
Que es visual c# eduardo sorto
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Santaella u5 Lenguaje C++
Santaella u5 Lenguaje C++Santaella u5 Lenguaje C++
Santaella u5 Lenguaje C++
 
331985319 santaella u5-lenguajedeprogramacionc
331985319 santaella u5-lenguajedeprogramacionc331985319 santaella u5-lenguajedeprogramacionc
331985319 santaella u5-lenguajedeprogramacionc
 

Último

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
amelia poma
 

Último (20)

activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptxPLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 

C# documento de texto junto con mapa conceptual

  • 1. Breve historia de C / C++ / C# Durante el desarrollo de la plataforma .NET, las bibliotecas de clases fueron escritas originalmente usando un sistema de código gestionado llamado Simple Managed C (SMC). En enero de 1999, Anders Hejlsberg formó un equipo con la misión de desarrollar un nuevo lenguaje de programación llamado Cool (Lenguaje C orientado a objetos). Este nombre tuvo que ser cambiado debido a problemas de marca, pasando a llamarse C#.2 La biblioteca de clases de la plataforma .NET fue migrada entonces al nuevo lenguaje. Hejlsberg lideró el proyecto de desarrollo de C#. Anteriormente, ya había participado en el desarrollo de otros lenguajes como Turbo Pascal, Delphi y J+. La historia de C parte de un lenguaje anterior, el lenguaje B, escrito por Ken Thompson en 1970 con el objetivo de recodificar el sistema operativo UNIX, que hasta el momento se había programado en ensamblador. La pega del ensamblador era que lo ligaba a una serie de máquinas concretas, por lo que conseguirun lenguaje abstraído de cada máquina conseguiría una portabilidad del sistema muchísimo mayor. A su vez B fue inspirado en el BCPL de Martin Richard, diseñado tres años antes. En 1972 es Dennis Ritchie (de los Laboratorios Bell de AT&T) quien diseña finalmente C a partir del B de Thompson, aportando un diseño de tipos y estructuras de datos que consiguen una claridad y eficacia en el lenguaje muy superior. Es un lenguaje que permite realizar una programación estructurada economizando las expresiones, con abundancia de operadores y tipos de datos (aunque los básicos sean pocos),codificando en alto y bajo nivel simultáneamente, reemplazando ventajosamente la programación en ensamblador y permitiendo una utilización natural de las funciones primitivas del sistema. Además, no está orientado a ningún área en especial y sobre todo consigue un código objeto altamente optimizado que repercute en que los programas son muy rápidos. Durante muchos años no existen reglas estándarpara el lenguaje, pero en 1983 se decide formar un comité con el objetivo de crear el estándarANSI (Instituto Nacional Americano de Estándares). El proceso dura seis años y a principios de los 90 el estándares reconocido por la ISO (Organización Internacional de Estándares) y comienza a comercializarse con el nombre ANSI C. Paralelamente, en 1980 surge C++ de la mano de Bjarne Stroustrup (también de Laboratorios Bell de AT&T). Diseña este lenguaje con el objetivo de añadir a C nuevas características: clases y funciones virtuales (de SIMULA67), tipos genéricos y expresiones (de ADA), la posibilidad de declarar variables en cualquier punto del programa (de ALGOL68), y sobre todo, un auténtico motor de objetos con herencia múltiple que permite combinar la programación imperativa de C con la programación orientada a objetos.Estas nuevas características mantienen siempre la esencia del lenguaje C: otorgan el control absoluto de la aplicación al programador, consiguiendo una velocidad muy superior a la ofrecida por otros lenguajes.El siguiente hecho fundamental en la evolución de C++ es sin duda la incorporación de la librería STL años más tarde, obra de Alexander Stepanov y Adrew Koening. Esta librería de clases con contenedores y algoritmos genéricos proporciona a C++ una potencia única entre los lenguajes de alto nivel. Debido al éxito del lenguaje, en 1990 se reúnen las organizaciones ANSI e ISO para definir un estándarque formalice el lenguaje. El proceso culmina en 1998 con la aprobación del ANSI C++. La última variante que ha surgido de C es el moderno C#. En el año 2000, Microsoft presenta su plataforma .NET junto con un nuevo lenguaje, C# (diseñado por Anders Hejlsberg), que servirá de lenguaje principal de
  • 2. la plataforma. C# es un híbrido de C++ y Java que fusiona, principalmente, la capacidad de combinar operadores propia del primero (no incorpora la herencia múltiple) con la plena orientación a objetos del segundo.La orientación a objetos es tal que el propio programa está encapsulado en una clase.Actualmente C# se encuentra entre los 10 lenguajes más utilizados. A pesar de su corta historia, ha recibido la aprobación del estándarde dos organizaciones: en el 2001 se aprueba el ECMA y en el 2003 el ISO. Información sobre C# C# (pronunciado si sharp en inglés) es un lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que después fue aprobado como un estándar por la ECMA (ECMA-334) e ISO (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 de C/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 un semitono 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 compilador implementado que provee el marco Mono - DotGNU, el cual genera programas para distintas plataformas como Windows, Unix, Android, iOS, Windows Phone, Mac OS y GNU/Linux Características principales de C# A continuación enumeramos las principales características que definen al lenguaje de programación C#. Algunas de estas características no son propias del lenguaje, sino de la plataforma .NET, aunque se listan aquí ya que tienen una implicación directa en el lenguaje. 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.12. Es por ello que se dice que C# es auto contenido. Además, no se incorporan al lenguaje elementos poco útiles, como por ejemplo macros, herencia múltiple u operadores diferentes al operadorde acceso a métodos (operador punto)para acceder a miembros de espacios de nombres. Modernidad Al ser C# un lenguaje de última generación, incorpora elementos que se ha demostrado a lo largo del tiempo que son muy útiles para el programador, como tipos decimales o Booleanos, un tipo básico string, así como una instrucción que permita recorrer colecciones con facilidad (instrucción foreach). Estos elementos hay que simularlos en otros lenguajes como C++ o Java. Orientado a objetos C# como lenguaje de última generación, y de propósito general, es orientado a objetos.C# no permite la inclusión de funciones ni variables globales que no estén incluidos en una definición de tipos, por lo que la orientación a objetos es más pura y clara que en otros lenguajes como C++. Además, C# soporta todas las características del paradigma de la programación orientada a objetos,como son la Encapsulación, la herencia y el polimorfismo Orientado a componentes La propia sintaxis de C# incluye elementos propios del diseño de componentes que otros lenguajes tienen que simular. La sintaxis de C# incluye por ejemplo formas de definir propiedades, eventos o atributos.
  • 3. Recolección de basura Como ya se comentó, todo lenguaje incluido en la plataforma .NET tiene a su disposición el recolector de basura del CLR. Esto implica que no es necesario 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 que garantiza que no se produzcan errores difíciles de detectar como un acceso a memoria de ningún objeto, por ejemplo. Para ello, el lenguaje provee de una serie de normas de sintaxis, como por ejemplo no realizar conversiones entre tipos que no sean compatibles. Además, no se pueden usarvariables no inicializadas previamente, y en el acceso atablas se hace una comprobación de rangos para que no se excedan ninguno de los índices de la misma. Se puede controlar así mismo los desbordamientos en operaciones aritméticas, produciéndose excepciones cuando se produzcan. Instrucciones seguras Para evitar errores comunes como se producían programando en otros lenguajes, en C# se han impuesto una serie de restricciones en el uso de instrucciones de control más comunes. Por ejemplo, la evaluación de toda 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 por confusión del operador igualdad con el de asignación. Otra restricción que se impone en la instrucción de selección switch, imponiendo que toda selectora de la instrucción finalice con una instrucción break o goto que 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 llamada System.Object, por lo que automáticamente heredarán todos los miembros definidos en esta clase. Es decir, son objetos.Adiferencia 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 conseguirque los nuevos tipos de datos que se definan a través de las estructuras estén al mismo nivel que los elementos predefinidos en el lenguaje, al igual que C++ pero a diferencia 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. Definiendo operadores simples como la suma, el compilador deduce como aplicar la versión designación compuesta (+=). Además, para asegurar la consistencia,el compilador exige que los operadores con opuesto (como por ejemplo el operador igualdad== y su opuesto !=)siempre se redefinan por parejas. Extensión de modificadores C# ofrece, a través de los atributos, la posibilidad de añadir a los metadatos del módulo resultante de la compilación de cualquier fuente de información adicional a la generada por el compilador que luego podrá ser consultada en tiempo de ejecución a través de la biblioteca de reflexión de.NET. Eficiente En C#, todo el código incluye numerosas restricciones para garantizar su seguridad, no permitiendo el uso de punteros.Sin embargo, y a diferencia de Java, existen modificadores para saltarse esta restricción, pudiendo manipular objetos a través de punteros.Para ello basta identificar regiones de código con el identificador unsafe,y podrán usarse en ellas punteros de forma similar a como se hace en C++. Esta característica puede resultar de utilidad en situaciones en las que se necesite gran velocidad de procesamiento. Tipos para definir números enteros: Tipo de datos de enteros Tipo Equivalente BCL Tamaño Rango Significado
  • 4. byte System.Byte 8-bit (1- byte) 0 a 255 Entero sin signo sbyte System.SByte 8-bit (1- byte) -128 a 127 Entero con signo short System.Int16 16-bit (2- byte) -32.768 a 32.767 Entero corto con signo ushort System.UInt16 16-bit (2- byte) 0 a 65.535 Entero corto sin signo int System.Int32 32-bit (4- byte) -2.147.483.648 a 2.147.483.647 Entero medio con signo uint System.UInt32 32-bit (4- byte) 0 a 4.294.967.295 Entero medio sin signo long System.Int64 64-bit (8- byte) -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 Entero largo con signo ulong System.UInt64 64-bit (8- byte) 0 a 18.446.744.073.709.551.615 Entero largo sin signo Los tipos de coma flotante pueden representar números con componentes fraccionales. Existen dos clases de tipos de coma flotante: float y double. El tipo double es el más utilizado porque muchas funciones matemáticas de la biblioteca de clases de C# usan valores double. Quizá, el tipo de coma flotante más interesante de C# es decimal, dirigido al uso de cálculos monetarios. La aritmética de coma flotante normal está sujeta a una variedad de errores de redondeo cuando se aplica a valores decimales. El tipo decimal elimina estos errores y puede representar hasta 28 lugares decimales. Tipo de datos de coma flotante Tipo Equivalente BCL Tamaño Rango Significado float System.Single 32-bit (4-byte) ±1.401298E−45 a ±3.402823E+38 Coma flotante corto double System.Double 64-bit (8-byte) ±4.94065645841246E−324 a ±1.79769313486232E+308 Coma flotante largo decimal System.Decimal 128-bit (16-byte) −7.9228162514264337593543950335 a +7.9228162514264337593543950335 Coma flotante monetario Los caracteres en C# no tienen un tamaño de 8 bits como en otros muchos lenguajes de programación, sino que usa un tamaño de 16 bits llamado Unicode al cual se le llama char. No existen conversiones automáticas de tipo entero a char.
  • 5. Tipo de datos de caracteres Tipo Equivalente BCL Tamaño Rango Significado char System.Char 16-bit (2-byte) 'u0000' a 'uFFFF' Carácter unicode Para los tipos de datos lógicos no existen conversiones automáticas de tipo entero a bool. Tipo de datos lógicos Tipo Equivalente BCL Tamaño Rango Significado bool System.Boolean 8-bit (1-byte) true o false Verdadero o falso En ocasiones, resulta más sencillo usar un sistema numérico en base 16 en lugar de 10, para tal caso C# permite especificar números enteros en formato hexadecimal, y se define anteponiendo 0x, por ejemplo: 0xFF, que equivale a 255 en decimal. C# tiene caracteres denominados secuencias de escape para facilitar la escritura con el teclado de símbolos que carecen de representación visual. C#, al igual que C++, define un tipo de cadena de caracteres. Dentro de la cadena de caracteres se pueden usar secuencias de escape. Una cadena de caracteres puede iniciarse con el símbolo @ seguido por una cadena entre comillas ("), en tal caso, las secuencias de escape no tienen efecto, y además la cadena puede ocupar dos o más líneas. Enteros decimal 245, [0..9]+ hexadecimal 0xF5, 0x[0..9, A..F, a..f]+ entero largo 12L entero largo sin signo 654UL Coma flotante float 23.5F, 23.5f; 1.72E3F, 1.72E3f, 1.72e3F, 1.72e3f double 23.5, 23.5D, 23.5d, 1.72E3, 1.72E3D decimal 9.95M Caracteres char 'a', 'Z', 'u0231' Cadenas String "Hello, world"; "C:Windows", @"C:Windows" Secuencias de escape Alerta (timbre) a
  • 6. Retroceso b Avance de página f Nueva Línea n Retorno de carro r Tabulador horizontal t Tabulador vertical v Nulo 0 Comilla simple ' Comilla doble " Barra inversa Mapa conceptual de C#