Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
A programming language written in naalaa
#21
Yes, I'm alive. And I can see that you still don't understand other people's posts and don't know what's going on in IT world.
- ohoho good to know that i am stupid little jerk who don't understand other people..really
>>> stupid is type of reaction >>><


1. Why do you talk about dual boot with XP when we have already agreed that there was no problem with XP or 7?
- ok you have a right about that Big Grin
2. Trying to use obscure distros instead of something popular is the best way to "prove" that Linux is still unusable.
- no just oposite... small distros work like charm for me
3. There are companies selling Linux machines.
- ihiiii - where ? here there is no such a computer shop
of course you can buy cheap comp with some distros like FreeDos or similar crap


4. Using Linux only is much easier today than, let's say, 5 years ago, due to things being moved to cloud and mobile. 
- i don't say that is Linux hard to use today ,it is easier than before of course but real advantage of that
is minor.

And for conclusion - there is no linux machine or windows machine
(well there are some attempt to lock BIOS for windows only -
but that is already cracked...hehehheh )
BEEEEEP.........
Big Grin
Reply
#22
(08-15-2018, 07:22 PM)Aurel Wrote: - no just oposite... small distros work like charm for me

Sure, they do.

(08-15-2018, 07:22 PM)Aurel Wrote: - ihiiii - where ? here there is no such a computer shop

https://www.entroware.com/store/index.ph...ommon/home
https://system76.com/

But I'm not gonna argue - I believe that a local computer store in your village doesn't have anything with Linux.

(08-15-2018, 07:22 PM)Aurel Wrote: - i don't say that is Linux hard to use today ,it is easier than before of course but real advantage of that
is minor.

I was talking about something different. Several years ago getting rid of Windows was a bold move, because there was plenty of things you needed Windows for. That was the reason for the whole dual boot thing.  Nowadays, more and more people decide to use Linux only. I'm not saying that a total number of Linux users is going up quickly. I'm saying that more and more Linux users do not have a need to keep Windows on their machines. Of course, there are still areas where Linux sucks. Audio production and gaming are perfect examples here, but things like Internet, multimedia etc. work equally good.

(08-15-2018, 07:22 PM)Aurel Wrote: And for conclusion - there is no linux machine or windows machine

Well, maybe (depends in what context). But "Be oriented to linux only this days really sucks" is just nonsense.
Reply
#23
But I'm not gonna argue - I believe that a local computer store in your village doesn't have anything with Linux.

Yeah...in a village called Croatia- only 4.3 mil of people ...
I really don't know for such a store Undecided 
We are WINDOWS country...he he Big Grin

Of course, there are still areas where Linux sucks.

..and I am pissed off because of that , I even try to build something for myself
for electronic but then i give up
ahhh  long story  .,...
Reply
#24
Thumbs Up 
Wherever there's a forum, Aurel and Tomaaz will be there to argue Smile  I've been missing it though, so keep it up!
Reply
#25
Hi Marcus
I don't want to bothering you but something is not clear to me in
your PROLAN

inside procedure / function

 Signed factor.

procedure SignedFactor()
    if nextType = CHARACTER
        if nextAsc = CHR_PLUS
            ' Not quite sure here ...
            _GetNext
            _Factor

Why you not sure with calling
GetNext   or with  Factor ?
and i don't get it why you have SignedFactor and  just Factor ?
i have made recursive descent like this in 3 functions
look in this as pseudo code and what you think about that option?


'fn expression -----------------------------------------------

function Expression() as Float
float res
if tokType = tNUM OR tokType = tVAR  'num or numeric variable
    if nextTokenType = tPLUS OR nextTokenType = tMINUS
        if tPLUS '(+)
            GetToken() ' get token from token list/array
            res = token + Term()
        elseif tMINUS '(-)
            GetToken()
            res = token - Term()
        end if
    end if
end if
return res
end function

'term -------------------------------------------------------
function Term() as Float
float res
res = Factor()
if nextTokenType = tMULTI OR nextTokenType = tDIVIDE
    if tMULTI '(*)
        GetToken()
        res = res * Factor()
    elseif tDIVIDE '(/)
        GetToken()
        res = res / Factor()
    end if
