¿Qué es Programar?
Programar es hacer que la computadora obedezca una serie de instrucciones bien detalladas. Usando un lenguaje de programación indicamos a la computadora
Que tienen que suceder en cada momento y cómo debe reaccionar ante lainteracción del usuario. Se conoce como programación de computadoras a la implementación de un resultado en un determinado lenguaje de programación, conformando un programa.
Programación
Concepto desarrollado por Von Newman en 1946. Es la unión de una secuencia de instrucciones que una computadora puede interpretar y ejecutar y una estructura de datos que almacenan la información independiente de las instrucciones que dicha secuencia maneja. Para ello se usan lenguajes de programación que sirven para programar las secuencias de instrucciones requeridas.
Lenguaje de Programación
Según Niklaus Wirth, un programa está formado por algoritmos (métodos para resolver algún problema mediante simbología) y estructura de datos.
* El lenguaje de programación tiene un número ilimitado de símbolos y también de palabras.
* Constituido por un conjunto de reglas sintácticas o semánticas. Sintácticas se refiere a la especificación de la formación de istrucciones válidas. Semáticas especifican el significado de estas instrucciones.
* La escritura o codificación del programa puede resultar una tarea sencilla si conocemos las reglas sintácticas y semánticas que constituyen el lenguaje de programación
Antecedentes de C# - Línea del Tiempo
Predecesor(es) Año Nombre Desarrollador principal, Compañía
POP-1 1970 POP-2
ALGOL 60 1971 Pascal Niklaus Wirth, Kathleen Jensen
Pascal, XPL 1971 Sue Holt y otros en la Universidad de Toronto
SIMULA 67 1972 Smalltalk-72 Xerox PARC
B, BCPL, ALGOL 68 1972 C Dennis Ritchie
* 1972 INTERCAL
2-level W-Grammar 1972 Prolog Alain Colmerauer
Pascal, BASIC 1973 COMAL Børge Christensen, Benedict Løfstedt
Pascal, Sue 1973 LIS Ichbiah y otros en CII Honeywell Bull
BASIC 1974 GRASS Tom DeFanti
Business BASIC 1974 BASIC FOUR BASIC FOUR CORPORATION
LISP 1975 Scheme Gerald Jay Sussman, Guy L. Steele, Jr.
Pascal 1975? Modula Niklaus Wirth
BASIC 1975 Altair BASIC Bill Gates, Paul Allen
ALGOL 68, BLISS, ECL, HAL 1975 CS-4 Benjamin M. Brosgol en Intermetrics
Smalltalk-72 1976 Smalltalk-76 Xerox PARC
C, FORTRAN 1976 Ratfor Brian Kernighan
* 1977 FP John Backus
* 1977 Bourne Shell (sh) Stephen Bourne
Fortran 1977 IDL David Stern de Research Systems Inc
MUMPS 1977 Standard MUMPS
SNOBOL 1977 ICON(concepto) Ralph Griswold
ALGOL 68, LIS 1977 Green Ichbiah y otros en CII Honeywell Bull para el Departamento de Defensa de los Estados Unidos
ALGOL 68, CS-4 1977 Red Benjamin M. Brosgol y otros en Intermetrics para el Departamento de Defensa de los Estados Unidos
ALGOL 68, 1977 Blue Goodenough y otros en SofTech para el Departamento de Defensa de los Estados Unidos
ALGOL 68, 1977 Yellow Spitzen y otros en SRI International para el Departamento de Defensa de los Estados Unidos
FORTRAN IV 1978 FORTRAN 77
Modula 1978? Modula-2 Niklaus Wirth
* 1978? MATLAB Moler en la Universidad de Nuevo Mexico
Algol60 1978? SMALL Dr. Nevil Brownlee en la Universidad de Auckland
* 1978 VISICALC Dan Bricklin, Bob Frankston en VisiCorp
PL/I, BASIC, EXEC 2 1979 REXX Mike Cowlishaw
C, SNOBOL 1979 Awk Aho, Weinberger, Brian Kernighan
SNOBOL 1979 ICON(implementación) Ralph Griswold
* 1979 Vulcan dBase-II Ratliff
1980s
C, SIMULA 67 1980 C con Clases Bjarne Stroustrup
Smalltalk-76 1980 Smalltalk-80 Xerox PARC
Smalltalk, C 1982 Objective-C Brad Cox
Green 1983 Ada 83 Departamento de Defensa de los Estados Unidos
C con Clases 1983 C++ Bjarne Stroustrup
BASIC 1983 True BASIC John George Kemeny, Thomas_Kurtz en Dartmouth College
sh 1984? Korn Shell (ksh) Dave Korn
* 1984 Standard ML
dBase 1984 CLIPPER Nantucket
LISP 1984 Common Lisp Guy Steele y muchos otros
1977MUMPS 1985 1984 MUMPS
dBase 1985 PARADOX Borland
Interpress 1985 PostScript John Warnock
BASIC 1985 QuickBASIC Microsoft
1986 Miranda David Turner en la Universidad de Kent
1986 LabVIEW National Instruments
SIMULA 67 1986 Eiffel Bertrand Meyer
1986 Informix-4GL Informix
C 1986 PROMAL
Smalltalk 1987 Self (concepto) Sun Microsystems Inc.
* 1987 HyperTalk Apple Computer
* 1987 SQL-87
C, sed, awk, sh 1987 Perl Larry Wall
MATLAB 1988 Octave
dBase-III 1988 dBase-IV
Awk, Lisp 1988 Tcl John Ousterhout
REXX 1988 Object REXX Simon Nash
Ada 1988 SPARK Bernard A. Carré
Turbo Pascal 1989 Turbo Pascal OOP Borland
C 1989 Standard C89/90 ANSI X3.159-1989 (adopted by ISO in 1990)
Modula-2 1989 Modula-3 Cardeli, y otros
Modula-2 1989 Oberon Niklaus Wirth
1990s
Oberon 1990 Object Oberon Niklaus Wirth
APL, FP 1990 J Kenneth Iverson, Roger Hui en Iverson Software
Miranda 1990 Haskell
1984 MUMPS 1990 1990 MUMPS
Fortran 77 1991 Fortran 90
Object Oberon 1991 Oberon-2 Niklaus Wirth
ABC 1991 Python Van Rossum
1991 Q
QuickBASIC 1991 Visual Basic Alan Cooper en Microsoft
SQL-87 1992 SQL-92
Turbo Pascal OOP 1992 Borland Pascal
ksh 1993? Z Shell (zsh)
Smalltalk 1993? Self (implementación) Sun Microsystems Inc.
Forth 1993 FALSE Oortmerrsen
FALSE 1993 Brainfuck Urban Müller
HyperTalk 1993 Revolution Transcript
HyperTalk 1993 AppleScript Apple
APL, Lisp 1993 K Whitney
Smalltalk, Perl 1993 Ruby
1993 Lua Roberto Ierusalimschy y otros en Tecgraf, PUC-Rio
C 1993 ZPL Chamberlain y otros en Universidad de Washington
Lisp 1994 Dylan muchos en Apple Computer
Ada 83 1995 Ada 95 ISO
Borland Pascal 1995 Delphi Anders Hejlsberg en Borland
1995 ColdFusion Allaire
C, SIMULA67 ó C++, Smalltalk 1995 Java James Gosling en Sun Microsystems
1990MUMPS 1995 1995 MUMPS
Self, Java 1995? LiveScript Brendan Eich en Netscape
Fortran 90 1996 Fortran 95
APL, Perl 1996 Perl Data Language (PDL) Karl Glazebrook, Jarle Brinchmann, Tuomas Lukka, and Christian Soeller
REXX, Java 1996 NetREXX Cowlishaw
LiveScript 1997? JavaScript Brendan Eich en Netscape
SML 84 1997 SML 97
PHP 3 1997 PHP
Scheme 1997 Pico Universidad Libre de Bruselas
Smalltalk-80, Self 1997 Squeak Smalltalk Alan Kay, y otros en Apple Computer
JavaScript 1997? ECMAScript ECMA TC39-TG1
C++, Standard C 1998 Standard C++ ANSI/ISO Standard C++
Prolog 1998 Erlang Open Source Erlang en Ericsson
Standard C89/90 1999 Standard C99 ISO/IEC 9899:199
2000s
C, C++, Java, Eiffel 2000 D Walter Bright en Digital Mars
C, C++, Delphi, Java 2000 C# Anders Hejlsberg en Microsoft (ECMA)
Los primeros rumores de que Microsoft estaba desarrollando un nuevo lenguaje de programación surgieron en 1998, haciendo referencia a un lenguaje que entonces llamaban COOL y que decían era muy similar a Java. En junio de 2000, Microsoft despejó todas las dudas liberando la especificación de un nuevo lenguaje llamado C#. A esto le siguió rápidamente la primera versión de prueba del entorno de desarrollo estándar (SDK) .NET, que incluía un compilador de C#. El nuevo lenguaje estaba diseñado por Anders Hejlsberg ( creador de Turbo Pascal y arquitecto de Delphi ), Scott Wiltamuth y Peter Golde. Entonces describieron el lenguaje como “…simple, moderno, orientado a objetos, de tipado seguro y con una fuerte herencia de C/C++”.
Elementos Léxicos de un Programa
Comentarios: anotaciones para documentar el programa. Se utilizan de la siguiente forma
* //para documentar sobre un renglón y
* /*anotaciones */se utiliza para comentar párrafos, es decir más de un renglón
palabras reservadas palabras que tienen un determinado significado para el compiladorIdentificadores: nombres que los programadores dan a los diferentes elementos de un programa. La características que deben contener son las siguientes:
1. secuencia de letras, dígitos y caracteres
2. No deben coincidir con una alabra reservada
3. No deben emepezar con un dígito
4. Son sensibles a mayúsculas y minúsculas
5. Se acostumbra poner nombres significativos y que la primera letra de la palabra sea en mayúsculas
Ejemplo: SalarioMinimo. no se permite acentos y que las primeras sean con mayúsculasOperadores y Punteros : Los operadores indican las operaciones que se van a realizar y los punteros agrupan o separan+-*/%(operadores), Los que agrupan o separan son llaves (punteros) Líterales: Valores constantes escritos directamente en el programa Directivas del Pre-procesador: Son instrucciones al compilador, comienzan con signo de # que son para ver las librerias y que es una instruccionan para el programador
Sentencias y Bloques
Sentencia: representación de una acción o secuencia de acciones ejecutables o no ejecutables que son cualquiera operación que haga y las no ejecutable “dame un número”, es decir, declaraciones
Bloque: Grupo de sentencias delimitadaspor llaves
Método Main
Es un punto de entrada al programa y la ejecución simpre inicia en el método main. Debe tener las siguientes características:
1. Declarado static en una clase o estructura
2. Regresar void o int
3. Debe ser escrito con mayúscula la primera letra y minúscula lo demás ç
4. Puede no tener parametros o recibir un arreglo de strings.
using system;
namespace ConsoleApplication1
{
class Class1
{
Static void main (string [ ] args)
{
// todo: se agrega al código para la aplicación
}
{ }