Realmente qué es programación avanzada en un lenguaje?
Aprovechar los recursos que te presta ese lenguaje de una manera óptima.
Deberíamos primero a aprender a programar con un código limpio y bien estructurado.
Luego deberíamos adentrarnos en la POO que nos brinda Harbour que es super potente.
Y aplicar técnicas como la programación lineal
if a > 10
lRet := .t.
else
lRet := .f.
endif
Pasaríamos a esta otra:
lRet := if( a > 10, .t., .f. )
Y por último a la programacón lineal
Estas pequeñas cosas marcan diferencias.
Otro ejemplo:
for i := 1 to len( a )
...
next
Es más ótimo
nLen := len( a )
for i := 1 to nLen
...
next
Lógicamente para poder usar los recursos que te da Harbour previamente tienes que saber que existen.
En cuanto a tu programa de estrés de memoria está claro que la va a agotar en un momento indeterminado ya que no sabemos los los programas que están cargados en ese momento.
Deberíamos de implementar técnicas de swapping a disco duro incluso con estadísticas de uso de solo tener en memoria lo que se está utilizando o lo más utilizado.
Harbour tiene casi todo en alto nivel y además muy optimizado, pero muchas funciones se podrían mejorar haciéndolas en C