end if
return res
end function

'factor -----------------------------------------------------
function Factor() as Float
float res
if tokType = tNUM
    return GetNum(token)
end if

if tokType = tVAR
    return GetVar(token)
end if

if tokType = tLParen '(
Match("(")
res = Expression()
Match(")")
end if
'else?
return res ' from func->Expression()
end function
Reply
#26
Not quite sure about the naalaa version of prolan. It was a mess. Have a look at the C version instead (https://naalaa.com/jail/). Probably it looks even worse, haha Smile  I'm no good at compiler construction or the theories behind it, so I probably make many things in stupid ways Big Grin

I've actually had some good use of jail while helping my woman write scripts that needed to process files recursively and such. Could never have used naalaa for that, and in C (her preferred language besides assembler) it would have been a complete mess Smile
Reply
#27
Yo Marcus

Just to let you know...
you dont need two factor routines than just one is enough 
no matter what you use directly -tokens or bytcode.
i do it in my new freak-show micro(A) interpreter like this:

Code:
'-----------------------------------------------------
sub gettok()
tc++
token = tokList[tc]
'test
if tokList[tc+1] <> "" then return
end sub
'----------------------------------------------------
sub expr() as float
float v
If token = "-"
v = -(term())
else
v = term()
end if

while token = "+" or token = "-"
if token = "+": gettok() : v = v + term(): end if
if token = "-": gettok() : v = v - term(): end if
wend

return v
end sub
'---------------------------------------------------
sub term() as float
float v
v = factor()

while token = "*" or token = "/"
if token = "*": gettok() : v = v * factor(): end if
if token = "/": gettok() : v = v / factor(): end if
wend

return v
end sub
'-------------------------------------------------------

sub factor() as float
float v
if asc(token)>47  and asc(token)<58 'nums
v = val(token)
'print str(v)+ " factor"
gettok()
end if

if asc(token)=40 and asc(token)<>41 'match (...)
gettok() : v = expr() : gettok()
end if


return v
end sub

'execute-----------------------------------------------------
sub exec
gettok()'start
float res = expr()
print "RESULT=" + str(res)
end sub

So, as you can see only three functions for expression evaluator.
By the way, your NaaLaa version of Prolan is very clear and good....  Smile
all best !
Reply
#28
(05-09-2019, 06:40 PM)Aurel Wrote: Yo Marcus

Just to let you know...
you dont need two factor routines than just one is enough 
no matter what you use directly -tokens or bytcode.
i do it in my new freak-show micro(A) interpreter like this:

Code:
'-----------------------------------------------------
sub gettok()
tc++
token = tokList[tc]
'test
if tokList[tc+1] <> "" then return
end sub
'----------------------------------------------------
sub expr() as float
float v
If token = "-"
v = -(term())
else
v = term()
end if

while token = "+" or token = "-"
if token = "+": gettok() : v = v + term(): end if
if token = "-": gettok() : v = v - term(): end if
wend

return v
end sub
'---------------------------------------------------
sub term() as float
float v
v = factor()

while token = "*" or token = "/"
if token = "*": gettok() : v = v * factor(): end if
if token = "/": gettok() : v = v / factor(): end if
wend

return v
end sub
'-------------------------------------------------------

sub factor() as float
float v
if asc(token)>47  and asc(token)<58 'nums
v = val(token)
'print str(v)+ " factor"
gettok()
end if

if asc(token)=40 and asc(token)<>41 'match (...)
gettok() : v = expr() : gettok()
end if


return v
end sub

'execute-----------------------------------------------------
sub exec
gettok()'start
float res = expr()
print "RESULT=" + str(res)
end sub

So, as you can see only three functions for expression evaluator.
By the way, your NaaLaa version of Prolan is very clear and good....  Smile
all best !

Thanks for the tip and code! I'll see if there's a reason for why I'm doing it the way I do. I probably did it that way when writing naalaa, for some dumb reason,  and then I just mimiced that for jail.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)