elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ... 279
91  Programación / Java / Re: hilos simulacion en: 19 Julio 2012, 06:53 am
¿Podrías ser más específico?
92  Programación / Programación C/C++ / Re: Funcion que retorne char array? en: 19 Julio 2012, 02:41 am
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. char* func(void) {
  5. char *txt2 = malloc(20);
  6. printf("\nIntroduce word = ");
  7. scanf("%s", txt2);
  8. return txt2;
  9. }
  10.  
  11. int main(void) {
  12. int len = 20;
  13. char *str = func();
  14. printf("\nResult = %s.", str);
  15. free(str);
  16. return EXIT_SUCCESS;
  17. }
  18.  
  19.  
93  Sistemas Operativos / GNU/Linux / Re: Script LINUX Algun valiente??? en: 18 Julio 2012, 04:49 am
Cierto...., en un rato más lo ajusto.

Para qué investigación es? qué intentas hacer?
94  Programación / Programación General / Re: ¿Y si creamos un lenguaje de programación? en: 18 Julio 2012, 00:49 am
¿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 :D

Sí, de hecho imprimí el libro "how to create your own freaking awesome language" el cuál inspiró a los creadores de coffescript, el problema es que está hecho en ruby, y no me llevo muy bien con él. De hecho los creadores de coffescript utilizan también herramientas como bison y flex, lo bueno del libro es que dan el código para empezar, pero para lograr hacer algo propio hay que estudiar en demasía el código, algo que quizás en su momento me desalentó puesto que yo quería obtener resultados de manera más pronta.

La idea que tengo, que quizás trabaje en unos meses es ponerle tipos de datos e implementar una librería tipo BigInt(o utilizar gmp), para ponerle un propósito al lenguaje ...

Saludos.
95  Programación / Programación General / Re: ¿Y si creamos un lenguaje de programación? en: 17 Julio 2012, 22:36 pm
Me ha gustado lo de la iniciación por "caritas" +1

 ;D

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.

Se puede, claro, hay que checarlo con detenimiento, por ejemplo, si quisieramos terminar la expresión o sentencia con un '.' podría haber algo así:

1+2.

Pero el intérprete se confundiría ya que puede ser un número decimal o no, cuestiones como esas son las que te topas al programar algo así, aunque pudiera utilizarse otro caracter para fin de sentencia, sólo habría que verificar que no se usara en ninguna otra parte o entrara en conflicto con otras cosas.

la forma de declarar las variables :variable: es vastante novedosa +2 :esto es una variable: :D genial!, aunq como concatenarias tu dos variables?

Código:
:var1: = 'hola ';
:var2: = 'mundo!';
printn(:var1: + :var2:);
printn(:var1: . :var2:);
printn(:var1::var2:);
var2 = 'Esto es una variable?';

Eso lo intenté, el realizar algo así:
Código:
print("hola! ", : variable :, " bye", "ok\n\4", 1 + 2.34545, -5, "etc....");

Pero no es tan sencillo, en el analizador sintáctico habría que realizar una buena BNF que soporte todo eso, algo así:

Código:
print_expression_list:
    print_expression_list ',' expression
    | {;} /* por si se escribe print() */

expression:
    constante_numerica
    | cadena
    | variable
    | ID

Habría que checar con detenimiento la forma Backus-Naur,


Sobre lo de los nombres de las funciones delimitadas con $$ se puede cambiar, no es mucho problema, el código actual para eso es bastante sencillo, algo así:

Código
  1. [$].+[$] {
  2. strcpy(yylval.nameFunction, yytext);
  3. yylval.nameFunction[strlen(yylval.nameFunction)] = '\0';
  4. return FUNCNAME;
  5. }

[$].+[$] es la expresión regular que utilizo para coincidir $texto$.

Saludos.
96  Programación / Programación C/C++ / Re: Matrices en C/C++ Urgente!!! en: 17 Julio 2012, 21:00 pm
Hola.

Para sacar máximos y mínimos no tiene que estar ordenada la estructura.

Ejemplo:

Código:
int max = array[0];
for(i = 0; i < n; i++) {
    if(array[i] > max) {
        max = array[i];
    }
}

Lo mismo para el mínimo.
97  Programación / Java / Re: Error: Misplaced contruct(s) en: 17 Julio 2012, 20:36 pm
Qué extraño, intenta colocar el constructor al principio, a ver qué dice, aunque creo que dirá lo mismo.
98  Programación / Scripting / Re: LINUX Script en: 17 Julio 2012, 08:00 am
Te he contestado en tu otro post.
99  Sistemas Operativos / GNU/Linux / Re: Script LINUX Algun valiente??? en: 17 Julio 2012, 07:55 am
Se puede hacer algo así:

Código
  1. #!/usr/bin/env bash
  2.  
  3. # Si está el siguiente archivo es que ya se ha ejecutado.
  4. if [ -f $HOME/algo.lock ]; then
  5. # Hacer la resta.
  6. # Fecha actual:
  7. date_now=$(date +%s -d "`date +"%b %d, %Y %r"`")
  8. date_2=$(cat $HOME/algo.lock)
  9. ((diff_sec=date_now - date_2))
  10. echo -n "Fecha entre hoy y la fecha anterior... ";
  11. echo $diff_sec | awk '{printf "%d:%d:%d\n",$1/(60*60),$1%(60*60)/60,$1%60}'
  12. else
  13. echo -e "Es la primera vez que se ejecuta este script.";
  14. # Guardar fechas
  15. date_1=$(date +%s -d "`date +"%b %d, %Y %r"`")
  16. echo -e "La fecha actual es: $date_1";
  17. echo -e "$date_1" > $HOME/algo.lock
  18. fi
  19.  

El script busca un archivo en /home/user/ llamado "algo.lock", si está hace la resta entre la fecha que está en dicho archivo y la actual, sino, solo muestra la fecha actual y la guarda en dicho archivo.

Espero y sirva de algo.
100  Programación / Programación General / Re: ¿Y si creamos un lenguaje de programación? en: 17 Julio 2012, 07:10 am
El lenguaje es interpretado, el intérprete está hecho en C, básicamente el intérprete es una función recursiva, lo cual hace fácilmente implementable cualquier función que se desee, pensar crear código objeto es ir bastante lejos, mis conocimientos no son tan grandes.

Saludos.
Páginas: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ... 279
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines