Thread: [Hispas-dev] Para facilitar al pricipante
Status: Planning
Brought to you by:
aleborisonik
From: Explode <ex...@ya...> - 2003-02-11 14:53:45
|
Estaria muy bien que en los programas Hola mundo o aquellos que no = contengan variables ej: begin Write('Hola mundo'); end. se pueda usar simplemente: Escribe('Hola mundo'); para despues decirles, que las varibles se tienen que declarar antes, y = que el programa principal ira entre inicio y final o { } o como sea. He leido aquello de Turing, y hay algunas cosas que deberiamos de = recoger, por ejemplo y es algo de veras util es poder usar una varible = de un tipo ordinal en una sentencia FOR o PARA (en hispascal) de forma: var numeros:0..31; inicio para numeros (do) final Notese que entrecomillado el DO por que creo que es un elemento = innecesario ya que un relacionante de esos inutiles. Si alguien quiere que le pase una lista de relacionantes inutiles = puedo pasaros una peque=F1a lista. Otra cosas que debemos pensar en incorporar es la posibilidad de = crear multiples puntos de salida en los While o Until e incluso en los = for (Si el compilador debe escribir assembler o maquina se puede hacer = todo eso y mas supongo, de todas formas yo se assembler). Tambien deberiamos incorporar bien lo de los constructores (Begin = end) y sustituir el constructor case en los tipos definidos por el = usuario opcionalmente (es decir que se puedan usar las dos) para que el = programador que aprenda le sea mas dificil liarse, a mi personalmente = eso me dejo muy desconcertado, y al programador de PASCAL no se le haga = raro. Tambien he pensado que en las units la sentencia o constructor o lo = que sea el OVERLOAD es bastante deconcertante se podria substuir por: Procedimiento linea :multiple (x,y,x2,y2:entero;color:byte); (x,y,x2,y2:entero); fin multiple; vease que al finalizar he utilizado fin multiple, es porque tambien creo = que podriamos dejar especificar lo que se va a cerrar, para mejorar la = legibilidad del codigo, he echo algunos programas con un gran bucle, que = englobaba if, y sus anidados, case while's for's etc.. y al final del = bucle solia haber algo asi como: end else if c=3D45 then begin c=3D0; h:=3Dh+1 end else c:=3Dc+1; end; end; end; end; _salir:=3Dfalse; end; if _salir2: then _salir:=3Dtrue end; end; end. y cuando tocas algo en el bucle, a probar a ver donde va bien y donde no = en end; o un end else, seria mas sencillo si todos fueran: end if end for end while end case end until end. Bueno por ahora nada mas, me gustaria saber si hemos publicado ya = algun borrador sobre la sintaxis y una lista de palabras clave, para que = las tengamos todos, y podamos empezar a hacernos una idea, para pensar = mas como uno y no como unos cuantos. Saludos Explode |
From: adrian15 <bea...@go...> - 2003-02-11 19:18:12
|
> Estaria muy bien que en los programas Hola mundo o aquellos que no > contengan variables ej: > begin > Write('Hola mundo'); > end. > se pueda usar simplemente: > Escribe('Hola mundo'); Gracias por la idea con ella he actualizado: HispascalRestricciones en el wiki. Basicamente la idea es que el compilador tiene varios niveles de permisividad o seriedad. Y en el nivel más bajo se podría tener en cuenta tu idea. Luego habrá que discutir cual es el modo por defecto. No creo que nos pongamos de acuerdo en eso. :) >He leido aquello de Turing, y hay algunas cosas que deberiamos > de recoger, Menos mal, porque yo no he tenido oportunidad de mirarlo más profundamente. >por ejemplo y es algo de veras util es poder usar una > varible de un tipo ordinal en una sentencia FOR o PARA (en hispascal) de > forma: var numeros:0..31; > inicio > para numeros (do) > final Sí, sí, me gusta,... aunque no sé si al final aclararía al estudiante sobre lo que está haciendo, es decir la forma actual de poner desde 1 hasta al final es más visual. Aunque... Otra propuesta definir una palabra clave: hasta (No confundir con el repetir - hasta) que sería: hasta 50 haz lo que sea. Por defecto el primer número sería un 1. ¿Qué os parece? > Notese que entrecomillado el DO por que creo que es un elemento > innecesario ya que un relacionante de esos inutiles. No tengo ninguna objección a eso. Sólo dejarlo opcional para los que se hayan acostumbrado a la antigua usanza. > Si alguien quiere que le pase una lista de relacionantes inutiles > puedo pasaros una pequeña lista. Esa lista me interesaria. > Otra cosas que debemos pensar en incorporar es la posibilidad de > crear multiples puntos de salida en los While o Until e incluso en los > for (Si el compilador debe escribir assembler o maquina se puede hacer > todo eso y mas supongo, de todas formas yo se assembler). Te refieres al break de java,c,... um no se si está implementado en freepascal... habrá que verlo. > Tambien deberiamos incorporar bien lo de los constructores (Begin > end) y sustituir el constructor case en los tipos definidos por el > usuario opcionalmente (es decir que se puedan usar las dos) para que el > programador que aprenda le sea mas dificil liarse, a mi personalmente > eso me dejo muy desconcertado, y al programador de PASCAL no se le haga > raro. Explicate mejor,... cuando hablas de constructores hablas de POO o de otra cosa. Y lo del case tampoco lo entiendo ponme un ejemplo de case invalido actualmente, y válido segun tu nueva visión. > Tambien he pensado que en las units la sentencia o constructor o lo > que sea el OVERLOAD es bastante deconcertante se podria substuir > por: Procedimiento linea :multiple > (x,y,x2,y2:entero;color:byte); > (x,y,x2,y2:entero); > fin multiple; > vease que al finalizar he utilizado fin multiple, es porque tambien creo > que podriamos dejar especificar lo que se va a cerrar, para mejorar la > legibilidad del codigo, he echo algunos programas con un gran bucle, que > englobaba if, y sus anidados, case while's for's etc.. y al final del > bucle solia haber algo asi como: > end else if c=45 then begin > c=0; > h:=h+1 > end else c:=c+1; > end; > end; > end; > end; > _salir:=false; > end; > if _salir2: then _salir:=true > end; > end; > end. > y cuando tocas algo en el bucle, a probar a ver donde va bien y donde no > en end; o un end else, seria mas sencillo si todos fueran: > end if > end for > end while > end case > end until > end. De acuerdo. Como en ada. Pero... como se aparta del pascal... habría que ponerlo en las restricciones... en el nivel 0 p.ej. > > Bueno por ahora nada mas, me gustaria saber si hemos publicado ya > algun borrador sobre la sintaxis y una lista de palabras clave, para que > las tengamos todos, y podamos empezar a hacernos una idea, para pensar > mas como uno y no como unos cuantos. Eso estoy intentado que haga un colaborador que no está inscrito en la lista, a ver si... lo inscribo y entre todos coordinamos esfuerzos y tenemos unas cuantas palabras clave para discutir. Gracias, de verdad, gracias, por todas tus ideas tu email ha sido muy prolifico. Podrías habrirte una pagina personal en el Equipo,... y allí un sublink de Ideas... y organizar un poco las ideas. Primero decirte que para escribir en el wiki no necesitas estar registrado, de hecho me parece que no se puede registrar uno. En HispascalEquipo crea una entrada para tí,... el link será: TunombrePagina (Que seria tu pagina)y las ideas seran TunombrePaginaIdeasHispascal (Dónde dejarias tu pagina) adrian15. |
From: adrian15 <bea...@go...> - 2003-02-14 09:07:25
|
El jue, 13-02-2003 a las 04:13, Explode escribi=F3: > Por cierto este E-mail se inserto en la lista de correo? NO. Pero ahora s=ED. He hecho un forward.=20 > > Luego habr=E1 que discutir cual es el modo por defecto. No creo que nos > pongamos de acuerdo en eso. :) > Totalmente de acuerdo, pero mejor que sea del todo configurable, y > digamos que aparezcan cuatro configuraciones por defecto,(yo creo que la > defecto deberia ser la mas semejante al PASCAL, que de eso va el tema). > > Aunque... Otra propuesta definir una palabra clave: hasta (No confundir > con > > el repetir - hasta) que ser=EDa: > > > > hasta 50 haz lo que sea. > > > > Por defecto el primer n=FAmero ser=EDa un 1. =BFQu=E9 os parece? > Perfecto un bucle sin 1 to 50 que es un engorro pa que no decirlo >=20 > > > Si alguien quiere que le pase una lista de relacionantes inutiles > > > puedo pasaros una peque=F1a lista. > > Esa lista me interesaria. > alla va: > Antes aviso que he sustituido begin y end por {} ya vereis por que, s= ino > preguntadlo > DO Relacionante totalmente inutil, creo que es una palabra insertada > para hacer legible el programa, pero es inutil, ya que solo es en ingles, > pero en castellano: > Hasta a=3D2 haz algo; Tambien se entiende Hasta a=3D2 Alg= o, al > igual en los CASE WITH IF FOR etc.. > THEN/ELSE (este acepto que lo discutais, y es util en muchos casos) en > muchas ocasiones no son necesarios: > IF a=3D1 then clrscr; se puede entender perfectamente como: > if a=3D1 clrscr; y If not (a=3D1) clrscr; podria a su vez ser > else a=3D1 clrscr; > o este otro: > if a=3D1 clrscr else (lootro); de forma que a mi modo de ver es mas legib= le, > pero talvez solo a mi modo de ver. > RECORD Es completamente inutil, quiero decir cuando declaras u= n > tipo o lo haces directo o no: > tipo=3Darray[0..5,0..5] of byte; > o > PASCAL CLASICO COMO YO DIGO: > tipo=3Drecord > tipo=3D{puntos:array[0..5,0..5] of byte; > puntos:array[0..5,0..5] of byte; elotro:eso} > elotro:eso; > end; > yo creo que es mas simple y sencillo de entender. > WHILE/UNTIL Lo detallo a continuacion en aclaracion a un pregunta: > > > Otra cosas que debemos pensar en incorporar es la posibilidad de > > > crear multiples puntos de salida en los While o Until e incluso en lo= s > > > for (Si el compilador debe escribir assembler o maquina se puede hace= r > > > todo eso y mas supongo, de todas formas yo se assembler). > > Te refieres al break de java,c,... um no se si est=E1 implementado en > > freepascal... habr=E1 que verlo. > Por si no me entendiste, no se como es el break de java, pero hay un exit= en > BASIC, y creo que en PASCAL tambien, pero no es muy fiable que yo recuerd= e. > Bueno, esta era otra caracteristica del turing que se me antoj=F3 uti= l: > LOOP { > a:=3Da+1} > exit (condicion); > b:=3Db-1 > exit (condicion); > c:=3Dc-1 > } De forma que creamos un bucle infinito y= le > damos salida despues de forma que no hay que colocar las ordenes pensando= en > el orden de la evaluacion boolean, si no que se puedan especificar multip= les > salidas del bucle en distintos puntos. > ; Creo que solo existe para poder escribir cadenas, o > intrucciones o procedimentos muy largos para mejorar legibilidad, pero es= un > co=F1azo cuando aprendes a programar (sobre todo si aprendiste BASIC como= yo) > tener que poner ; detras de cada instruccion, pero es acostumbrarse de to= das > formas yo creo que para insertar multi-lineas en una sola lo mejor seria > usar begin end; en cada una, notese que antes he utilizado en el loop {} > estas son begin y end de forma que: > {esta linea =3D'Esta linea '+ > 'esta otra'} de forma que supongo ya sabeis seria lo mismo que: > esta linea=3D'esta linea '+'esta otra'; > > > Tambien deberiamos incorporar bien lo de los constructores (Begin > > > end) y sustituir el constructor case en los tipos definidos por el > > > usuario opcionalmente (es decir que se puedan usar las dos) para que = el > > > programador que aprenda le sea mas dificil liarse, a mi personalmente > > > eso me dejo muy desconcertado, y al programador de PASCAL no se le ha= ga > > > raro. > > Explicate mejor,... cuando hablas de constructores hablas de POO o de o= tra > > cosa. Y lo del case tampoco lo entiendo ponme un ejemplo de case invali= do > > actualmente, y v=E1lido segun tu nueva visi=F3n. > Ficha =3D record > Nombre: string[20]; (* Campo fijo *) > case Tipo: TipoDato of (* Campos variantes *) > Num: (N: real); (* Si es un n=FAmero: campo N *) > Fech: (F: Fecha); (* Si es fecha: campo F *) > Str: (S: string[30]); (* Si es string: campo S *) > end; > Digo de sustituir el case hay dentro por otro similar, para no confundir, > por que de estudiante lo hay que somos cortos y oros que no, pero como se= a > uno de los cortos,, va listo. >=20 > > > Tambien he pensado que en las units la sentencia o constructor o = lo > > > que sea el OVERLOAD es bastante deconcertante se podria substuir > > > por: Procedimiento linea :multiple > > > (x,y,x2,y2:entero;color:byte); > > > (x,y,x2,y2:entero); > > > fin multiple; > Sobre esto no me comentaste nada. >=20 > > Gracias, de verdad, gracias, por todas tus ideas tu email ha sido muy > > prolifico. Podr=EDas habrirte una pagina personal en el Equipo,... y al= l=ED un > > sublink de Ideas... y organizar un poco las ideas. > No se como hacer eso, dime donde esta la pagina y yo voy apuntando co= sas > que se me vayan ocurriendo. >=20 > P.D. =BFComo vamos a hacer el compilador? =BFEn ASM, JAVA? creo que > deberiamos pensar eso, la verdad es que yo creo que a cuanto mas bajo niv= el > se compile mejor, pero la idea de poder ejecutar programas en una consola= de > java no estaria nada mal. Pero en eso yo no puedo hacer gran cosa, tendri= a > que estudiar algo o un mucho mejor dicho. > Explode |
From: adrian15 <bea...@go...> - 2003-02-14 09:57:28
|
(El email hacia arriba quizas lo comente en otro email, no lo s=E9,... pero la idea es que vayas anotando tus ideas en tu pagina personal... explicado m=E1s abajo como hacerlo) > > > Tambien he pensado que en las units la sentencia o constructor o = lo > > > que sea el OVERLOAD es bastante deconcertante se podria substuir > > > por: Procedimiento linea :multiple > > > (x,y,x2,y2:entero;color:byte); > > > (x,y,x2,y2:entero); > > > fin multiple; > Sobre esto no me comentaste nada. Es que el overload no lo he usado en pascal, =BFQu=E9 sirve para sobrecarga= r funciones... como se overload pues? =BFQu=E9 inconvenientes le ves a la forma de hacerlo ahora. Y como propondrias que fuera. =20 > > Gracias, de verdad, gracias, por todas tus ideas tu email ha sido muy > > prolifico. Podr=EDas habrirte una pagina personal en el Equipo,... y al= l=ED un > > sublink de Ideas... y organizar un poco las ideas. > No se como hacer eso, dime donde esta la pagina y yo voy apuntando co= sas > que se me vayan ocurriendo. Un ejemplo de lo que podria ser tu pagina: http://hispascal.sourceforge.net/phpwiki-1.3.3/index.php/Adrian15Pagina Te he a=F1adido un link a: http://hispascal.sourceforge.net/phpwiki-1.3.3/index.php/HispascalEquipo (Por favor pon una descripcion delante de =E9l) y solo tienes que editar tu pagina yendo a: http://hispascal.sourceforge.net/phpwiki-1.3.3/index.php/ExplodePagina?acti= on=3Dedit Para saber como editar las paginas... en resumen como funciona el wiki puedes leer: http://hispascal.sourceforge.net/phpwiki-1.3.3/index.php/WikiInformacionGen= eral http://hispascal.sourceforge.net/phpwiki-1.3.3/index.php/ReglasWikiDeEsteSi= tio > P.D. =BFComo vamos a hacer el compilador? =BFEn ASM, JAVA? creo que > deberiamos pensar eso, la verdad es que yo creo que a cuanto mas bajo niv= el > se compile mejor, pero la idea de poder ejecutar programas en una consola= de > java no estaria nada mal. Pero en eso yo no puedo hacer gran cosa, tendri= a > que estudiar algo o un mucho mejor dicho. Pues s=ED que lo tenemos que pensar. No obstante he decirte que hay programas que facilitan la creaci=F3n de compiladores aunque estamos en lo de siempre pierdes un poco de control sobre lo que estas haciendo. Yo personalmente prefiero Java y apoyarnos un poco en el proyecto del LORO si puede ser. Quiero decir,... a lo mejor si quieres hacer algo raro... pues no lo puedes hacer. Por ultimo una cosa explode, los emails has de enviarlos a: his...@li... y no a m=ED. adrian15. |