¿Podrías ser más específico?
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú#include <stdio.h>
#include <stdlib.h>
char* func(void) {
char *txt2 = malloc(20);
printf("\nIntroduce word = ");
scanf("%s", txt2);
return txt2;
}
int main(void) {
int len = 20;
char *str = func();
printf("\nResult = %s.", str);
free(str);
return EXIT_SUCCESS;
}
Cita de: lnvisible en 17 Julio 2012, 23:30 PM
¿has visto lo que hace coffeescript con javascript o lo que hace clojurescript?
Es mucho más fácil que hacer un lenguaje de programación porque sólo tienes que traducir entre lenguajes, así que no te tienes que preocupar del código intermedio, la tabla de símbolos y todas esas cosas que hay que manejar en un compilador para acabar generando ensamblador. Es más fácil generar javascript que ensanblador.
Lo que puedes hacer es algo parecido a coffeescript, que es un lenguaje muy sencillo y legible, o python, o alguno así que te guste, y generar lisp.
Si generas lisp luego eso se puede traducir a clojure y a clojurescript, es cedir que lo puedes pasar a java y a javascript, servidor y cliente, y montones de librerías para usar, como con scala.
Y sólo por hacer una traducción de algo más legible que lisp.
Un primer paso sería cambiar los paréntesis por niveles de indentación, como en coffeescript y python. Con eso sería mucho más legible en mi opinión.
Piénsalo
Cita de: AbrahamAraon en 17 Julio 2012, 12:11 PM
Me ha gustado lo de la iniciación por "caritas" +1
Cita de: AbrahamAraon en 17 Julio 2012, 12:11 PM
Noté que usas ";" para fin de linea osea lo usas para saber cuando a acabado la declaracion de la expresión, eso siempre ha sido mi punto debil he de admitir por lo que sería genial que añadieras otra forma de finalizar la expresion tal como un "[Intro]" o un "." se parece demasiado al C.
Cita de: AbrahamAraon en 17 Julio 2012, 12:11 PM
la forma de declarar las variables :variable: es vastante novedosa +2 :esto es una variable:genial!, aunq como concatenarias tu dos variables?
:var1: = 'hola ';
:var2: = 'mundo!';
printn(:var1: + :var2:);
printn(:var1: . :var2:);
printn(:var1::var2:);
var2 = 'Esto es una variable?';
print("hola! ", : variable :, " bye", "ok\n\4", 1 + 2.34545, -5, "etc....");
print_expression_list:
print_expression_list ',' expression
| {;} /* por si se escribe print() */
expression:
constante_numerica
| cadena
| variable
| ID
[$].+[$] {
strcpy(yylval.nameFunction, yytext);
yylval.nameFunction[strlen(yylval.nameFunction)] = '\0';
return FUNCNAME;
}
int max = array[0];
for(i = 0; i < n; i++) {
if(array[i] > max) {
max = array[i];
}
}
#!/usr/bin/env bash
# Si está el siguiente archivo es que ya se ha ejecutado.
if [ -f $HOME/algo.lock ]; then
# Hacer la resta.
# Fecha actual:
date_now=$(date +%s -d "`date +"%b %d, %Y %r"`")
date_2=$(cat $HOME/algo.lock)
((diff_sec=date_now - date_2))
echo -n "Fecha entre hoy y la fecha anterior... ";
echo $diff_sec | awk '{printf "%d:%d:%d\n",$1/(60*60),$1%(60*60)/60,$1%60}'
else
echo -e "Es la primera vez que se ejecuta este script.";
# Guardar fechas
date_1=$(date +%s -d "`date +"%b %d, %Y %r"`")
echo -e "La fecha actual es: $date_1";
echo -e "$date_1" > $HOME/algo.lock
fi