La evolucion de la especie humana-primero de secundaria
Caracteristicas de C Sharp
1. Estructura de lenguaje de
Programación
LENGUAJE: C#
Presentado por:
Daniel Solar
Rodrigo Montero
Ezequiel Gonzalez
Miguel Pinto
Edgardo Martínez
2. ¿Qué es C#?
-C# es el último en una línea de evolución de los lenguajes derivados
de C,
que incluye C++ y Java.
-Usado por Microsoft para desarrollar la mayoría del código de .NET.
-C# es orientado a objetos, moderno, simple y potente.
-En C# todo es un objeto.
-Mejoras sobre C++ en las áreas de seguridad de datos, eventos y
recolección de basura.
-Soporta el modo unsafe que permite el uso de punteros como en C.
-Creación de páginas ASP.NET y servicios Web.
3. Sintaxis de C#
• Los programas en C# pueden
tener varios archivos, así como
uno solo. C# tiene un gran
parecido a Java por lo tanto su
estructura básica es
prácticamente la misma.
• Definiendo las variables,
llevando punto y coma al final
de cada instrucción, además es
importante mencionar los
espacios de nombres.
4. Sintaxis de C#
Los espacios de nombre son usados por el framework .NET como una especie
de organizador de clases, ya que estos las tienen agrupadas en los distintos
espacios de nombres, lo que en Java llaman "paquetes".
5. Sintaxis de C#
• Las clases contienen:
– Campos: variables
miembro
– Propiedades:
valores accedidos a
través de get/set
– Métodos:
funcionalidad
– Especiales:
eventos,
Indexadores,
Delegates
public class Persona :
IPersonaEdad
{
private int iAnio;
public Persona()
{
}
public int AnioDeNacimiento
{
get { return iAnio;};
set { iAnio = value;};
}
public int Edad()
{
return Today()-
AnioDeNacimiento
};
}
6. Sintaxis de C#
Statements
• Una sentencia completa se llama “statement”.
• Cada statement termina con punto y coma (;).
• Es la unidad básica de ejecución de C#.
• Un programa C# está formado por una secuencia de instrucciones (statements).
• Pueden ser:
–Declaraciones de variables
–Expresiones
–Selección (if, case)
–Iteración
–Etc…
8. Sintaxis de C#
En C# podemos usar Estructuras (Struct), y punteros
Punteros
En C# para mantener la seguridad de tipos
y la seguridad no se admite las
operaciones con punteros de manera
determinada, para ello se usa la palabra
clave unsafe para definir un contexto no
seguro para usar los punteros.
unsafe void crypt(byte[] arr)
{
byte * b = arr;
...
}
9. Sistema de Tipo y Semántica
• Las Rutinas Semánticas deben realizar la evaluación de las gramáticas siguiendo las
reglas semánticas asociadas al leguaje.
• En otras palabras verificar que todas las rutinas estén bien escritas, que no se
introduzcan sentencias con tipos de datos que no correspondan o no sean esperados
por el lenguaje, produciendo que el analizador semántico nos envié un mensaje de
error o advertencia.
• La compatibilidad de tipos es otra parte importante que hará el analizador semántico,
porque aquí donde el analizador verificara que los valores asignados a un objeto sean
correctos.
11. Sistema de Tipo y Semántica
Para inicializar variables a veces hay que
poner ciertos modificadores.
12. Gestión de Memoria
• A pesar de que con .NET no tenemos que preocuparnos con la gestión de
memoria, tenemos que saber como funciona.
• El .NET framework cuando ejecuta su programa guarda los elementos en
dos tipos de lugares en la memoria:
• 1. El Stack.
• 2. El Heap.
• Tanto el Stack como el Heap actúan en la ejecución del programa y residen
en la memoria operativa de la máquina.
13. Gestión de Memoria
• Cuál es la diferencia entre Stack y
Heap?
El Stack lo podemos imaginar como un
conjunto de cajas ordenadas una encima de
otra. Cada vez que llamamos a un método,
para hacer el seguimiento de lo que ocurre en
la aplicación colocamos una caja en la parte
superior del Stack a esta caja se le llama
“Frame”. Una vez que el método es ejecutado
retiramos esta caja y la tiramos a la basura.
Procedemos entonces, a utilizar la caja
anterior que ahora se encuentra en la parte
superior del Stack.
14. Gestión de Memoria
• Cuál es la diferencia entre Stack y
Heap?
El Heap es similar, solo que su función es
mantener la información. Lo que existe en el
Heap puede ser accedido en cualquier
momento sin limitaciones en lo que se puede
acceder como ocurre en el Stack.
15. Gestión de Memoria
• Cuál es la diferencia entre Stack y
Heap?
El Stack se mantiene por sí mismo, lo que
significa que básicamente se encarga de su
gestión propia memoria. Cuando el cuadro de
arriba ya no se utiliza, es expulsado y nada
más ocurre. El Heap, en cambio, tiene que
preocuparse por la recolección de basura (GC)
- que trata de mantener la limpieza del Heap.
16. Gestión de Memoria
• Que elementos tenemos en el Stack y en el Heap?
Tipos Valores
En C #, todas las “cosas",
declaradas de tipos de la siguiente
lista son Tipos Valor (porque
pertenecen al espacio de nombres
System.ValueType):
• bool
• byte
• char
• decimal
• double
• enum
• float
• int
• long
• sbyte
• short
• struct
• uint
• ulong
• ushort
Tipos Referencia
Todas las "cosas" declaradas de
tipos de la siguiente lista son Tipos
Referencia (y heredan de
System.Object ... excepto, por
supuesto, para el objeto que es el
objeto System.Object):
• class
• interface
• delegate
• object
• string
17. Gestión de Memoria
• 1. Un Tipo Referencia siempre va en el
Heap.
•
2. Los Tipos Valor van siempre el en Stack.
18. Manipulación de Excepciones
• Las características de control de excepciones del lenguaje
C# proporcionan una manera de afrontar cualquier
situación inesperada o excepcional que se presente
mientras se ejecuta un programa. El control de
excepciones utiliza las palabras clave try, catch y finally
para intentar realizar acciones que podrían plantear
problemas, controlar errores cuando considere que sea
razonable y limpiar los recursos después.
• Las excepciones se crean mediante la palabra clave
throw.
20. Manipulación de Excepciones
Información general sobre excepciones. Las excepciones tienen las propiedades siguientes:
• Las excepciones son tipos que se derivan en última instancia de System.Exception.
• Utilice un bloque try alrededor de las instrucciones que puedan generar excepciones.
• Cuando se produce una excepción dentro del bloque try, el flujo de control salta al primer controlador de excepciones
asociado que se encuentre en cualquier parte de la pila de llamadas. En C#, la palabra clave catch se utiliza para definir un
controlador de excepciones.
• Si no hay un controlador de excepciones para una excepción determinada, el programa deja de ejecutarse y presenta un
mensaje de error.
• No detecte una excepción a menos que pueda controlarla y dejar la aplicación con un estado conocido. Si detecta una
excepción System.Exception, vuelva a producirla mediante la palabra clave throw al final del bloque catch.
• Si un bloque catch define una variable de excepción, puede utilizar dicho bloque para obtener más información sobre el tipo
de excepción que se ha producido.
• Un programa que utiliza la palabra clave throw puede generar explícitamente excepciones.
• Los objetos de excepción contienen información detallada sobre el error, tal como el estado de la pila de llamadas y una
descripción de texto del error.
• El código de un bloque finally se ejecuta aunque se produzca una excepción. Use un bloque finally para liberar recursos,
por ejemplo, para cerrar las secuencias o archivos que se abrieron en el bloque try.
21. Paradigmas
• C# es un lenguaje multi paradigma que incluye
diferentes paradigmas los cuales son
• Estructurado
• Imperativo
• Orientado a objetos
• Dirigido por eventos
• Genérico
• Concurrente
22. Paradigma Estructurado C#
La visión clásica de la programación
estructurada se refiere al control de
ejecución. El control de su ejecución es
una de las cuestiones más importantes
que hay que tener en cuenta al construir
un programa en un lenguaje de alto nivel.
La regla general es que las instrucciones
se ejecuten sucesivamente una tras otra,
pero diversas partes del programa se
ejecutan o no dependiendo de que se
cumpla alguna condición. Además, hay
instrucciones (los bucles) que deben
ejecutarse varias veces, ya sea en número
fijo o hasta que se cumpla una condición
determinada.
23. Paradigma Estructurado C#
En C# se puede programar estructuradamente de la misma manera que
en los lenguajes en los que fue basado, como C, C++ y Java
class suma
{
static void Main(string[] args)
{
int n1, n2, r;
Console.WriteLine("Ingrese el primer número: ");
n1 = int.Parse(Console.ReadLine());
Console.WriteLine("Ingrese el segundo número: ");
n2 = int.Parse(Console.ReadLine());
r = n1+ n2;
Console.WriteLine("El resultados es: " + r);
Console.ReadLine();
}
}
24. Paradigma Imperativo C#
• Los programas imperativos no son mas que un conjunto de
instrucciones que le indican a la computadora como realizar una
tarea.
• Con C# se escribe la mayoría de las instrucciones y programas que
se ejecutan en Windows, así diciéndole a la computadora como
realizar sus tareas.
25. Orientación a Objetos en C#
Programación orientada a objetos (POO) usa objetos y sus
interacciones para el diseño de programas. Esta basado en
varias técnicas las cuales son:
Herencia, Abstracción, Polimorfismo, Encapsulamiento
En C# hereda todo lo referente a POO de Java
La declaración de una clase comparte aspectos en común con
Java y C++:
La declaración de una clase incluye la definición e
implementación igual que Java
Fichero de código fuente (extensión .cs) puede contener la
declaración de varias clases igual que C++ y Java
26. Orientación a Objetos en C#
• Ejemplo de una clase que después se usara para instanciar un
objeto con dicha clase
27. Programación dirigida por
eventos en C#
• La estructura como la ejecución de los programas van
determinados por los sucesos que ocurran en el sistema,
definidos por el usuario o que ellos mismos provoquen.
28. Programación dirigida por
eventos en C#
• En este ejemplo el método MyMouseDown, recibe un
objeto en forma de evento y si se hizo clic con el botón
derecho del mouse dice en consola que fue el derecho
29. Programación Genérica en C#
• La programación genérica es un tipo de programación
que está mucho más centrada en los algoritmos que en
los datos. La idea de esta forma de programar pretende
generalizar las funciones utilizadas para que puedan
usarse en más de una ocasión.
30. Programación Recurrente en C#
• En C# podemos usar hilos para poder tener varios
procesos a la vez corriendo
• El Framework de .Net trae consigo la funcionalidad de
poder gestionar los hilos con la librería using
System.Threading, y define dos tipos de hilos, Primer
plano. (Foreground), Segundo plano. (BackGround). De
forma predeterminada cuando se crea un hilo, se trata
de un subproceso de primer plano, pero se puede
cambiar a un subproceso en segundo plano. La única
diferencia entre un hilo primer plano y el hilo de
segundo plano, es que un hilo de segundo plano se
cancelará automáticamente cuando todos los Hilos en
primer plano son detenidos en su proceso.
32. Dominios de Aplicación en C#
• C# trabaja principalmente en dos dominios, que
son el de Sistemas y el de Centrado en Web,
Microsoft ideo este lenguaje para trabajar en las
áreas en que ellos tienen presencia como son los
dominios antes mencionados.
33. Sistemas con C#
• C# es usado en sistemas mas
que en otros dominios. C# es
trabajado para crear programas
para Windows y cualquier
plataforma u herramienta
creada por Microsoft junto con
Visual Basic y F#.
• En las ultimas versiones de
Visual Studio se ha agregado
opciones para crear aplicaciones
nativas escritas en C# para
Android y iOS.
34. Sistemas con C#
• C# no solo es usado por
Microsoft para el uso de
sus sistemas, se puede
usar para programar
para cualquier
plataforma gracias a
MONO que es una
herramienta gratis y de
código abierto liderado
por Xamarin, hoy en día
una subsidiaria de
Microsoft.
35. Centrado en Web
• C# puede usarse en la web gracias a ASP.NET.
• ASP.NET es un modelo de desarrollo Web
unificado creado por Microsoft para el desarrollo
de sitios y aplicaciones web dinámicas con un
mínimo de código. ASP.NET forma parte de .NET
Framework que contiene las librerías necesarias
para la codificación. Se pueden usar distintos
lenguajes de programación para realizar
aplicaciones web en ASP.NET, pero el lenguaje
C# es el más utilizado para este tipo de
desarrollos.
36. Centrado en Web
• Ejemplo de como se ve cuando se comienza a escribir el
código detrás de la pagina web
37. Restricciones de Arquitectura
• C# contiene pocas restricciones de
Arquitectura, Microsoft ha trabajado desde
la creación de este lenguaje para que se
pueda utilizar en la gran mayoría posible
de arquitecturas
38. Restricciones de Arquitectura
• Desde un principio C# hace programas
para las arquitecturas x86(Procesadores de
32 bits), y x86-64 o AMD64(Procesadores
de 64 bits), esto porque son las
arquitecturas en las que se ejecuta el
sistema operativo Windows
39. Restricciones de Arquitectura
• Pero hoy en día C# puede hacer programas para muchas
arquitectura como la arquitectura ARM. (ARM o
Advanced RISC Machine es una arquitectura de tipo RISC
(Reduced Instruction Set Computer=Ordenador con
Conjunto Reducido de Instrucciones) de 32 bits y
recientemente con la llegada de su versión V8-A también
de 64 Bits desarrollada por ARM Holdings. ) Arquitectura
en la cual están todos los dispositivos móviles hoy en
día.
41. Otras Arquitecturas soportadas
Microsoft esta trabajando en un sistema Multi-arquitectura
para impulsar las aplicaciones universales que han salido
desde Windows 10 para que los desarrolladores escriban
programas que soporten
Aplicación llama a
las librerías(DLL)
que necesita para
ejecutarse
basándose en la
base de aplicación
escrita
42. Restricciones Conceptuales
• El proceso de compilación para el lenguaje C# se
hace por medio del .NET framework y el CLR
(Common Language Runtime = entorno en
tiempo de ejecución de lenguaje común). Que es
el verdadero nucleo del framework.
• Este permite integrar proyectos en distintos
lenguajes soportados por la plataforma .Net,
como C#, Visual Basic, C++, entre otros.
43. Restricciones Conceptuales
El CLR es el encargado de compilar
una forma de código intermedio
llamada Common Intermediate
Language (CIL, anteriormente
conocido como MSIL, por Microsoft
Intermediate Language), al código
de maquina nativo
44. Proceso de Compilación
El código fuente es copilado por el compilador de C#
(CSC.EXE) y lo convierte en un código intermedio, el CIL,
similar al BYTECODE de Java. Para generarlo, el compilador
se basa en las especificaciones que determinan las reglas
necesarias para crear el código CIL compatible con el CLR
45. Proceso de Compilación
Para ejecutarse se necesita un segundo
paso, un compilador JIT (Just-In-Time =
Compilación en tiempo de ejecución) es
el que genera el código máquina real
que se ejecuta en la plataforma del
cliente. La compilación JIT la realiza el
CLR a medida que el programa invoca
métodos. El código ejecutable obtenido
se almacena en la memoria caché del
ordenador, siendo recompilado de
nuevo sólo en el caso de producirse
algún cambio en el código fuente.
Estructura interna del entorno de
ejecución en lenguaje común.
46. Interpretes y Equipos Virtuales
• C# es lenguaje fuerte, flexible y portable,
el código sufre pocos cambios a la hora de
correrlo en otro IDE o sistema operativo
47. Interpretes y Equipos Virtuales
• ¿Qué es portabilidad?
• Se define como la característica que posee un software
para ejecutarse en diferentes plataformas, el código
fuente del software es capaz de reutilizarse en vez de
crearse un nuevo código cuando el software pasa de una
plataforma a otra. A mayor portabilidad menor es la
dependencia del software con respecto a la plataforma.
48. Interpretes y Equipos Virtuales
Como se ha dicho antes, Microsoft ha estado trabajando
para que los programadores creen apps para cualquier
plataforma, arquitectura y sistema operativo, eso incluye el
escribir el código una sola vez y que funcione en varios
sistemas. Con la introducción de las ultimas versiones de
Windows se han creado las Universal Windows Platform
(Plataforma Universal de Windows)
49. Interpretes y Equipos Virtuales
• Las aplicaciones universales permiten escribir el
código para varias plataformas sin necesidad de
modificar nada, ya es la misma aplicaciones que
se adaptara al dispositivo donde se encuentre
50. Interpretes y Equipos Virtuales
• Pero la portabilidad y flexibilidad de C# no solo es para
plataformas de Microsoft.
• Xamarin(basado en mono) permite construir aplicaciones
nativas para multiples plataformas compartiendo el código
base de C#.
• Usando el mismo IDE, lenguaje y APIs donde sea
51. C# en Macs
• Xamarin también te deja crear aplicaciones
escrita en C# para Mac y crear aplicaciones para
otras plataformas en un Mac
52. C# es el mejor lenguaje para el desarrollo
de apps
Se puede crear aplicaciones para cualquier plataforma utilizando
las habilidades, los equipos, y el código existente.
Cualquier cosa que puedes hacer con Objective-C, Swift o Java
puedes hacerlo con C#
53. Normalizaciones
• C# esta 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).
No cuento con una acreditación en ANSI.
54. Normalizaciones
ECMA-334
Este estándar internacional establece la interpretación de
los programas escritos en el lenguaje C#
Estas especificaciones son:
• La representación de los programas en C #;
• La sintaxis y las limitaciones del lenguaje C #;
• Las reglas semánticas para la interpretación de los
programas de C #;
• Las restricciones y límites impuestos por una aplicación
conforme de C #.
56. Sistemas Heredados
• El lenguaje C# tiene una larga herencia.
El lenguaje C que forma parte del lenguaje
B, que a su vez fue inspirado en BCPL, se
puede considerar el primer sistema del cual
hereda C#. Pero no antes de que surgiera
C++ que es la mejora de C con orientación a
objeto.
57. Sistemas Heredados
• Entonces nace C# en el 2000, heredando
todo lo que es C++ junto a la potencia de
Java. C# es un híbrido de C++ y Java que
fusiona, principalmente, la capacidad de
combinar operadores propia del primero
con la plena orientación a objetos del
segundo.
• Actualmente C# se encuentra entre los 10
lenguajes más utilizados. A pesar de su
corta historia.
58. Sistemas Heredados
• Pero C# también ha inspirados lenguajes como es el caso de
F# y Vala
• F# es un lenguaje de programación multiparadigma de
código abierto, para la plataforma .NET, que conjunta la
programación funcional con las disciplinas imperativa y
orientada a objetos.
• Vala es un lenguaje de programación creado con el objetivo
de acercar las características de los lenguajes modernos a C,
sin requisitos adicionales de tiempo de ejecución y con
pocos costos, centrado en los objetos de la biblioteca
Gobject, la sintaxis se inspira en C#, con leves modificaciones
para adaptarse mejor al sistema de objetos de GObject.
59. Simplicidad y Claridad
¿Es fácil para un programador escribir en
este lenguaje?
Depende de dos factores; del nivel del programador y de la
complejidad del programa. En este nivel en el que nos
encontramos estamos seguros que podemos hacer un
pequeño programa en cualquier lenguaje (Un “Hola
mundo” por ejemplo) navegando en internet y con los
conocimientos adquiridos con otros lenguajes.
60. Simplicidad y Claridad
¿Hasta qué punto es inteligible este
programa para un lector medio?
Nuevamente depende del nivel de
programador y de la complejidad
del programa. Como en el ejemplo
del “Hola mundo” hasta un
principiante podría leer el programa
y saber de qué se trata, pero si es
un programa complejo como un
editor de texto, por ejemplo, se
necesita un nivel más avanzado
61. Simplicidad y Claridad
¿Es fácil aprender y enseñar el lenguaje?
C# es un lenguaje fácil de aprender ya que es muy similar a
Java, no es un lenguaje complejo, y cualquier estudiante
podría aprende C# en un nivel básico sin mucho empeño
Depende del estudiante. Uno no aprende a programar un
lenguaje de la noche a la mañana, es cuestión de practica y
esfuerzo
62. Uniones
En C# las concatenaciones o uniones se
pueden hacer de dos maneras
int variable = 0;
Console.WriteLine("Este texto se imprimirá con esta variable: " +
variable + " con este otro texto");
int variable = 0;
Console.WriteLine("Este texto se imprimirá con esta variable: {0} con
este otro texto", variable);
Modificador que indica
donde imprimirá la
variable
63. Ortogonalidad
¿Un símbolo o una palabra reservada tiene
siempre el mismo significa independiente
del contexto en la que lo utilicemos?
Las palabras reservadas son aquellas
que tienen un uso determinado para
el lenguaje y, por lo tanto, no pueden
ser empleadas en el código como
identificadores (por ejemplo,
nombres para las variables). Como
vemos en el párrafo que hemos
citado las palabras reservados tiene
una función única por lo tanto no se
puede usar de otra forma en C#
64. Ortogonalidad
¿Tiene el lenguaje un pequeño número de
características básicas que interactúan de forma
predecible sin importar cómo los combinemos en un
programa ?
C# posee muchas características que siempre actuaran de
la misma manera sin importar la forma en que se escriban
o en el orden.
Una característica que no cambia seria:
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. Y
esto no cambiara
65. Fiabilidad de los programas
¿El programa se comporta igual cada vez que lo
ejecutamos con los mismos datos de entrada?
Si podemos los mismos parámetros en
un programa lineal lazara los mismos
resultados en cada ejecución. Esto
cambia cuando usamos bucles y
condiciones, y mucho mas cambia
cuando usamos hilos, cada vez que
ejecutemos varios hilos no siempre
saldrán los mismos resultados. En el
ejemplo no siempre saldrán varios 2
primero, esto puede cambiar.
66. Fiabilidad de los programas
¿Se comporta igual cuando lo ejecutamos en
plataformas distintas?
C# es uno de los lenguajes de programación diseñados para la
infraestructura de lenguaje común.
¿Que es la infraestructura de lenguaje común ?
La infraestructura de lenguaje común es una especificación estandarizada
que describe un entorno virtual para la ejecución de aplicaciones, cuya
principal característica es la de permitir que aplicaciones escritas en distintos
lenguajes de alto nivel puedan luego ejecutarse en múltiples plataformas
tanto de hardware como de software sin necesidad de reescribir o recompilar
su código fuente.
67. Aplicabilidad
¿El lenguaje proporciona un soporte
adecuado para las aplicaciones del dominio
para lo que lo estamos utilizando ?
Microsoft ha hecho un trabajo excelente con C# , no solo
con la variedad de plataformas en la que se puede usar
sino que también las diferentes funciones que tiene el
lenguaje que puede hacer frente a las necesidades del
programador .
68. Abstracción
¿Cuántas veces hemos reinventado un algoritmo de
ordenación o estructura de datos de listas enlazadas que
probablemente halla sido implementado miles de veces?
Un algoritmo de ordenamiento es un
algoritmo que pone elementos de una
lista o un vector en una secuencia
dada por una relación de orden, es
decir, el resultado de salida ha de ser
una permutación —o
reordenamiento— de la entrada que
satisfaga la relación de orden dada.
Hay muchas formas de ordenar listas
enlazadas,
Todos estos métodos pueden
reinventarse para ordenarlos de la
forma en que queramos, de mayor a
menor, de dos en dos, etc.
69. Implementación eficiente
¿Nos permite la construcción y las características de
un lenguaje su implementación práctica y eficiente
en la plataforma coetáneas ?
Como ya se dijo en la anterior charla, C# permite usar todas
sus características en muchas plataformas de forma
eficiente
74. Infografía
• www.rae.es (Real Academia de la Lengua)
• www.Wikipedia.org
• https://msdn.microsoft.com/en-
us/library/586y06yf(v=vs.110).aspx
• https://msdn.microsoft.com/en-us
Notas del editor
En el Common Language Runtime (CLR) se refieren al código no seguro como código no comprobable lo cual no necesariamente significa que es peligroso sino que su seguridad no se puede comprobar por el CLR, básicamente la diferencia entre el código “unmanaged” y código definido como “unsafe” es que el primero corre fuera del CLR mientras que el “unsafe” tiene permiso del CLR para acceder directamente a la memoria. Es importante tomar en cuenta que el hecho de que sea código unsafe deja al programador toda la responsabilidad del código dejándolo a cargo de garantizar que no introduce riesgos de seguridad ni errores de punteros.
Equvalencia: dos objetos pueden considerarse del mismo tipo
Compa: que los obe¡jetos puedan ser usados en cierto contexto
Conversion: cambio de tipo
Name: mas de misma vez
Bueno, el Stack es responsable por hacer el seguimiento de la ejecución de lo que está en nuestro código. El Heap es más o menos responsable por hacer seguimiento de la mayor parte de nuestros datos.
Simple Object Access Protocol
Básicamente SOAP es un paradigma de mensajería de una dirección sin estado, que puede ser utilizado para formar protocolos más complejos y completos según las necesidades de las aplicaciones que lo implementan. Puede formar y construir la capa base de una "pila de protocolos de web service", ofreciendo un framework de mensajería básica en el cual los web services se pueden construir.
La familia x86 reagrupa los microprocesadores compatibles con el juego de instrucciones Intel 8086.
that the Alpha, MIPS, ARM big-endian and HPPA architectures are community-supported and may not be as complete as the other architectures.
Support for SPARC64 works in older versions of Mono, but not in the recent versions.
INTERMIDIET
**la compilación en tiempo de ejecución (también conocida por sus siglas inglesas, JIT, just-in-time), también conocida como traducción dinámica, es una técnica para mejorar el rendimiento de sistemas de programación que compilan a bytecode, consistente en traducir el bytecode a código máquina nativo en tiempo de ejecución.
**la caché es la memoria de acceso rápido de una computadora, que guarda temporalmente los datos recientemente procesados
IDE= ENTORNO DE DESARROLLO INTEGRADO
**La interfaz de programación de aplicaciones, abreviada como API[1] (del inglés: Application Programming Interface), es el conjunto de subrutinas, funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción.
GLib Object System, o GObject, es una biblioteca de software libre bajo la licencia LGPL que provee un sistema de objetos portable y una interoperabilidad multilenguaje transparente. GObject está diseñado para su utilización directa en programas C y a través de bindings, a otros lenguajes.