25

Click here to load reader

Catedra Metodos Numericos Unsch 021

Embed Size (px)

DESCRIPTION

metodos n.

Citation preview

Page 1: Catedra Metodos Numericos Unsch 021

CATEDRA 022

Facultad de Ingeniería de Minas, Geología y CivilFacultad de Ingeniería de Minas, Geología y Civil

Departamento académico de ingeniería de minas y civil

METODOS NUMERICOS

Ingeniería CivilIngeniería Civil

ING.�CRISTIAN�CASTRO�P.

Capitulo ICapitulo I

H a i ta d Cál lHerramientas de Cálculo

ING.�CRISTIAN�CASTRO�P.

Page 2: Catedra Metodos Numericos Unsch 021

Herramientas de Cálculo

Equipo• Computadora

• Calculadora

Herramientas de Cálculo

Software• Desarrollo de programas

• Software matemático

• Hoja de cálculo

• Calculadora graficadoraCalculadora graficadora

Page 3: Catedra Metodos Numericos Unsch 021

Herramientas de Cálculo

Módulos de un AlgoritmoMódulos de un Algoritmo

Algoritmo

Datos de entradaMódulo 1

Procesamiento de los datosMódulo 2

Impresión de resultadosMódulo 3

Módulo 1: representa la operación que permite el ingreso de los datosdel problema

Módulo 2: representa la operación o conjunto de operacionessecuenciales, cuyo objetivo es obtener la solución del problema

Módulo 3 : representa una operación o conjunto de operaciones quepermite comunicar al exterior el o los resultados obtenidosp

Herramientas de Cálculo

Algoritmo• Conjunto finito de instrucciones bien definidas para lograr

alguna tarea (objetivo), que dado un estado inicial, terminaráen un estado final una vez alcanzado un criterioen un estado final una vez alcanzado un criterio.

Ejemplo 1: Torre de Hanoi http://www.wikipedia.org/

¿Cuántos pasos para “n” discos?

• El objetivo es mover todos los discos de su posición inicial a oobje o es o e odos os d scos de su pos c ó c a a otra guía, obedeciendo las reglas:

• Sólo se puede mover un disco a la vezNi ú di d b di• Ningún disco se puede poner sobre un disco menor

Page 4: Catedra Metodos Numericos Unsch 021

Herramientas de Cálculo

AlgoritmoAlgoritmoEjemplo 2: Algoritmo de Euclides

• Dados dos enteros positivos m y n, encontrar suá i ú di imáximo común divisor

• Paso 1: Dividir m por n y dejar que r sea el remanente(tendremos 0<= r<n)(tendremos 0<= r<n)

• Paso 2: Si r=0, el algoritmo termina, n es la respuestaP 3 Fij i P 1• Paso 3: Fijar m n, n r, ir a Paso1¿Puedes demostrar que el algoritmo resuelve lo quef ?ofrece?

Herramientas de CálculoCaracterísticas de un Algoritmo

+ SumarAlgoritmoDonald E. Knuth Fundamental Algorithms Vol 1 2nd edition

- Menos

* MultiplicaciónVol. 1, 2nd edition

• Finito

/ División

± Mas o menos

= Equivalente a• Finito

• Definido con Precisión

= Equivalente a

> Mayor que

< Menor que

• Entradas

Salidas

q

>= Mayor o igual que

<= Menor o igual que• Salidas

• Efectividad<> Diferente de

Si

No

True

False

Page 5: Catedra Metodos Numericos Unsch 021

Herramientas de Cálculo

CompilaciónCommon Language Runtime

Código fuente Assembly

C C# VBCompilación

DLL o EXEC++, C#, VB o cualquier otro lenguaje

DLL o EXE(Strong name opcional)

Herramientas de Cálculo

NIVELES DE LENGUAJES DE PROGRAMACIÓN

Lenguajes declarativos(4ª. Generación)

Alto NivelAlto NivelLenguajes de alto nivel

(Compilados o interpretados)( p p )

Bajo NivelBajo Nivel

Lenguajes ensambladores

Bajo NivelBajo Nivel

Lenguajes máquinag j q

