Categorías > Discusión general > Nuevo lenguaje de programación ...
Nuevo Mensaje | Responder
Sorancio


307 envíos
Desconectado
1737 lecturas
10 respuestas
Nuevo lenguaje de programación29-12-2009 a las 00:35:50

Bueno, en el chat, charlando con la gente, hemos tenido la idea del desarrollo de un nuevo lenguaje de programación. Somos gente que hemos visto múltiples lenguajes (sólo hay que ver todos los lenguajes que hay en manuales (aunque algunos todavía no estén rellenados y otros estén en procesos)) de programación, y pues podríamos diseñar y implementar un lenguaje que tenga las características que queramos.

Así que, somos programadores (o pseudoprogramadores, según se mire), hemos visto múltiples lenguajes y sabemos la mayoría que queremos en los lenguajes para programar lo mejor que nuestra mente pueda ofrecer.

Se han creado múltiples lenguajes para satisfacer las necesidades de los programadores, C para hacer código eficiente portátil, Java para hacer código pseudoportátil en ejecución, JavaScript para dar vidilla a la web.

¿Quien se apuntaría al diseño de uno? Fomentaría el buen rollo, compañerismo, y trabajo en equipo, a parte de que mejoraríamos mucho en conocimientos de informática y lenguajes.

Ideas



1) (Por Sorancio) Pseudo-lenguaje de extensión, mezcla de HTML y SQL por ejemplo:
Definición de macro GAP:
<DEFMACRO
  range CASE-INSENSITIVE AS KEYWORDS
  [from LITERAL NUMBER OPTIONAL 0]
  [to LITERAL NUMBER]
  ASSUME typeof(from) IS typeof(to) ON FALSE "%from must have the same type of %to"
  ASSUME from IS LOWER THAN to ON FALSE "%from must be lower than %to"

  PVAR ret AS ARRAY
  DO {
      for i = from, to do
        ARRAY_PUSH(i)
      end
  }
  EVAL ret
?>

Uso en código:
Código GAP:
for it in range from 0 to 10 do
  print(it)
end       

Código GAP:
for it in range to 10 do ; from es opcional y si no se pone, se asume a 0
  print(it)
end       

Explicación:
  Las macros se evalúan en tiempo de compilación y sirve para hacer cambios en la sintaxis del lenguaje y hacer el código más corto. Así que no afectan en nada al código en ejecución y es igual de rápido, pero mucho más fácil de escribir

2) (Por Sorancio) Referencias a cualquier tipo de variable, por ejemplo:
Código GAP:
routine start (args)
  var ref
  if args.length() == 1 then
      switch (args.at(1).tolower()) do
      when "stdout" then ; a los pythoneros les sonara algo como "Stdout".tolower()
        ref = stdout.ref()
      end
      default do
        ref = fopen(args.at(1), "w+").ref()
      end
  end
  ref.printf("Soy una referencia en %p que apunta a %r", &ref, ref)
end


3) (Por wilmaforez) Que los 'end' de la sintaxis vayan seguidos de lo que cierran, por ejemplo:
Código GAP:
if args.length() == 1 then
    stdout.printl(args.at(1))
end if


4) (Por wilmaforez) Especificar en los parámetros sin son modificables, de entrada o de salida, por ejemplo:
Código GAP:
routine fibonacci(n :in)
  if n == 0 then
      return 0
  elseif n == 1 then
      return 1
  else
      return fibonacci(n - 1) + fibonacci(n - 2)
  end if
end routine


5) (Por Sorancio) Código no portable en macros
Código GAP:
<DEFMACRO
  clear_screen AS FUNCTION
  PVAR ok
  ok.FALSE()
  ON win32 DO {
      ok.TRUE()
      os.system("cls")
  }
  ON linux DO {
      ok.TRUE()
      os.system("clear")
  }
  EVAL ok.asBool()
?>
<DEFMACRO
  get-eax AS FUNCTION
  PVAR ret {this.SET(0)}
  ON ARCH x86 OR x64 DO {
      %ASM%{
        ret.SET(%eax)
      }
  }
  EVAL ret.asInt32()
}
?>


Empieza a tomar forma de un buen lenguaje




¿Que os parece la sintaxis?
Saludoos.


Responder | Citar | Moderar | Mensaje Privado
Training Channel
CHuLoYo


762 envíos
Desconectado

#1
RE: Nuevo lenguaje de programación29-12-2009 a las 01:01:46

Wow! Pero ahí ya hay que meterse en temas de ensambladores y tal no? No es fácil crear un programa, imagínate un nuevo lenguaje! Se ve que entiendes de caray!

Saludos.

www.Esquio.net | Diseño y programación web profesional
Responder | Citar | Moderar | Mensaje Privado
mandrake


134 envíos
Desconectado

#2
RE: Nuevo lenguaje de programación29-12-2009 a las 01:11:42

INTERESANTE!!!
Mas un poco dificil. Se tendría que planear bien...
Además sería solo para practicar, y aprender más. Sin ningún otro fin... Al menos hasta tener algo, parcialmente funcional.

"Cuando estás en un atasco de tráfico con un Porsche, todo lo que puedes hacer es consumir más combustible que el resto estando parado. La escalabilidad va de construir carreteras más anchas, no coches más rápidos"
Responder | Citar | Moderar | Mensaje Privado
zyxu


118 envíos
Conectado