Page 6: Catedra Metodos Numericos Unsch 021

Capitulo ICapitulo I

L aj d P a a ióLenguajes de Programación

ING. CRISTIAN CASTRO P.

Lenguajes de Programación

Historia

FORTRAN50

Historia

ALGOL 60 COBOL60

Simula PL/I

LISP

Prolog70

Simula

SmalltalkPascal

C

PL/I

ML

Prolog

80

90

Ada ML

Miranda90 Miranda

Page 7: Catedra Metodos Numericos Unsch 021

Lenguajes de Programación

1950 1960 1970 1980 1990

Historia PL/I(66)

Ada(95)Eiffel (86)

Ada(95)

Cobol(58) Ada(83)

Java(96)Pascal(70)

AD

OR

( )

C(72)

Algol(60)

C++(89)SA

MB

LA

Fortran(54)Simula(67) Smalltalk(80)

( )

EN

S

Basic(66)

Lenguajes de Programación

PERSPECTIVA HISTÓRICA DE VARIOS LENGUAJESPERSPECTIVA HISTÓRICA DE VARIOS LENGUAJESÁrea de OrigenÁrea de aplicación

Origen lingüístico

1960 1970 1980

FORTRAN I FORTRAN II FORTRAN IV ANS

Científica

FORTRAN I FORTRAN II FORTRAN IV

FORTRAN 77FORTRAN IV ANS

FORTRAN Pascal ANS Algebra Algol 58 Algol 60

BASIC ANSUCSD Pascal

Procedimiento de datos

Propósito General

PascalInglés

BASIC

COBOL 58ANS BASIC

APL ANS COBOL 68

PL/IANS PL/IANS PL/I ANS PL/I

Inteligencia artificialLambda

calculo PROLOG

LISP

LISP 1,5

(G)

Procesamiento de texto Algoritmo de Markov SNOBOL

SNOBOL 3SNOBOL 4

ICON

CProgramación de sistemas

Maquina de Von Neumann

Ensamblador yLenguajes maquina

ANS AdaAda

M d l 2

C

ModulaModula-2

Page 8: Catedra Metodos Numericos Unsch 021

Lenguajes de Programación

PERSPECTIVA HISTÓRICA DE VARIOS LENGUAJESPERSPECTIVA HISTÓRICA DE VARIOS LENGUAJES

Lenguajes de ProgramaciónClasificación de los lenguajes de Clasificación de los lenguajes de programación y su evoluciónprogramación y su evoluciónprogramación y su evoluciónprogramación y su evolución• Un lenguaje es la forma que utilizan dos entidades llamadas

emisor y receptor para comunicarse.

• Un lenguaje de programación es la forma en que un ser

humano le indica a una computadora lo que debe de hacer.

• Los lenguajes de programación son necesarios dado que ellenguaje que entendemos los humanos y las máquinas estotalmente distinto.

• Las computadoras entienden un lenguaje máquina de 0 y 1

Page 9: Catedra Metodos Numericos Unsch 021

Lenguajes de ProgramaciónClasificación de los lenguajes de Clasificación de los lenguajes de programación y su evoluciónprogramación y su evoluciónprogramación y su evoluciónprogramación y su evolución

• El lenguaje máquina es diferente entre las familias demicroprocesadoresmicroprocesadores

• Los lenguajes de programación se clasifican de acuerdo aLos lenguajes de programación se clasifican de acuerdo asu objetivo en: de propósito general y propósito específico.

• Los lenguajes de propósito general sirven para resolver casicualquier problema.

Ejemplos: C/C++, Java, Pascal, Ada, etc

• Los lenguajes de propósito específico son de dominio másespecífico.

Ejemplo: SQL (Base de Datos), GAMS (Modelamiento), etc.

Lenguajes de Programación

Clasificación de los lenguajes de Clasificación de los lenguajes de ió l ióió l ióprogramación y su evoluciónprogramación y su evolución

• El lenguaje máquina es diferente entre las familias demicroprocesadores

• Los lenguajes de programación también se pueden clasificarde acuerdo a su nivel de abstracción en bajo nivel y alto nivelde acuerdo a su nivel de abstracción en bajo nivel y alto nivel.

• El nivel de abstracción se da desde el punto de vista humano;El nivel de abstracción se da desde el punto de vista humano;es decir, el de alto nivel está más cercano al lenguaje natural.

• Otra forma de clasificar los lenguajes de programación es enbase al paradigma utilizado para programar.

Page 10: Catedra Metodos Numericos Unsch 021

Lenguajes de Programación

Clasificación de los lenguajes de Clasificación de los lenguajes de ió l ióió l ióprogramación y su evoluciónprogramación y su evolución

• Los lenguajes de bajo nivel son los que están más cercanoLos lenguajes de bajo nivel son los que están más cercanoal lenguaje máquina, permiten el desarrollo más eficiente deaplicaciones, pero la programación es más complicada.aplicaciones, pero la programación es más complicada.

Ejemplo: lenguaje ensamblador x86, ensamblador PPC,ensamblador 68x etcensamblador 68x, etc.

L l j d lt i l id l j• Los lenguajes de alto nivel son muy parecidos a lenguajesnaturales como el inglés. Permiten un rápido desarrollo eimplantación de algoritmosimplantación de algoritmos.

Ejemplo: C++, Java, BASIC, Fortran, COBOL, etc.

Lenguajes de ProgramaciónClasificación de los lenguajes de Clasificación de los lenguajes de programación y su evoluciónprogramación y su evoluciónprogramación y su evoluciónprogramación y su evolución

• ¿Cómo es posible que dos entidades con diferentesl j (h t d ) d ilenguajes (humanos y computadoras) puedan comunicarseentre si?

• Se puede realizar por medio de un traductor. Lo cual da otraclasificación de lenguajes de programación.

• Por la forma en que se realiza la programación,los lenguajes se clasifican en:se clasifican en:

• Lenguajes compilados (compilador)

• Lenguajes interpretados (intérprete)• Lenguajes interpretados (intérprete).

Page 11: Catedra Metodos Numericos Unsch 021

Lenguajes de Programación

Clasificación de los lenguajes de Clasificación de los lenguajes de ió l ióió l ióprogramación y su evoluciónprogramación y su evolución

• Los lenguajes interpretados se procesa el código fuente y seg j p p g ytraduce línea por línea.

• Ejemplo de lenguajes interpretados está la línea comandos(shell) de un sistema operativo, BASIC, entre otros.

• En los lenguajes compilados la traducción se realiza leyendotodo el código fuente Ejemplo: Pascal Delphi C/C++ etctodo el código fuente. Ejemplo: Pascal, Delphi, C/C++, etc.

• Existen diversos paradigmas como procedimental oExisten diversos paradigmas como procedimental oestructurado (C, Pascal, etc.), orientado a objetos (Java,C++,SmallTalk, etc.)., )

Lenguajes de Programación

Clasificación de los lenguajes de Clasificación de los lenguajes de ió l ióió l ióprogramación y su evoluciónprogramación y su evolución

• Los lenguajes interpretados se procesa el código fuente y seg j p p g ytraduce línea por línea.

• Otros paradigmas de programación son el funcional comoLISP, la programación lógica con PROLOG, programaciónorientada a aspectos, etc.

• Los lenguajes de programación también tienen otros fines• Los lenguajes de programación también tienen otros finescomo configurar programas.

Page 12: Catedra Metodos Numericos Unsch 021

Lenguajes de Programación

LenguajesLenguajes dede ProgramaciónProgramaciónLenguajesLenguajes dede ProgramaciónProgramación• Son herramientas que nos permiten crear programas y

software. Entre ellos tenemos Fortran, C, Delphi, Qbasic,Visual Basic, Pascal, Java, etc..

• Una computadora funciona bajo control de un programael cual debe estar almacenado en la unidad de memoria;el cual debe estar almacenado en la unidad de memoria;tales como el disco duro.

• Los lenguajes de programación facilitan la tarea deprogramación, ya que disponen de formas adecuadasprogramación, ya que disponen de formas adecuadasque permiten ser leídas y escritas por personas.

Lenguajes de Programación