#3
RE: Nuevo lenguaje de programación29-12-2009 a las 01:20:11

La idea es... genial!! pero creo que poco probable... muchos de aquí tenemos todavía muuuuucho que aprender

Pero llegado el momento, solo tengo una propuesta, llamarlo GAP, en honor a las iniciales de la página en sus inicios.... que os parece??

que ideas se os ocurren!!!

"Quien salva una vida, salva al mundo entero"
Responder | Citar | Moderar | Mensaje Privado
CHuLoYo


762 envíos
Desconectado

#4
RE: Nuevo lenguaje de programación29-12-2009 a las 01:30:27

Me gustaría mucho programar en GAP! XD

www.Esquio.net | Diseño y programación web profesional
Responder | Citar | Moderar | Mensaje Privado
Sanguinario_Joe


368 envíos
Desconectado

#5
RE: Nuevo lenguaje de programación29-12-2009 a las 08:43:10

Ja, seria divertido, pero me parece una majaderia (con cariño).

Me parece que hay cosas mucho mas interesantes para esta web, y no lo veo muy bien en el rumbo actual de la misma.

Actualmente la estructura es de construccion, ChuloYo fabrica la web, algunos fabricamos manuales, y otros practican como alumnos.

Tal vez en un futuro, la web pueda tomar otra direccion (yo ya dije en su dia que este tipo de proyectos sirven muy bien como lanzadera, para desarrollar programas, juegos, ...), pero de momento yo dejaria este tema aparcado.

Saludos!!!

Una causa es la causa de la siguiente. Y la suma de las causas es la causa del desastre.
(Principios de la causalidad de Pepe)

Responder | Citar | Moderar | Mensaje Privado
Sorancio


307 envíos
Desconectado

#6
RE: Nuevo lenguaje de programación29-12-2009 a las 13:04:53

No tiene porque hacerse ahora. Podríamos sólo diseñarlo y luego, cuándo haya una media de más nivel, implementarlo.

@CHuloYo
Pues sí, si queremos hacerlo nativo, hay que meterse en cosas cómo código máquina y estructura de las arquitecturas modernas. Yo sólo se cómo va x86 por ahora , y no del todo, aunque en principio lo ideal sería hacerlo interpretado, de extensión a nuestros programas.

PD:
  Para el diseño del lenguaje, enviadme mensajes con las ideas y yo las pongo en el mensaje principal, así tendremos todo ordenado.


Responder | Citar | Moderar | Mensaje Privado
mandrake


134 envíos
Desconectado

#7
RE: Nuevo lenguaje de programación29-12-2009 a las 18:38:47

Me parece más prudente; (al menos por el momento...) Crear un pack de librerías que nos faciliten el trabajo diario.
El pack de librerías estaría formado, por:
a) Librerías de Terceros
b) Librerías de GAP (Creadas por nosotros.)

Sería una recopilación, de librerías para todo tipo de usos.
Que opinan???

"Cuando estás en un atasco de tráfico con un Porsche, todo lo que puedes hacer es consumir más combustible que el resto estando parado. La escalabilidad va de construir carreteras más anchas, no coches más rápidos"
Responder | Citar | Moderar | Mensaje Privado
Sorancio


307 envíos
Desconectado

#8
RE: Nuevo lenguaje de programación29-12-2009 a las 20:39:46

Está bien, pero tendría que ser para muchos lenguajes, Python, C, C++, Common Lisp, JavaScript... Ya lo había pensado, pero tendríamos que centrarnos en un lenguaje y usar sólo su librería estándar (para hacerlo portable y eso).

Yo voto por C.

PD: Dad ideas para el lenguaje, las pongo en el primer mensaje


Responder | Citar | Moderar | Mensaje Privado
Niniel


158 envíos
Desconectado

#9
RE: Nuevo lenguaje de programación31-12-2009 a las 01:14:22

Me parece buenísima la idea de Sorancio de crear un nuevo lenguaje. Por mi parte, cuando empiece a dar Teoría de la programación, colgaré aquí directamente mis apuntes (al igual que estoy haciendo con los de Turbo Pascal y haré con ADA).

Por el momento pienso que lo de las librerías estaría chulo. Lo que yo voto es por hacer un pseudocódigo de la librería, que sería estándar (entre nosotros, eso sí) para luego pasarlo a cualquier idioma (que sería bastante más facil que partir desde cero en cada programa).

Digamos que en vez de jugar tanto a ser obreros de la construcción, podríamos pasar a ser arquitectos conceptuales, que suele ser algo más dificil de llevar, y luego ir pasando las librerías básicas a los lenguajes que lo necesitasen (lo digo porque C está way... sí... pero... me sigue gustando más ADA, y es un lenguaje en el que ODIO que medio programa sean llamadas a librerías).

En lo del nombre estoy deacuerdo en que se llame GAP, mola el nombre :D.

Blog de informática y tonterías en general.
Responder | Citar | Moderar | Mensaje Privado
Sorancio


307 envíos
Desconectado

#10
RE: Nuevo lenguaje de programación31-12-2009 a las 13:06:21

La idea de Niniel es muy buena, cómo muchos trabajamos en plataformas diferentes (en general, GNU/Linux y Windows) podríamos hacer librerías que ayudasen a hacer código totalmente portable para que no tengamos distancias.


Responder | Citar | Moderar | Mensaje Privado