LenguajesLenguajes dede ProgramaciónProgramación• Los lenguajes de programación se representan en forma

simbólica y en manera de un texto los códigos que podránsimbólica y en manera de un texto los códigos que podránser leídos por una persona tales como:

1 celulares

2 cajeros Automáticos

3 los mp3

4 Calculadoras

Page 13: Catedra Metodos Numericos Unsch 021

Lenguajes de Programación

LenguajesLenguajes dede ProgramaciónProgramaciónHay lenguajes de programación que utilizancompiladorcompilador

QUE ES UN COMPILADOR ?QUE ES UN COMPILADOR……..?

Un compilador es un programa que, a su vez, traduce unprograma escrito en un lenguaje de programación a otrolenguaje de programación

La razón principal para querer usar un compilador est d i d l j d lt i l ttraducir un programa de un lenguaje de alto nivel, a otrolenguaje de nivel inferior.

Lenguajes de Programación

LenguajesLenguajes dede ProgramaciónProgramacióng jg j gg

Los lenguajes de programación se determinang j p gsegún el nivel

Nivel Bajo

Nivel Medio

Nivel Alto

Page 14: Catedra Metodos Numericos Unsch 021

--Lenguajes de Bajo nivelLenguajes de Bajo nivelLenguajes de Bajo nivelLenguajes de Bajo nivel• La palabra "bajo" no implica que el lenguaje sea inferiorp j p q g j

a un lenguaje de alto nivel; se refiere a la reducidaabstracción entre el lenguaje y el hardware.

Ejemplo PLC

• PLC ( Control Logico programable)

• Son todos los procesos Industriales

• Tales como el control de la maquinaria, plantas defabricación

Lenguajes de Programación

Lenguaje ensambladorLenguaje ensambladorLenguaje ensambladorLenguaje ensamblador• Es totalmente dependiente de la arquitectura de la

computadora.

Utili i t i t ll d ó i L• Utiliza instrucciones cortas llamadas mnemónicos. Lascuales se sustituyen al momento de ensamblar.

• La mayoría de los lenguajes de alto nivel genera comocódigo intermedio instrucciones en ensambladorcódigo intermedio instrucciones en ensamblador.

• Por ejemplo el código máquina 10110000 01100001j p g q(0xb061) es representado en ensamblador x86 comoMOV al, 061h

Page 15: Catedra Metodos Numericos Unsch 021

Lenguajes de Programación

•• Lenguajes de Nivel medioLenguajes de Nivel medioLenguajes de Nivel medio Lenguajes de Nivel medio • Hay lenguajes de programación que son considerados

por algunos expertos como lenguajes de nivel mediopor algunos expertos como lenguajes de nivel medio.

• al tener ciertas características que los acercan a losal tener ciertas características que los acercan a loslenguajes de bajo nivel. Ejemplo D.O.S

• Disk Operating System

Lenguajes de Programación

•• Lenguajes de alto nivelLenguajes de alto nivel• Los lenguajes de alto nivel son normalmente fáciles de

aprender porque están formados por elementos delenguajes naturales, como el inglés.

En BASIC, el lenguaje de alto nivel más conocido, losg jcomandos como

"IF CONTADOR = 10 THEN STOP"CO O 0 S O

pueden utilizarse para pedir a la computadora que pare siCONTADOR es igual a 10CONTADOR es igual a 10.

Por desgracia para muchas personas esta forma detrabajar es un poco frustrante dado que a pesar de quetrabajar es un poco frustrante, dado que a pesar de quelas computadoras parecen comprender un lenguajenatural lo hacen en realidad de forma rígida y sistemáticanatural, lo hacen en realidad de forma rígida y sistemática.

Page 16: Catedra Metodos Numericos Unsch 021

Capitulo ICapitulo I

C a a ió d L ajComparación de Lenguajes

ING. CRISTIAN CASTRO P.

Comparación de Lenguajes

¿Cuáles son los criterios usados?¿Cuáles son los criterios usados?¿Cuáles son los criterios usados?¿Cuáles son los criterios usados?• Tres criterios usados comúnmente cuando se evalúan

l l j d iólos lenguajes de programación son:

• Cuán fácil se pueden leer y entender programas (readability)• Cuán fácil se pueden escribir programas (writability)

• Cuán confiables son los programas (reliability)

• Recuerde: no existe un lenguaje de programación que se pueda clasificar como el mejor de todos.

Si existiera, todo el mundo lo usaría.

Page 17: Catedra Metodos Numericos Unsch 021

Comparación de Lenguajes

Readabilityy• Este criterio se refiere a la facilidad con la cual se

pueden leer y entender programas en el lenguaje dep y p g g jprogramación que se evalúa.

• Obviamente, la legibilidad de un lenguaje debe serjuzgada de acuerdo al tipo de problemas para loscuales el lenguaje esta diseñado.

• Características que contribuyen a la legilibilidad de unlenguaje son: simplicidad, ortogonalidad, estructuras de

t l di ibl f ilid d d fi i t tcontrol disponibles, facilidades para definir estructuras ytipos de datos, y consideraciones de sintaxis.

Comparación de Lenguajes

Readability: simplicidady p• Aquellos lenguajes que tienen una gran cantidad de

componentes básicos son más difíciles de aprenderp pque los de una menor cantidad de componentes.

• Lo más común es que el programador que se enfrentaa un lenguaje complejo sólo aprenda una porción dela un lenguaje complejo sólo aprenda una porción dellenguaje e ignore el resto.

• ¿Qué pasa el programador cuando se encuentra conl t í ti d lun programa que usa alguna característica del

lenguaje que no se conoce?

Page 18: Catedra Metodos Numericos Unsch 021

Comparación de Lenguajes

Readability: simplicidadReadability: simplicidad• Otra preocupación con respecto a la simplicidad es

d l j i ét d hcuando un lenguaje provee varios métodos para hacerlo mismo. Por ejemplo, en C++:

n = n + 1;

n += 1;

n++;

++n;++n;

• Si piensa que lo anterior no es confuso, considere:

[++ ] * b++ % ( / d)a[++n] *= b++ % (--c / d);

Comparación de Lenguajes

Readability: simplicidadReadability: simplicidad

• Otro problema potencial es la capacidad que tienenOtro problema potencial es la capacidad que tienenalgunos lenguajes, tales como C++, de permitir que unprogramador sobrecargue operadores. Un operadorprogramador sobrecargue operadores. Un operadorsobrecargado es aquel que tiene varios significados.Por ejemplo ‘+’ en C++.o eje p o e C

• La sobrecarga de operadores (operator overloading) esproblemática cuando permite que el programadorproblemática cuando permite que el programadorredefina un operador para un uso no intuitivo.

Por ejemplo sobrecargar ‘*’ en vez de ‘+’ para laPor ejemplo, sobrecargar en vez de + para laoperación de suma de matrices.

Page 19: Catedra Metodos Numericos Unsch 021

Comparación de Lenguajes

Readability: Ortogonalidady g• Este concepto significa que se pueden combinar varios

elementos de un lenguaje en todas las combinacioneselementos de un lenguaje en todas las combinacionesposibles y cada combinación es significativa. No hayortogonalidad cuando hay combinaciones inválidasortogonalidad cuando hay combinaciones inválidas.

• Un ejemplo: Un lenguaje tiene tipos de datos para• Un ejemplo: Un lenguaje tiene tipos de datos paraenteros, reales, caracteres y booleanos. Ademásposee arreglos y apuntadores. Para que sea ortogonal,p g y p q g ,este debe permitir crear arreglos y apuntadores paracualquier tipo de datos, y debe permitir crear arreglosd t d t d lde apuntadores y apuntadores a arreglos.

Comparación de Lenguajes

Readability: Ortogonalidad y g• C++ tiene algunos problemas de ortogonalidad.

P j lPor ejemplo:• Un value-returning function puede recibir un récord y devolver

directamente un récord Sin embargo aunque una funcióndirectamente un récord. Sin embargo, aunque una funciónpuede recibir un arreglo, no puede devolver directamente unarreglo.

• Se pueden crear void functions y apuntadores a void, pero no sepueden crear variables de tipo void.

• Los parámetros son pasados automáticamente por valor peroLos parámetros son pasados automáticamente por valor, perolos arreglos son pasados automáticamente por referencia.

• El problema de la falta de ortogonalidad:hay excepciones a las reglas que el programador debeconocer.

Page 20: Catedra Metodos Numericos Unsch 021

Comparación de Lenguajes

Readability: Estructuras de control• Normalmente los lenguajes imperativos proveen las

siguientes estructuras de control:• Decisiones: If, Case• Ciclos: While, Repeat/Until, For

• Algunos lenguajes proveen demasiadas estructuras decontrol. Por ejemplo, Visual Basic provee los siguientescontrol. Por ejemplo, Visual Basic provee los siguientesciclos:while/wend, do while/loop, do/loop until,, p, p ,do until/loop y do/loop while

• Otro lenguajes proveen muy pocas• Otro lenguajes proveen muy pocas.Por ejemplo, Fortran 77 no contenía While y esto fuerzaal programador a usar una combinación de If y Gotoal programador a usar una combinación de If y Goto.

Comparación de Lenguajes

Readability: Estructuras de controly• Otra estructura de control que proveen muchos lenguajes

pero no todos es la recursiónpero no todos, es la recursión.

• Una función es recursiva si puede invocarse a sí misma.p

• La recursión puede ser utilizada como una alternativa al i llos ciclos.

• Los lenguajes modernos tienden a incluir recursión pero• Los lenguajes modernos tienden a incluir recursión, perono así los lenguajes más antigüos.

• Los lenguajes funcionales llevan la simplicidad en los ciclos al extremo: no hay While, Repeat/Until ni For, sólo hayrecursión.

Page 21: Catedra Metodos Numericos Unsch 021

Comparación de Lenguajes

Readability: Estructuras y tipos de datosy y p• La presencia de tipos de datos y de facilidades para

crear tipos y estructuras de datos es una ayudacrear tipos y estructuras de datos es una ayudasignificativa para leer y entender programas.

• En C, por ejemplo, no existe el tipo de datos bool deC++ y los booleanos se simulan usando 0 para Falso yC y los booleanos se simulan usando 0 para Falso yotro valor (normalmente 1) para Cierto. Esto puede serun problema.

• Otro ejemplo: Basic y Fortran no proveían la capacidadj p y p pde crear records y esto quiere decir que los diferentescampos se debían declarar como variablesi d di tindependientes.

Comparación de Lenguajes

Readability: Estructuras y tipos de datosReadability: Estructuras y tipos de datos • En este aspecto se entiende que los lenguajes

i t d bj t l á d d lorientados a objetos son los más adecuados ya que elconcepto de ‘clase’ permite implementar un tipo de datoabstracto (ADT) y el concepto de ‘objeto’ permite crearabstracto (ADT) y el concepto de objeto permite crearvariables de la clase definida.

• Una vez que se crea la clase esta puede ser usadapara:para:• Declarar objetos y arreglos (colecciones) de objetos• Como la clase de algún atributo de otro objeto (composición)g j ( p )• Como la base para crear clases derivadas (herencia)• Como parámetro o valor devuelto en cualquier función.

Page 22: Catedra Metodos Numericos Unsch 021

Comparación de Lenguajes

Readability: Consideraciones de sintaxisReadability: Consideraciones de sintaxis• La sintaxis, que define la forma en que se pueden

escribir instrucciones válidas, tiene un impactosignificativo en la legilibilidad de los programas.

Algunas consideraciones de sintaxis son:

• Identificadores –

la mayoría de lenguajes permiten identificadores descriptivos.y g j p pSin embargo, en Basic los identificadores sólo podían tenerdos caracteres. En Fortran, la primera letra del identificadord i bl d i di ti d d t (I Nde una variable era usada para indicar su tipo de datos (I a Npara enteros, cualquier otra letra para reales) y, por lo tanto,las declaraciones no incluían el tipo de datos.p

Comparación de Lenguajes

Readability: Consideraciones de sintaxisReadability: Consideraciones de sintaxis • Otras consideraciones:

• Símbolos para los operadores –aunque los símbolos para operaciones aritméticas sonestándar el símbolo para asignación y el de comparación deestándar, el símbolo para asignación y el de comparación deigualdad varía (Basic usa ‘= ’ para ambos, Pascal usa ‘:=’para asignar y ‘=’ para comparar, C/C++ usa ‘=’ para asignar

‘ ’ )y ‘== ’ para comparar).

• Palabras especiales –Palabras especialesla presencia o ausencia de éstas puede ser determinante.Por ejemplo, en C++ se usan ‘{’ y ‘}’ para indicar el comienzo

l fí d t t d t l i di d ály el fín de una estructura de control pero no se indica de cuálestructura. Sería conveniente poseer ‘end if’, ‘end while’, etc.Pascal tiene el mismo problema porque utiliza ‘begin’ y ‘end’p p q g ysin indicar cuál estructura.

Page 23: Catedra Metodos Numericos Unsch 021

Comparación de Lenguajes

Readability: Consideraciones de sintaxis y• Otras consideraciones:

C t i• Comentarios –

aunque todos los lenguajes proveen capacidad paracomentarios en algunos el comentario debe comenzar en unacomentarios, en algunos el comentario debe comenzar en unacolumna específica y se extiende hasta el final de la línea(Cobol), en otros el comentario puede comenzar en cualquiercolumna (Pascal, Basic). Algunos lenguajes como C++proveen para comentarios de una línea y de múltiples líneas.

• Formatos de columna fija o formato libre –

en algunos lenguajes (Cobol Fortran 77) es requerido queen algunos lenguajes (Cobol, Fortran 77), es requerido queciertos elementos de sintaxis comiencen en columnasespecíficas. Otros lenguajes (Pascal, C, Java) tienen formatolibre.

Comparación de Lenguajes

Writabilityy• Es la medida de cuán fácil se pueden escribir los

programas para un dominio específico (problemprogramas para un dominio específico (problemdomain) en un lenguaje.

• Entre los factores que influencian el writability estánalgunos de los mencionados anteriormente talescomo: simpicidad, ortogonalidad, apoyo a lab t ió ( ió d b d ti dabstracción (creación de subprogramas y de tipos de

datos).

• Otro factor a considerar es el de expresividad.

Page 24: Catedra Metodos Numericos Unsch 021

Comparación de Lenguajes

Writability: expresividady p• La expresividad en un lenguaje se refiere a la facilidad

de lograr mucho con poco código que sea entendiblede lograr mucho con poco código que sea entendible.

Ej l• Ejemplos:• El ciclo For, aunque es innecesario si se dispone de While,

t l i id d d l l jaumenta la expresividad del lenguaje.

• La notación ‘variable++’ es más corta y más conveniente que ‘variable = variable + 1’variable variable + 1 .

• Poder asignar un arreglo a otro usando un solo enunciado deasignación es más conveniente que usando un ciclo For.g q

Comparación de Lenguajes

Reliabilityy• La confiabilidad se refiere a la capacidad de escribir

programas que se desempeñen adecuadamente bajoprogramas que se desempeñen adecuadamente bajocualquier circunstancia.

• Dos factores que influyen en la confiabilidad de unprograma son el chequeo de tipos de datos y elprograma son el chequeo de tipos de datos y elmanejo de excepciones.

• El chequeo de tipos de datos, por ejemplo, impide quese invoque una función que necesita recibir unnúmero entero utilizando un string como argumento.

Page 25: Catedra Metodos Numericos Unsch 021

Comparación de Lenguajes

Reliability: Manejo de excepcionesReliability: Manejo de excepciones• El manejo de excepciones permite que un programa

intercepte errores o condiciones inesperadas entiempo de ejecución, tome acciones correctivas ycontinúe su ejecución o termine adecuadamente.

• Lenguajes modernos como Ada, C++, Java y VisualBasic.Net proveen la capacidad de manejo dep p jexcepciones. Otros lenguajes como C, Cobol yFortran no proveen esta capacidad y requieren que elp p y q qprogramador pase mucho trabajo chequeando estascondiciones inesperadas.

Muchas GraciasMuchas Gracias