jezici.1bulaja,
**** new file ****
R:\IBMPC\PROGRAM\*.*
----------------------
4thcmp21 zip 97205 ForthCMP, kompajler za programski jezik Forth
ForthCMP is the Forth language compiler for computers running MS-DOS.
Features of ForthCMP:
¨ Compiles Forth into machine code -- not interpreted.
¨ ForthCMP is written in Forth so that Forth code can be executed
during compilation, as is customary in Forth applications.
¨ Very fast -- ForthCMP compiles Forth code into an executable file
in a single pass.
¨ Generated code is extremely compact. Over 100 Forth "primitives"
are compiled in-line. ForthCMP performs constant expression
folding, strength reduction, register optimization, DO...LOOP
optimization, tail recursion, and various "peephole"
optimizations.
¨ Built-in assembler.
¨ Libraries are in source format.
¨ ForthCMP supports many memory models, none big, but several not
often found in compilers:
° Single segment COM file, fixed at 64k bytes
° As above, but minimized segment size for TSRs
° Separate code and data segment EXE file
° Device driver SYS format
° Romable program, uninitialized ram
° Romable program, data ram initialized from rom image
° Any of the above can have a separate stack segment for
return and parameter stacks
¨ Functions exist for allocating memory in additional segments, or
allocating arrays on the stack, to handle programs with large
data memory requirements.
¨ Library support:
° The 83 Forth standard, except for functions that do not make
sense in a compiled environment.
° Many additional words that are non-standard but widely
accepted, such as SKIP SCAN NIP and TUCK.
° Direct Display Writing library for fast display of text in
color, and positioned on screen. For IBM-PC compatibles.
° Multitasker with message passing facility and timed sleeps.
° Library to support writing "Filter" programs.
° MS-DOS file interface, compatible with LMI Forths.
° String support, compatible with LMI Forths.
° Forth Vendor standard software floating point (for customers
of LMI Forth).
Preuzeto sa FFS-a (thanks to ppekovic).
jezici.2bulaja,
**** new file ****
R:\IBMPC\PROGRAM\*.*
----------------------
fst-31s a01 151576 FST Modula-2 v3.1, kompajler za prog.jezik Modula-2 #1
fst-31s a02 149817 FST Modula-2 v3.1, kompajler za prog.jezik Modula-2 #2
FST (Fitted) Modula-2 Version 3.1
This system features a Modula-2 compiler with an integrated editor and
"make" facility, a program linker, a makefile generator, and an
execution profiler.
The compiler generates code for the Intel 8086 "huge" or "large"
memory model: In the "huge" memory model, each module has its own data
and code segment, each of which can be up to 64k in size; In the
"large" memory model, all the modules' static data is combined into a
single data segment. In either model, pointers are 4 bytes long and
all the leftover memory is available for the "heap". More restrictive
memory models are not supported.
jezici.3bulaja,
**** new file ****
R:\IBMPC\PROGRAM\*.*
----------------------
gawk215 a01 145633* GNU AWK v2.15, exe+doc+source (AWK programski jezik) #1
gawk215 a02 145400* GNU AWK v2.15, exe+doc+source (AWK programski jezik) #2
gawk215 a03 145482* GNU AWK v2.15, exe+doc+source (AWK programski jezik) #3
gawk215 a04 144389* GNU AWK v2.15, exe+doc+source (AWK programski jezik) #4
jezici.5ivan.s,
Vidim da se u direktorijumu nalazi xlsp21ex.zip, pa sam pomislio da bi ovo
nekome moglo biti interesantno:
XLISP 2.0 LANGUAGE REFERENCE
by
Tim I Mikkelsen
December 11, 1989
This document is intended to serve as a reference for the XLISP
2.0 dialect of LISP. It includes a description of each symbol,
function, special form and keyword available in XLISP. This
reference is not a complete and extensive introduction to LISP
programming.
If you find problems with the reference or find that I have left
something out, drop me a line. If you find this useful, I would
be interested in hearing that as well. If you are into 'pretty'
looking documents (as oppossed to plain ASCII text), I have a
TeX version of the reference.
Tim Mikkelsen
4316 Picadilly Drive
Fort Collins, Colorado 80526
xlispref.arjjezici.6mjova,
> Vidim da se u direktorijumu nalazi xlsp21ex.zip, pa sam
> pomislio da bi ovo nekome moglo biti interesantno:
bi! ;) baš sam danas bio kod jednog drugara (mali genijalac ;), koji
je u lispu napisao neki prg koji služi za rešavanje izvoda funkcije
;). haos, nisam verovao da to ima samo 4k. oni koji su upućeniji,
znaju da se radi o (ne)običnoj text datoteci jer je lisp zapravo
interpreter.
znam da nema neku praktičnu primenu (osim u obrazovanju) ali je vrlo
zanimljiva stvar ;). jedino me zanima da li je neko nekad i negde
video lisp koji daje .exe?
jezici.7.obj,
> znam da nema neku praktičnu primenu (osim u obrazovanju) ali je vrlo
> zanimljiva stvar ;).
Zahvali Bogu što nisi imao ispit iz LISP-a. Zamrzeo bi ga za sva
vremena. ;))
Da je zanimljivo - jeste, mada mi ta (i slične) koncepcije ne liče na
programske jezike XXI veka. ;) IMHO. :)
> jedino me zanima da li je neko nekad i negde video lisp koji daje .exe?
Video sam u paketu kompajler za Arity Prolog i (neki) LISP, pa ako
naletim, obavestiću te. :)
Ou bi džej
jezici.8djelovic,
> znam da nema neku praktičnu primenu (osim u obrazovanju) ali je vrlo
> zanimljiva stvar ;).
Naprotiv! Možda mi i ne vidimo da neko koristi Lisp jer ti on baš
mnogo i ne treba za pravljenje, recimo, baza podataka :-), no ljudi koji se
bave i drugim stvarima nalaze ga veoma korisnim :-).
Takođe, za razliku od Prologa (koji po meni baš i nije koristan)
Lisp je Američko mezimče, tako da se većina projekata na njemu odvija sa
one strane bare, uz malo šanse da za njih čujemo zbog uskostručne namene
tih projekata.
jezici.9spantic,
> znam da nema neku praktičnu primenu (osim u obrazovanju) ali je vrlo
> zanimljiva stvar ;). jedino me zanima da li je neko nekad i negde
> video lisp koji daje .exe?
Ne, ali sam svojevremeno ( ne u Jugi ) video LISP mašinu. Ono beše
zabranjen bio izvoz iz SAD iste? E pa, kanda nije :)
jezici.10prvul,
Ů Ne, ali sam svojevremeno ( ne u Jugi ) video LISP mašinu. Ono beše
Ůzabranjen bio izvoz iz SAD iste? E pa, kanda nije :)
Ů▄▄
Sigurno nije. '90 sam radio na LISP mašini jedno mesec dana u
Izraelu pa sam siguran :) da je bila van SAD :) Moram da kažem da
nije u pitanju ništa užasno pametno. Tamo su je koristili za
najobičniju statističku analizu eksperimentalnih podataka (jes da
je jako brzo i lepo radila, ali ništa što ne bi danas moglo na
486 istom brzinom). Ono što mi se posebno svidelo jeste operativni
sistem (tada Genera 7.0). Imam negde otprintanih jedno 10 ekrana
(za uspomenu :)... sjajna stvar je to što postoji komandna linija
i sistem menija... volj' ti kliknuti - volj' ti otkucati... ako se
otkuca samo deo naredbe, sistem je dopuni do kraja, ako postoji
više naredbi sa takvim početkom, može se birati između njih... do sada
nisam video tako logičan sistem.
jezici.11mjova,
> Ono beše zabranjen bio izvoz iz SAD iste? E pa, kanda nije
> :)
ma šta zabranjen ;)
jezici.12bulaja,
│bi! ;) bas sam danas bio kod jednog drugara (mali genijalac ;), koji
│je u lispu napisao neki prg koji sluzi za resavanje izvoda funkcije
│;). haos, nisam verovao da to ima samo 4k.
└───
Pa nema lakse stvari od pravljenje funkcije za racunanje izvoda u
jezicima tipa Prologa ili Lispa :). Potrebno je samo da definises
pravila izvodjenja za osnovne funkcije i that's all. Davno sam radio u
prologu pa ne mogu sad da ti otkucam kako bi izgledao takav program, ali
trivijalan je :).
jezici.13v.nesic,
> Pa nema lakse stvari od pravljenje funkcije za racunanje izvoda u
> jezicima tipa Prologa ili Lispa :). Potrebno je samo da definises
> pravila izvodjenja za osnovne funkcije i that's all. Davno sam radio u
> prologu pa ne mogu sad da ti otkucam kako bi izgledao takav program, ali
> trivijalan je :).
Imaš ga u primerima za onaj prolog na a, valjda ariti ili tako nešto.
jezici.14isekulovic,
>> Imaš ga u primerima za onaj prolog na a, valjda ariti ili tako nešto.
Jel dotični PD ili SW?
jezici.15nbatocanin,
> za rešavanje izvoda funkcije ;). haos, nisam verovao da to
> ima samo 4k.
To je standardni primer za takve jezike. Sve nešto mislim da su ga
izabrali zato što se kratko piše ;)
> znam da nema neku praktičnu primenu (osim u obrazovanju)
> ali je vrlo zanimljiva stvar ;). jedino me zanima da li je
> neko nekad i negde video lisp koji daje .exe?
Koncepcija LISP-a je takva da je prirodno rešenje interpreter: mnoge
stvari se dešavaju za vreme rada programa i to je nemoguće prevoditi.
Naravno, može se praviti neki prevodilac koji je maskirani
interpreter, ali to nije to. Inače, mislim da sam pročitao negde o
prevodiocima za LISP. Uzgred, standardni primer za LISP je LISP
program koji je LISP interpreter :) Zbog koncepcije se ovo veoma lako
radi.
jezici.16niklaus,
> Naprotiv! Možda mi i ne vidimo da neko koristi Lisp jer ti on baš
> mnogo i ne treba za pravljenje, recimo, baza podataka :-), no
> ljudi koji se
Primera radi, LISP koristi AutoCAD. Sam integrisani (u paket)
kompajler se zove AutoLISP i služi svemu i svačemu za rad pod ACAD-om
(npr. ubacivanje sopstvenih dijaloga, object-oriented-like, u sam
AutoCAD).
(:niklaus:)
jezici.17niklaus,
>>> Imaš ga u primerima za onaj prolog na a, valjda ariti ili tako
> nešto.
>
> Jel dotični PD ili SW?
Dotični ArityProlog (firmi-proizvođaču je glava lava (; logo
znak) se nalazio na računarima u mojoj nekadašnjoj školici (MG).
Vidi sa nekim od aktuelnih MG-SEZAMovaca za nabavku...
(:niklaus:)
jezici.18dejanr,
Prvi C kompajleri prilagođeni Penitumu. NOVOSTI/microb 4.99.
jezici.19.bale.,
> Prvi C kompajleri prilagođeni Penitumu. NOVOSTI/microb 4.99.
E, strava! ;-))) Prvo kompleksne instrukcije pretvori u manje
kompleksne, pa uradi RISC optimizaciju, pa onda vrati u CISC...
Genijalno! Mudro! ;-)
jezici.20broker,
Preuzeto sa U'NI-net:
**********************************************************************
BBS: ORESKA Conference: U.Programmin Imported: 9/15/1993
To: ALL Num: 17131 Date: 9/02/1993
From: DENNIS QUINN Re: 16404 Time: 8:08 pm
Subj: Funky error messages Prvt: N Read: N
**********************************************************************
Looking through my archives, I ran across these for your pleasure:
-------------------------------------------------------------
<forwards removed>
Subject: FW: Klingons????
This was too funny to keep to myself:
The Inmos transputer C compiler had been in the field for a few months.
One day, they got a phone call from a University in Florida to inquire
about the error condition which resulted in the following message:
Error 92: Klingons on the starboard bow
---------------------------------------------------------------
<forwards removed>
Subject: FW: MPW C errors
These are some of the error messages produced by Apple's MPW ŠMacintosh
Power WorkstationĆ C compiler. These are all real. (If you must know I
was bored one afternoon and decompiled the String resources for the
compiler.) The compiler is 324k in size so these are just an excerpt I
hope. I'm not sure where I stand on the copyright issue.
"String literal too long (I let you have 512 characters, that's 3 more
than ANSI said I should)"
"...And the lord said, 'lo, there shall only be case or default labels
inside a switch statement'"
"a typedef name was a complete surprise to me at this point in your
program"
"'Volatile' and 'Register' are not miscible"
"You can't modify a constant, float upstream, win an argument with the
IRS, or satisfy this compiler"
"This struct already has a perfectly good definition"
"This union already has a perfectly good definition"
"type in (cast) must be scalar; ANSI 3.3.4; page 39, lines 10-11 (I know
you don't care, I'm just trying to annoy you)"
"Can't cast a void type to type void (because the ANSI spec. says so,
that's why)"
"Huh ?"
"can't go mucking with a 'void *'"
"we already did this function"
"This label is the target of a goto from outside of the block containing
this label AND this block has an automatic variable with an initializer
AND your window wasn't wide enough to read this whole error message"
"Call me paranoid but finding '/*' inside this comment makes me
suspicious"
"Too many errors on one line (make fewer)"
"Symbol table full - fatal heap error; please go buy a RAM upgrade from
your local Apple dealer"
:dennis
* KWQ/2 1.2a * Boy! This is fun, and inexpensive too!
---
* Origin: ■ QNet3ß ■ U'NI-net: Automation Resources, Troy, MI (2:359/202.1)
SEEN-BY: 3/0 38/0 108/0 108 359/11 202
Pozdrav,
brokerč38:101/101%setnet.oreska
jezici.21broker,
Evo jedne zanimljive price sa U'NI-net:
**********************************************************************
BBS: ORESKA Conference: U.Programmin Imported: 9/15/1993
To: ALL Num: 17132 Date: 9/02/1993
From: DENNIS QUINN Re: 0 Time: 8:01 pm
Subj: Real programmers - 1 Prvt: N Read: N
**********************************************************************
This has been around, but it is still one of my favorites.
Real Programmers write in C++.
Maybe they do now, in this decadent era of Lite beer, hand calculators
and graphical user interfaces, but back in the Good Old Days, when the
term "software" sounded funny and Real Computers were made out of drums
and vacuum tubes, Real Programmers wrote in machine code. Not C++. Not
C. Not, even, assembly language. Machine Code. Raw, unadorned, inscrut-
able hexadecimal numbers. Directly. Except they were octal then, not
hexadecimal.
Lest a whole new generation of programmers grow up in ignorance of this
glorious past, I feel duty-bound to describe, as best I can through the
generation gap, how a Real Programmer wrote code. I'll call him Mel,
because that was his name.
I first met Mel when I went to work for Royal McBee Computer Corp., a
now-defunct subsidiary of the typewriter company. The firm manufactured
the LGP-30, a small, cheap (by the standards of the day) drum-memory
computer, and had just started to manufacture the RPC-4000, a much-
improved, bigger, better, faster -- drum-memory computer. Cores cost too
much, and weren't here to stay, anyway. (That's why you haven't heard of
the company, or the computer.)
I had been hired to write a Fortran compiler for this new marvel and Mel
was my guide to its wonders. Mel didn't approve of compilers.
"If a program can't rewrite its own code," he asked, "what good is it?"
Mel had written, in octal, the most popular computer program the company
owned. It ran on the LGP-30 and played blackjack with potential custo-
mers at computer shows. Its effect was always dramatic. The LGP-30 booth
was packed at every show, and the IBM salesmen stood around talking to
each other. Whether or not this actually sold computers was a question
we never discussed.
Mel's job was to re-write the blackjack program for the RPC-4000. (Port?
What does that mean?) The new computer had a one-plus-one addressing
scheme, in which each machine instruction, in addition to the operation
code and the address of the needed operand, had a second address that
indicated where, on the revolving drum, the next instruction was
located. In modern parlance, every single instruction was followed by a
GO TO! Put *that* in Pascal's pipe and smoke it.
Mel loved the RPC-4000 because he could optimize his code: that is,
locate instructions on the drum so that just as one finished its job,
the next would be just arriving at the "read head" and available for
immediate execution. There was a program to do that job, an "optimizing
assembler", but Mel refused to use it.
"You never know where its going to put things", he explained, "so you'd
have to use separate constants".
It was a long time before I understood that remark. Since Mel knew the
numerical value of every operation code, and assigned his own drum ad-
dresses, every instruction he wrote could also be considered a numerical
constant. He could pick up an earlier "add" instruction, say, and multi-
ply by it, if it had the right numeric value. His code was not easy for
someone else to modify.
I compared Mel's hand-optimized programs with the same code massaged by
the optimizing assembler program, and Mel's always ran faster. That was
because the "top-down" method of program design hadn't been invented
yet, and Mel wouldn't have used it anyway. He wrote the innermost parts
of his program loops first, so they would get first choice of the opti-
mum address locations on the drum. The optimizing assembler wasn't smart
enough to do it that way.
Mel never wrote time-delay loops, either, even when the balky Friden
Flexowriter required a delay between output characters to work right. He
just located instructions on the drum so each successive one was just
*past* the read head when it was needed; the drum had to execute another
complete revolution to find the next instruction. He coined an unforget-
table term for this procedure. Although "optimum" is an absolute term,
like "unique", it became common verbal practice to make it relative:
"not quite optimum" or "less optimum" or "not very optimum". Mel called
the maximum time-delay locations the "most pessimum".
After he finished the blackjack program and got it to run, ("Even the
initializer is optimized", he said proudly) he got a Change Request from
the sales department. The program used an elegant (optimized) random
number generator to shuffle the "cards" and deal from the "deck", and
some of the salesmen felt it was too fair, since sometimes the customers
lost. They wanted Mel to modify the program so, at the setting of a
sense switch on the console, they could change the odds and let the
customer win.
(Continued next message)
:dennis
* KWQ/2 1.2a * Sometimes I really miss the old days.
---
* Origin: ■ QNet3ß ■ U'NI-net: Automation Resources, Troy, MI (2:359/202.1)
SEEN-BY: 3/0 38/0 108/0 108 359/11 202
**********************************************************************
BBS: ORESKA Conference: U.Programmin Imported: 9/15/1993
To: ALL Num: 17133 Date: 9/02/1993
From: DENNIS QUINN Re: 0 Time: 8:04 pm
Subj: Real programmers - 2 Prvt: N Read: N
**********************************************************************
Mel balked. He felt this was patently dishonest, which it was, and that
it impinged on his personal integrity as a programmer, which it did, so
he refused to do it. The Head Salesman talked to Mel, as did the Big
Boss and, at the boss's urging, a few Fellow Programmers. Mel finally
gave in and wrote the code, but he got the test backwards, and, when the
sense switch was turned on, the program would cheat, winning every time.
Mel was delighted with this, claiming his subconscious was uncontroll-
ably ethical, and adamantly refused to fix it.
After Mel had left the company for greener pa$ture$, the Big Boss asked
me to look at the code and see if I could find the test and reverse it.
Somewhat reluctantly, I agreed to look. Tracking Mel's code was a real
adventure.
I have often felt that programming is an art form, whose real value can
only be appreciated by another versed in the same arcane art; there are
lovely gems and brilliant coups hidden from human view and admiration,
sometimes forever, by the very nature of the process. You can learn a
lot about an individual just by reading through his code, even in octal.
Mel was, I think, an unsung genius.
Perhaps my greatest shock came when I found an innocent loop that had no
test in it. No test. *None*. Common sense said it had to be a closed
loop, where the program would circle, forever, endlessly. Program con-
trol passed right through it, however, and safely out the other side. It
took me two weeks to figure it out.
The RPC-4000 computer had a really modern facility called an index reg-
ister. It allowed the programmer to write a program loop that used an
indexed instruction inside; each time through, the number in the index
register was added to the address of that instruction, so it would refer
to the next datum in a series. He had only to increment the index regis-
ter each time through. Mel never used it.
Instead, he would pull the instruction into a machine register, add one
to its address, and store it back. He would then execute the modified
instruction right from the register. The loop was written so this addi-
tional execution time was taken into account -- just as this instruction
finished, the next one was right under the drum's read head, ready to
go. But the loop had no test in it.
The vital clue came when I noticed the index register bit, the bit that
lay between the address and the operation code in the instruction word,
was turned on-- yet Mel never used the index register, leaving it zero
all the time. When the light went on it nearly blinded me.
He had located the data he was working on near the top of memory -- the
largest locations the instructions could address -- so, after the last
datum was handled, incrementing the instruction address would make it
overflow. The carry would add one to the operation code, changing it to
the next one in the instruction set: a jump instruction. Sure enough,
the next program instruction was in address location zero, and the pro-
gram went happily on its way.
I haven't kept in touch with Mel, so I don't know if he ever gave in to
the flood of change that has washed over programming techniques since
those long-gone days. I like to think he didn't. In any event, I was
impressed enough that I quit looking for the offending test, telling the
Big Boss I couldn't find it. He didn't seem surprised.
When I left the company, the blackjack program would still cheat if you
turned on the right sense switch, and I think that's how it should be. I
didn't feel comfortable hacking up the code of a Real Programmer."
:dennis
* KWQ/2 1.2a * Substantial penalty for early withdrawal.
---
* Origin: ■ QNet3ß ■ U'NI-net: Automation Resources, Troy, MI (2:359/202.1)
SEEN-BY: 3/0 38/0 108/0 108 359/11 202
Pozdrav,
brokerč38:101/101%setnet.oreska
P.S. Za one koji nisu upuceni: U'NI-net mozete pratiti na Oreska BBS-u.
Pristup besplatan.
jezici.22zokalezic,
Treba da prebacim neke programe u fortranu sa VAX-a na PC. Postoje
listinzi tih programa pa me interesuje da li postoje neke
nekompatibilnosti između MS Fortrana i VAX Fortrana ?
jezici.23asterix,
> Treba da prebacim neke programe u fortranu sa VAX-a na PC. Postoje
> listinzi tih programa pa me interesuje da li postoje neke
> nekompatibilnosti između MS Fortrana i VAX Fortrana ?
Ako imaš MS FORTRAN 5.1, onda mislim da ti nekompatibilnosti (a ima
ih :) neće praviti problem. Ukoliko koristiš i MS Programer's WorkBench
koji se dobija uz taj paket, onda sve što treba je da u FORTRAN Compiler
Options promeniš opciju kompajlera na VAX/VMS. Postoje još i F77, MSFORTRAN
i IBM ... To bio trebalo da omogućuje kompilaciju po VAX-ovom standardu.
A to bi bilo lakše nego da preradjuješ ceo source ? Trebalo bi i da može
da se to podesi u komandnoj liniji, ako ne koristiš MS PWB, ali to već
ne znam :)
Pozdrav Nenad :)
jezici.24bojt,
>> Treba da prebacim neke programe u fortranu sa VAX-a na PC.
>> Postoje listinzi tih programa pa me interesuje da li postoje
>> neke nekompatibilnosti između MS Fortrana i VAX Fortrana ?
Ako se radi o MS Fortranu 5.0 ili 5.1, uglavnom bi sve trebalo da
prodje bez većih intervencija (treba prepraviti eventalne pozive
za datum i vreme), pod uslovom da programi ne traže više od 640K
memorije (ustvari 640K minus kod programa). Obavezno kompajlirati
sa opcijama -AH (huge) i -Gs, jer to eliminiše barijeru od 64K.
Ako je ceo source u jednom fajlu, može da se desi da prijavljuje
type & lenght mismatch error (što se redovno dešava kada se niz
jednog tipa u nekoj rutini prihvata kao niz drugačijeg tipa), ali
se na to ne treba obazirati pošto te "greške" nisu fatalne i,
zapravo, nemaju nikakvog efekta. Ako baš smeta onda treba ceo
source "razbiti" tako da svaki unit bude jedan fajl, pa ih
povezati pri linkovanju. Pri linkovanju korisiti opciju /E kako ne
bi u EXE trpao nizove.
Ukoliko programi traže više od 640K, treba uzeti neki od 386
Fortrana.
jezici.25niklaus,
Zaboga, ja kao da nisam video ovu temu.
Idealna je za sledeće pitanje:
"Na Hobitton-u je bila (valjda će i ostati, prelaskom u Bgd)
arhiva (zapravo dve) SYSTEM.ARJ & A01, u OBERON direktorijumu.
Ovaj paker ne sadrži samo najnoviji OBERON kompajler već i pro-
prratne bibliotečice (za grafiku, float-math i sl.).
Meni nedostaje prvi deo (SYSTEM.ARJ), a i inače je za njen
prenos potrebno više vremena nego što je dozvoljeno iz jednog poziva.
Ovaj paket u prirodi deluje jako efektno, a s obzirom da je jezik
prilična novotarija - to je dobar znak.
Ako neko ima dotičnu arhivu (ili ceo paket (: ) neka me mejlne...
Unapred zahvaljujem (:niklaus:)
Legenda: "u prirodi" - u časopisu (PC World, čini mi se).
jezici.26spantic,
> Ako neko ima dotičnu arhivu (ili ceo paket (: ) neka me mejlne...
Imam ja ceo paket, s tim da ja u praksi sa tom Wirtovom
izmišljotinom nisam nimalo bio zadovoljan. To je OBERON 2.
jezici.27nbatocanin,
> Treba da prebacim neke programe u fortranu sa VAX-a na PC.
> Postoje listinzi tih programa pa me interesuje da li
> postoje neke nekompatibilnosti između MS Fortrana i VAX
> Fortrana ?
Postoje. Svojevremeno sam pravio konvertor koji je deo posla
automatski obavljao. Mislim da su novije verzije MS-FORTRAN-a
"kompatibilnije" sa VAX-om. Što se tiče spiska nekompatibilnosti,
evo nekih:
- Ranije verzije MSF-a ne poznaju naredbe poput WHILE.
- Microsoft FORTRAN pri nastavljanju linije u sledeći red uzima prvu
liniju do 72-ge kolone. Tako će program:
character*10 ch
ch = 'abcdef
#ghijklmn'
print *, ch
ispisati "ABCDEF GHIJKLMN". VAX uzima liniju do <CR>.
- U MSF dužina imena je ograničena na 6 simbola osim ako se ne zada
metakomanda "$ notruncate".
- U MSF Ne postoje funkcije %VAL i %LOC. Ekvivalentna funkcija za
%LOC je LOCFAR. Funkcija %VAL može se simulirati pomoću kopiranja niza
bajtova sledećim C programom (Microsoft C):
void fortran move (to, from, n)
char **to;
char **from;
int *n;
{
int i;
for (i=0; i<*n; i++)
*(*to+i)=*(*from+i);
return;
}
Ovaj program treba iz FORTRAN-a pozivati naredbom:
CALL move (locfar(prom1), locfar(prom2), n)
- Prenošenje promenljivih tipa CHARACTER*n u potprograme nije uvek
sigurno. Tako, sledeći program radi dobro na MSF:
program p
character*10 tekst
integer n
tekst='abcd'
n=ifu()
call pp (tekst(1:n))
end
Ali, ako se poziv promeni u : CALL PP (tekst (1 : IFU ())),
biće uzeta pogrešna dužina (IFU je funkcija).
- direktive imaju različit format:
include 'ime_datoteke' ; vax/vms
$ include: 'ime_datoteke' ; MS DOS
- DATA naredba mora biti iz svih deklaracija, a ispred svih naredbi.
- Ako je program nešto komplikovaniji, može se desiti da prevodilac
izda grešku:
(nnn) : fatal error F1001: Internal Compiler Error
(compiler file '@(#)ctypes.c:1.89', line 1601)
Contact Microsoft Technical Support
Moguće otklanjanje greške je jedino pojednostavljenjem programa:
redukovanjem konkatenacija i slično.
- Kod prevodjenja slede}e funkcije:
CHARACTER*3 FUNCTION str(num)
INTEGER*2 num
WRITE (str,'(I3)') num
RETURN
END
prevodilac javlja grešku da nije postavljena izlazna vrednost iz
funkcije.
A ovamo me pitaju zašto nemam poverenja u Microsoft ;)
jezici.28bojt,
>> Mislim da su novije verzije MS-FORTRAN-a "kompatibilnije" sa
>> VAX-om.
Ne samo to. Ranije verzije MS Fortrana (do verzije 5.0) su bile
apsolutni trash, maltene potpuno neupotrebljive. Ja sam, iz tog
razloga, do pojave MSF50 koristio RM i Lahey Fortran. Lahey F77L je
bio prava munja pri kompajliranju i uz to veoma robustan (čitaj:
programi sa VAX-a su na njemu prilično lako mogli da prorade, za
razliku od MS Fortrana 3.xx i 4.xx), ali mu je mana bila što je
dobijeni kod bio znatno sporiji od koda dobijenog RMF-om ili,
naročito, MSF-om (preko 50%), pošto su ovi (opet naročito MSF),
imali znatno bolje optimizacije (mada, ruku na srce, obično
nepouzdane ;) ). Medjutim, verzija 5.00 MS Fortrana je, po meni, za
3 dužine pretekla konkurenciju. Maltene sve što do tada nije htelo
da radi, "odjednom" je proradilo ;), tako da
>> Što se tiče spiska nekompatibilnosti, evo nekih:
- Ranije verzije MSF-a ne poznaju naredbe poput WHILE.
Verzije 5.x ih poznaju.
>> - Microsoft FORTRAN pri nastavljanju linije u sledeći red
>> uzima prvu liniju do 72-ge kolone. Tako će program:
>> character*10 ch
>> ch = 'abcdef
>> #ghijklmn'
>> print *, ch
>> ispisati "ABCDEF GHIJKLMN". VAX uzima liniju do <CR>.
Ne sećam se kako je ovo na VAX-u (nemam ga pri ruci ;) ), ali
pretpostavljam da je tako, stim da nisam najsigurniji šta je
po ANSI-ju a šta ne, mada je u svakom slučaju ono na VAX-u bolje.
(BTW, gornji program bi ispisao samo abcdef, ukoliko se ne stavi
veći character*n)
>> - U MSF dužina imena je ograničena na 6 simbola osim ako se
>> ne zada metakomanda "$ notruncate".
Kod 5.x 32 (mislim) po defaultu.
>> - Prenošenje promenljivih tipa CHARACTER*n u potprograme nije
>> uvek sigurno. Tako, sledeći program radi dobro na MSF:
>> program p
>> character*10 tekst
>> integer n
>> tekst='abcd'
>> n=ifu()
>> call pp (tekst(1:n))
>> end
>> Ali, ako se poziv promeni u : CALL PP (tekst (1 : IFU ())),
>> biće uzeta pogrešna dužina (IFU je funkcija).
Ovog problema takodje nema u verziji 5.x. Medjutim ono što ovde može
da bude problem je što se u potprogram prebacuje string promeljive
dužine. Njegova stvarna dužina može da se u pronadje ako se u
potprogramu "protrči" kroz string sve dok se ne nadje char(0).
>> - direktive imaju različit format:
>> include 'ime_datoteke' ; vax/vms
>> $ include: 'ime_datoteke' ; MS DOS
U verzijama 5.x je isto.
>> - Kod prevodjenja slede}e funkcije:
>> CHARACTER*3 FUNCTION str(num)
>> INTEGER*2 num
>> WRITE (str,'(I3)') num
>> RETURN
>> END
>> prevodilac javlja grešku da nije postavljena izlazna vrednost
>> iz funkcije.
Ovog problema takodje nema kod 5.x.
Ono što može da stvori probleme je što kod MSF 5.x nema jedne
lepe stvari (koja je postoji na VAX-u), a to je list-directed
read iz stringova. Na primer, ne može
read(unit=str,fmt='(*)') i,b,c
što je katastrofa jer mora da se zna format u kojem su brojevi upisani
u string (npr ako je str=' 1 3.23 2.2' onda fmt='(i3,f7.2,f4.1)' ).
Ovo doduše može da se reši tako što se (po mogućstvu na ram disku) otvori
tmp fajl pa onda, npr
rewind(22)
write(22,'(a)') str
rewind(22)
read(22,*) i,b,c
što je bez veze. Problem može da se reši i bez potezanja fajlova
ali zahteva dosta koda. U svakom slučaju, to je *jedini*
nedostatak koji sam ja za ovih nekoliko godina uspeo da
pronadjem kod MSF 5.x (ne računajući to što radi pod DOS-om u
realnom modu ;) i što me je zz jednom odrao na testu "ko će pre
da izvrši search/replace u fajlu" ;))) ), a koji ne može lako da
se prevazidje.
>> A ovamo me pitaju zašto nemam poverenja u Microsoft ;)
Kao što napomenuh, ni ja nisam imao poverenja, ali verzije 5.x
ih svakako zaslužuju. Kompatibilnost sa VAX-om im je bila veća nego
što sam ja uopšte očekivao (u medjuvremenu sam morao odavno sebe
da nateram da što manje koristim VAX-ove lepe ekstenzije, pa je
iznenadjenje time valjda bilo još veće). Ono što je posebno bitno
je to što MSF 5.x, napokon bez nepremostivih problema, može da se
linkuje sa MSC-om.
jezici.29zokalezic,
> Ako se radi o MS Fortranu 5.0 ili 5.1, uglavnom bi sve trebalo da
> prodje bez većih intervencija (treba prepraviti eventalne pozive
> za datum i vreme), pod uslovom da programi ne traže više od 640K
> memorije (ustvari 640K minus kod programa). Obavezno kompajlirati
Hvala svima na korisnim informacijama, bacam se u potragu za
MS Fortranom 5.1 da previše ne bi kopao po sorsu. Pošto ne znam
da li programima treba više od 640K za rad, koji 386 Fortran
predlažete za slučaj potrebe ?
jezici.30bojt,
>> Pošto ne znam da li programima treba više od 640K za rad, koji
>> 386 Fortran predlažete za slučaj potrebe ?
Toplo preporučujem Microway NDP Fortran 386 (ili 486) v4.xx. Ima,
manje više, sve ekstenzije kao i MSF 5.x, a i dosta toga pride
(%VAL itd). Ono što je posebno interesantno je mogućnost da se
direktno pozivaju C funkcije, od kojih su podržane skoro sve
run-time funkcije MSC-a.
jezici.31jtitov,
Da li je vredno truda nabavljati Visual Basic 3.0+manual+nekih 10 disketa?
:)
jezici.33milos,
ISPLATI SE I TO DEBELO!!! Do sada sam pljuvao VB (a bilo je i razloga) dok me
je verzija 3.0 oborila sa nogu... Uzimaj, ako imaš love tj. disketa i papira
jezici.35dr.grba,
>> Da li je vredno truda nabavljati Visual Basic 3.0+manual+nekih 10
>> disketa?
Ja bih voleo da imam ovo.
jezici.36oldtimer,
> Ja bih voleo da imam ovo.
Nisi jedini :)
B)Miša
jezici.37goranr,
Da li neko zna za C kompajler koji proizvodi Z80 kod?
ÔOPAH
jezici.38v.nesic,
> Da li neko zna za C kompajler koji proizvodi Z80 kod?
Imam ja na nekoj kaseti Hisoft C kompajler za Spektruma, ako je to
ono što treba javi se na mail.
jezici.39mdave,
Pozivam sve one kojim su zainteresovani za caskanje o moduli-2
da mi se jave na mail.
PS. Pozivam i one koji nisu zainteresovani, ali hoce da caskaju o M2.
jezici.40bulaja,
[Reply to PC.PROG.3:clipper.924 (dragisha)]
Note: It seems da je ovo better place za premeštanje ove putujuće
diskusije :). A možda na kraju sve ovo završi u PC.PROG:dizajn :).
││da su neke stvari zaista originalne: pretprocesor, koncepcija core
││jezika kome pretprocesor daje finalni izgled;
│└───
│ C.
└───
C preptrocesor je obična igračka prema onome što može Clipper-ov.
U Clipper-u je zaista pola jezika (sve komande) definisano preko
pretprocesorskih direktiva (ko ima Clipper nek pogleda std.ch
datoteku) - što zbog sintaksne kompatibilnosti sa starijim verzijama,
što zbog lakšeg rada. Da sad ne bih crtao i objašnjavao šta sve može
Clipper pretprocesor, uz poruku je okačen opis (iz NG-a) najmoćnije
#command/#translate direktive.
││kod blokovi - jedna zaista odlična ideja - *akcije* koje se tretiraju
││kao podaci
│└───
│ GNU C++, dorađena jedna od ekstenzija.
└───
Ne znam šta to ima GNU C++, ne bi bilo loše da objasniš (i'm just
curious:). Inače kodni blokovi su zaista sjajna stvar u Clipper-u,
a pošto se i ndragan nešto interesuje o njima, potrudiću se da ovih
dana najdem vremena da malo razjasnim ceo princip u pc.prog:clipper
sem ako me neko ne preduhitri, što bi mi uštedelo vreme :).
translat.zipjezici.41dragisha,
[Reply to PC.PROG.3/razno:419 (nbatocanin)]
-> > [Reply to PC.PROG.3/clipper:924 (nbatocanin)]
->
-> Selimo raspravu na drugi teren ;)
Ma to ja reklamiram THor mogućnosti:)). A usput se sklanjam da me ne
psuju kliperaši da sabotiram rad:)). Sad ću ovo u jezici da centralizujemo
priču:).
-> Iz ovoga jedino mogu da zaključim da nisi upoznat sa mogućnostima
-> pretprocesora ugrađenom u Clipper-u ili ja još nisam video pravi C
-> pretprocesor ;)
Moja poruka se odnosila na ORIGINALNOST, ne sumnjam da je to urađeno
mnogo bolje u nečemu što je obrada mehanizma starog 20+ godina (starijeg od
mene, ku'š dalje?:)
-> Pa, u suštini se radi o pokazivačima na funkcije, a to ima i C.
-> Međutim, radi se o sintaksi pri korišćenja. Nisam radio sa GNU C++,
-> objasni o čemu se radi?
Vidim da to nije to, ali pošto ima interesa evo izvadak iz GPP doc-a.
[DJGPP:docs\extend.doc]
...
A compound statement enclosed in parentheses may appear as an expression
in GNU C. This allows you to use loops, switches, and local variables
within an expression.
Recall that a compound statement is a sequence of statements surrounded
by braces; in this construct, parentheses go around the braces. For
example:
@example
(@{ int y = foo (); int z;
if (y > 0) z = y;
else z = - y;
z; @})
@end example
...
[]
E sad, vidio sam ono što je napisao dvesic (slava mu i hvala:) i mogu
reći da se, ako je to sve, oduševljavate oko koncepta koji se samo
sintaksno razlikuje od nečega što su razni (Niklaus & co:) implementirali
još 1983. Zar vi do sada niste mogli da šaljete funkcije/procedure kao
argumente??? Pa je to shvaćeno kao revolucija!?:))
BTW, programski jezici (a Clipper pretenduje da se zove tako) imaju
drugačije razvojne puteve. Da su C++ pravili kao što prave kliper on bi se
danas zvao C 13.4, samo zato da korisnici ne pomisle da je to nešto novo,
što zahtijeva učenje i slično. Već im napakuju novu stvar, makroima omoguće
da ko neće to i ne vidi i onda to prodaju kao isti jezik. To je programski
jezik u otprilike istoj mjeri kao što je to recimo Excel, IMHO:).
Sve je ovo moje mišljenje, i razlog navođenja istog nije želja za
prepucavanjem. So, mimo mene flameri, please:)
--
[The road to success is always under construction]
jezici.42dragisha,
[Reply to PC.PROG.3/clipper:947 (dvesic)]
-> Kodni blok je i tip podatka i inline funkcija. Tacnije kodni
-> blok je iskompajlirani deo koda na koji se moze referisati.
Precijenio sam Clipper..:)
To je proceduralni tip i koncept je veooooma star. Sve to može više
jezika, POTPUNO jednako funkcionalno, samo što nema "revolucionarnu"
sintaksu već se koristi uobičajena sintaksa uz uvođenje "tipa podataka" i
pozivanja procedura kroz iste. Nemaju Eval, već siroti programeri moraju da
kucaju *samo* ime varijable.:)
Sort modul sa ovim fazonom sam napravio prije 4 godine:))). Indeksirane
datoteke prije 3.5, "Browse" kakav spominješ prije 3. Mnogo sam pametan??
Nije da nisam:), ali nije to u pitanju.... Ovo je sve starrrrrrrrroooooo i
ništa tu nema ni revolucionarno ni originalno.
Evo ispod malo Modula-2 sintakse po subjectu, a znam da to može C
(K&R!!), C++, Turbo Pascal... Treba li još?:) Ako nekoga zanima, daću i par
trikova.:)
TYPE
ToStr = PROCEDURE (VAR ARRAY OF CHAR, ADDRESS, CARDINAL);
PROCEDURE A(VAR a: ARRAY OF CHAR; adr: ADDRESS; i: CARDINAL);
...
PROCEDURE B(VAR a: ARRAY OF CHAR; adr: ADDRESS; i: CARDINAL);
...
PROCEDURE Radi(job: ToStr);
...
VAR
a: ToStr;
BEGIN
a:=A;
Radi(A); Radi(a); Radi(B);
END
--
[The hills were worn down by eroticism]
jezici.43dragisha,
[Reply to PC.PROG.3/clipper:949 (ficus)]
-> Sto se tipova podataka tice ajd reci koj tip ti konkretno fali
-> sto se struktura tice nizovi su istovremeno i strukture
-> p.s. sto se unija tice probaj:
-> local a:="aaaaa" //a je string
-> ? a
-> a:=1 //a je numeric
-> ? a
-> a:=ctod("01.01.93")//a je datum
-> ? a
c. Nije *to* unija. To je samo još jedna od mana klipera:)
Unija je ovo
VAR
t: RECORD
CASE :BOOLEAN OF
| TRUE:
ch: CHAR;
| FALSE:
s: SHORTCARD;
END;
END;
BEGIN
t.ch:='A';
TermIO.PrintF('ORD(#c)=#SC', t.ch, t.s);
END
--
[Testing One... Fiftythree... fortytwo...]
jezici.44nbatocanin,
> Moja poruka se odnosila na ORIGINALNOST, ne sumnjam da je
> to urađeno mnogo bolje u nečemu što je obrada mehanizma
> starog 20+ godina (starijeg od mene, ku'š dalje?:)
Kao što sigurno znaš *pretprocesor* je izraz ranga izraza
*prevodilac*, pa je malo glupo sve ih izjednačavati. Clipper
pretprocesor je kilometrima daleko od C pretprocesora i radi se o
*koncepcijskim* razlikama. Ako gledaš spisak direktiva, zaista nećeš
naći veliku razliku: svega direktiva #command. E, ali ta jedna je velika
razlika, jer omogućuje definisanje novih naredbi. Pri tom dozvoljava
da novodefinisana naredba ima opcione argumente, podržava ponavljanje
argumenata, preslikavanje ulaznih u izlazne, itd. U suštini, skoro
sve naredbe su i definisane preko ove direktive. Evo kako se definiše
standardna naredba REPLACE:
#command REPLACE [ <f1> WITH <x1> [, <fn> WITH <xn>] ] ;
[FOR <for>] ;
[WHILE <while>] ;
[NEXT <next>] ;
[RECORD <rec>] ;
[<rest:REST>] ;
[ALL] ;
;
=> DBEval( ;
{|| _FIELD-><f1> := <x1> [, _FIELD-><fn> := <xn>]}, ;
<{for}>, <{while}>, <next>, <rec>, <.rest.> ;
)
Kao što vidiš, koristi se direktiva #command i kodni blok. E, za mene
je ovo novo i originalno, jer nigde nisam video dodavanje novih
naredbi u jezik na ovako jednostavan i efikasan način. A ti ajde
navedi jezik u kome možeš ovako elegantno definisati relativno
komplikovanu naredbu REPLACE ;) Znači, da prepoznaje sve ovo:
REPLACE p WITH 12 ALL
REPLACE p1 WITH 1, p2 WITH 2, p3 WITH 3
REPLACE p WITH 2 REST FOR x > 0
> E sad, vidio sam ono što je napisao dvesic (slava mu i
> hvala:) i mogu reći da se, ako je to sve, oduševljavate
> oko koncepta koji se samo sintaksno razlikuje od nečega
> što su razni (Niklaus & co:) implementirali još 1983. Zar
> vi do sada niste mogli da šaljete funkcije/procedure kao
> argumente??? Pa je to shvaćeno kao revolucija!?:))
Samo _sintaksno_ razlikuje? Pa, onda skoro da ne postoji razlika ni
između BASIC-a i FORTRAN-a, a kamoli između ALGOL-a i Pascal-a ;)
Naravno da je bilo moguće slati funkcije kao argumente (preko
makroa). Moglo je čak i više u odnosu na C: mogao se slati i izraz
koji se računa tek unutar funkcije, ali to nije to.
> To je programski jezik u otprilike istoj mjeri kao što je to recimo
> Excel, IMHO:).
To je samo tvoje (netačno) mišljenje. Programski jezik je skup
sintaksnih i semantičkih pravila koja zadovoljavaju određene uslove i
po tome su i makro jezici (Lotus, ...) programski jezici. Naravno, niko
ne očekuje da se Clipper uči u školama pored C-a ili Pascala kao
standardni programski jezik, ali mu to ne oduzima pravo da ima
originalna rešenja ;)
> Sve je ovo moje mišljenje, i razlog navođenja istog nije želja za
> prepucavanjem. So, mimo mene flameri, please:)
Pa što si onda uopšte ovo pisao ;)
jezici.45nbatocanin,
> To je proceduralni tip i koncept je veooooma star. Sve to
> može više jezika, POTPUNO jednako funkcionalno, samo što
> nema "revolucionarnu" sintaksu već se koristi uobičajena
> sintaksa uz uvođenje "tipa podataka" i pozivanja procedura
> kroz iste. Nemaju Eval, već siroti programeri moraju da
> kucaju *samo* ime varijable.:)
Da li ti vidiš razliku između ova dva primera:
1. Sort (a, tako i tako)
2. Sort (a, kao što piše u ...)
E, ako ne vidiš, onda nema smisla da dalje diskutujemo ;)
Evo za primer: pokušaj da što elegantnije u kom hoćeš jeziku definišeš
tabelarni prikaz: pretpostavi da imaš (kakvu hoćeš) proceduru za sam
pregled, štos je u zadavanju argumenata. Evo kako to ide u Clipper-u:
TB := TBrowseNew(0,0,24,79)
TB:addColumn(TBColumnNew("KOLONA 1", {|| X + 1 }))
TB:addColumn(TBColumnNew("KOLONA 2", {|| Y + 2 }))
TB:addColumn(TBColumnNew("KOLONA 3", {|| X + Y + 3 }))
Prikaz (TB)
jezici.46dragisha,
-> Kao što sigurno znaš *pretprocesor* je izraz ranga izraza
-> *prevodilac*, pa je malo glupo sve ih izjednačavati. Clipper
Koncept pretprocesoranja je nešto što može da se izdvoji iz te gungule. U
jednoj ranijoj diskusiji (C vs M2) sam rekao da je vrlo zanimljiva
činjenica da je taj koncept star više od 20 godina (tj njegova šira
upotreba) a ostali PL dizajneri nikako da se opasulje i da ga počnu
koristiti ne bi li sebi obezbijedili bar malo od tog kolača savršenstva
(al' ga sročih:)).
Zaključak se nameće sam, postoje i normalniji načini da se neke stvari
urade, bez da se oslabljuju kontrole. Osim toga, i pretprocesora ima
raznih, neki se ne zadovoljavaju samo prostim transformacijama koda kao Cov
i Clipperov.
-> Kao što vidiš, koristi se direktiva #command i kodni blok. E, za mene
-> je ovo novo i originalno, jer nigde nisam video dodavanje novih
-> naredbi u jezik na ovako jednostavan i efikasan način. A ti ajde
Ok, ovo jeste originalno. Samo, čemu to služi? Meni izgleda kao biser
ideja nekog programera koji je to napravio da bi pokazao šta zna i
može:))).
-> makroa). Moglo je čak i više u odnosu na C: mogao se slati i izraz
-> koji se računa tek unutar funkcije, ali to nije to.
Nego šta je to? Razlika između kod blokova i proceduralnog tipa je u tome
da kod prvog tijelo procedure pišeš umjesto imena procedure. Komplikuje
kompajler a funkcionalno je isto, osim što je code block noname procedura
pa dupliraš kod kad ti opet zatreba.
-> navedi jezik u kome možeš ovako elegantno definisati relativno
-> komplikovanu naredbu REPLACE ;) Znači, da prepoznaje sve ovo:
Zašto da definišem naredbu? Taj posao ću uraditi u petlji sa filterom u
jeziku koji ima N puta manje naredbi od klipera, čija sintaksa stane na A4
format. I povrh svega, brže.
-> > To je programski jezik u otprilike istoj mjeri kao što je to recimo
-> > Excel, IMHO:).
->
-> To je samo tvoje (netačno) mišljenje. Programski jezik je skup
-> sintaksnih i semantičkih pravila koja zadovoljavaju određene uslove i
-> po tome su i makro jezici (Lotus, ...) programski jezici. Naravno, niko
Izgleda da je ipak tačno. Clipper je kao i Excel i Lotus i ... makro
jezik, znači programski jezik u istoj mjeri kao i oni, što ne znači da nije
programski jezik već znači da ne može da se poredi sa mainstream jezicima
koji ne nastaju dodavanjem programerskih bisera već kao rezultat ozbiljnog
dizajnerskog rada, gdje se pazi da stvari imaju glavu i rep.
-> > Sve je ovo moje mišljenje, i razlog navođenja istog nije želja za
-> > prepucavanjem. So, mimo mene flameri, please:)
->
-> Pa što si onda uopšte ovo pisao ;)
Ti si flamer? Meni ne izgleda tako.
--
[Has anyone found my marbles?]
jezici.47dragisha,
-> 1. Sort (a, tako i tako)
-> 2. Sort (a, kao što piše u ...)
->
-> E, ako ne vidiš, onda nema smisla da dalje diskutujemo ;)
Vidim, ali ne vidim revoluciju već kuriozitet bez upotrebne vrijednosti,
koji usložnjava sintaksu, kompajler, uvećava broj mjesta gdje može da se
ugnijezdi bag (što isti u Clipper implementacijama (mislim na kompajler)
intenzivno i koriste).
Osim toga, kriteriji za sortiranje su često duži od par linija, a ja baš
takve argumente ne preferiram iako radim na 132 kolone. Zamisli sortiranje
po ćirilici u kod bloku:)).
-> TB := TBrowseNew(0,0,24,79)
-> TB:addColumn(TBColumnNew("KOLONA 1", {|| X + 1 }))
-> TB:addColumn(TBColumnNew("KOLONA 2", {|| Y + 2 }))
-> TB:addColumn(TBColumnNew("KOLONA 3", {|| X + Y + 3 }))
-> Prikaz (TB)
Ok, ide kod i to u jeziku koji nije pravljen zbog tabela.
PROCEDURE ToStr(VAR res: ARRAY OF CHAR; adr: ADDRESS);
TYPE
pp = POINTER TO MyRec;
BEGIN
WITH pp(adr)^ DO
StrIO.PrintF(res, ' #8C #8C #8C ', X+1, Y+2, X+Y+3);
END;
END ToStr;
Codes.Open(c, 0, 0, 30, 25, 0, kljuc, ToStr);
Codes.Title(c, ' KOLONA 1 KOLONA 2 KOLONA 3 ');
Prikaz(c);
--
[Now, THIS is a tagline]
jezici.48nbatocanin,
> Ok, ovo jeste originalno. Samo, čemu to služi? Meni
> izgleda kao biser ideja nekog programera koji je to
> napravio da bi pokazao šta zna i može:))).
Služi mnogo čemu: to čini samu osnovu Clipper-a. Naime, Clipper
_uopšte_ nema naredbe: ima svega par deklaracija i osnovnih
konstrukcija za kontrolu toka, a sve naredbe se realizuju pomoću
direktive #command koja naredbe procesira u pozive odgovarajućih
funkcija. E, šta se sad dobija time: velika fleksibilnost jezika:
mogu se dodavati nove naredbe *potpuno* ravnopravno sa osnovnim, bez
problema se mogu izmeniti i već ugrađene naredbe. Ovako nešto ne bi
imalo naročitu primenu u standardnim jezicima, ali u specijalizovanim
jezicima sa velikim brojem naredbi ovo je strašna stvar. Ovo je i u
skladu sa Clipper-ovom koncepcijom "otvorene arhitekture". Dodatni
proizvodi za Clipper su najbolje pokazali prednost ove koncepcije:
sada se skoro svaka biblioteka isporučuje sa hederom koji osnovni
jezik Clipper-a proširuje novim naredbama koje se prevode u pozive
odgovarajućih funkcija iz biblioteke. Tako se umesto pamćenja
redosleda i značenja argumenata pojedinih funkcija koriste daleko
preglednije naredbe.
> -> makroa). Moglo je čak i više u odnosu na C: mogao se
> slati i izraz -> koji se računa tek unutar funkcije, ali
> to nije to.
>
> Nego šta je to? Razlika između kod blokova i proceduralnog
> tipa je u tome da kod prvog tijelo procedure pišeš umjesto
> imena procedure. Komplikuje kompajler a funkcionalno je
> isto, osim što je code block noname procedura pa dupliraš
> kod kad ti opet zatreba.
E, sad. Zamisli da imaš IF naredbu koja kao uslov i grane prihvata
isključivo funkcije. Jeste, ekvivalentno je da li će biti:
if (uslov(x,y))
ili
if (x > y)
ali ćeš se svakako složiti da je ovo dole preglednije. I ne mislim da
bi iskomplikovalo kompajler. A što se tiče dupliranja, nema ga:
zaboravljaš da se cb može koristiti i kao podatak:
b := {|| ... }
pa onda koristiš b gde ti treba.
> -> navedi jezik u kome možeš ovako elegantno definisati
> relativno -> komplikovanu naredbu REPLACE ;) Znači, da
> prepoznaje sve ovo:
>
> Zašto da definišem naredbu? Taj posao ću uraditi u petlji
> sa filterom u jeziku koji ima N puta manje naredbi od
> klipera, čija sintaksa stane na A4 format. I povrh svega,
> brže.
Problem ove rasprave je što nismo na istoj talasnoj dužini: ti
porediš jedan specijalizovani jezik sa jezicima opšte namene, sa
ciljem da dokažeš da jezici opšte namene mogu uspešno da zamene (i
više od toga) specijalizovane jezike. Naravno, to je totalno pogrešno,
al' nema veze ;) Zato, shvati da specijalni jezici za razliku od
opštih *moraju* imati specijalne naredbe. Možemo diskutovati o
zajedničkim koncepcijama, a pitanja poput "šta će mi naredbe"
jednostavno nemaju smisla.
> Izgleda da je ipak tačno. Clipper je kao i Excel i Lotus i
> ... makro jezik, znači programski jezik u istoj mjeri kao
> i oni, što ne znači da nije programski jezik već znači da
> ne može da se poredi sa mainstream jezicima koji ne
> nastaju dodavanjem programerskih bisera već kao rezultat
> ozbiljnog dizajnerskog rada, gdje se pazi da stvari imaju
> glavu i rep.
Neće biti. I to će ti potvrditi svaka normalna knjiga koja se bavi
programskim jezicima. Programski jezici su notacija za zapisivanje
algoritama i dele se na dosta vrsta: ono što ti zoveš "programski
jezik" su višenamenski programski jezici. Kako bi onda nazvao jezike
za projektovanje hardvera, obradu stringova, itd? Što se tiče
implementacije, nisam baš siguran da su standardni jezici nastali
tako kao što ti kažeš: koliko je meni poznato, sve vredne stvari su
nastale van komiteta zaslugom ideja pojedinaca i itekako su nastajali
"dodavanjem programerskih bisera".
> Ti si flamer? Meni ne izgleda tako.
Ne, naravno. Ali, malo je bezveze da se upuštaš u raspravu u kojoj ne
želiš da ti niko protivreči ;)
jezici.49nbatocanin,
> Vidim, ali ne vidim revoluciju već kuriozitet bez
> upotrebne vrijednosti, koji usložnjava sintaksu,
> kompajler, uvećava broj mjesta gdje može da se ugnijezdi
> bag (što isti u Clipper implementacijama (mislim na
> kompajler) intenzivno i koriste).
Niko nije ni upotrebio reč "revolucija", koliko je meni poznato (osim
tebe). A što se tiče upotrebne vrednosti, već sam odgovorio.
> -> TB := TBrowseNew(0,0,24,79)
> -> TB:addColumn(TBColumnNew("KOLONA 1", {|| X + 1 }))
> -> TB:addColumn(TBColumnNew("KOLONA 2", {|| Y + 2 }))
> -> TB:addColumn(TBColumnNew("KOLONA 3", {|| X + Y + 3 }))
> -> Prikaz (TB)
>
> Ok, ide kod i to u jeziku koji nije pravljen zbog tabela.
>
> PROCEDURE ToStr(VAR res: ARRAY OF CHAR; adr: ADDRESS);
> TYPE
> pp = POINTER TO MyRec;
> BEGIN
> WITH pp(adr)^ DO
> StrIO.PrintF(res, ' #8C #8C #8C ', X+1, Y+2, X+Y+3);
> END;
> END ToStr;
>
> Codes.Open(c, 0, 0, 30, 25, 0, kljuc, ToStr);
> Codes.Title(c, ' KOLONA 1 KOLONA 2 KOLONA 3 ');
> Prikaz(c);
:))) Pa zar ti je ovo drugo elegantnije i preglednije ?? Radi se samo
o tome da treba specificirati AKCIJU a ne PODATAK i ja znam da je to
moguće počev od ASM-a pa nadalje, samo hoću da kažem da _nema_
elegantnijeg načina za to od neke varijante kod blokova.
jezici.50.bale.,
> E, šta se sad dobija time: velika fleksibilnost jezika:
> mogu se dodavati nove naredbe *potpuno* ravnopravno sa osnovnim, bez
> problema se mogu izmeniti i već ugrađene naredbe.
Moram da se složim u potpunosti, iako je Clipper "ružna instanca
lepe klase" jezika :) Na Unix-ima i drugim multitasking OS-ovima
postoji Tcl, interpreter komandnog koji može da se "meša" sa C-om,
i nad njim napravljena gomila softvera koja radi stvari koje su
*neverovatne* za DOS okruženje.
jezici.51dr.grba,
>> programski jezik već znači da ne može da se poredi sa mainstream
>> jezicima koji ne nastaju dodavanjem programerskih bisera već kao
>> rezultat ozbiljnog dizajnerskog rada, gdje se pazi da stvari imaju
>> glavu i rep.
Mislim da je evoluiranje Clippera kao jezika projektovanja baza podataka
izvrsan primer dobro osmišljenog koncepta. Jedini zbilja kritičan korak
je bio između verzija Summer '87 i 5.0, ali takav korak je i bio potreban.
Nadalje, postoje takvi mehanizmi koji obezbeđuju laku portabilnost
generacije koda neke aplikacije, dok god se ostaje u okvirima čistog
jezika.
To ne nikako ne znači da Clipper nema glavu i rep. Ima ih, još kako.
Druga je stvar što su programeri skloni zloupotrebi otvorenosti
Clippera i što se u takvim situacijama može stvoriti stvarno koješta.
jezici.52dr.grba,
>> Problem ove rasprave je što nismo na istoj talasnoj dužini: ti
>> porediš jedan specijalizovani jezik sa jezicima opšte namene, sa
>> ciljem da dokažeš da jezici opšte namene mogu uspešno da zamene (i
>> više od toga) specijalizovane jezike. Naravno, to je totalno
E, sad si me oduševio: posle serije poruka na temu "Mikser ili
televizor, pitanje je sad" ti stavljaš šlag odozgo i najzad priznaješ
da je rasprava ovoliko trajala samo zahvaljujući tvom strpljenju.
Svaka čast. (:
jezici.53dragisha,
-> > PROCEDURE ToStr(VAR res: ARRAY OF CHAR; adr: ADDRESS);
-> > TYPE
-> > pp = POINTER TO MyRec;
-> > BEGIN
-> > WITH pp(adr)^ DO
-> > StrIO.PrintF(res, ' #8C #8C #8C ', X+1, Y+2, X+Y+3);
-> > END;
-> > END ToStr;
-> :))) Pa zar ti je ovo drugo elegantnije i preglednije ?? Radi se samo
-> o tome da treba specificirati AKCIJU a ne PODATAK i ja znam da je to
-> moguće počev od ASM-a pa nadalje, samo hoću da kažem da _nema_
-> elegantnijeg načina za to od neke varijante kod blokova.
Bilo je, dok ga ti nisi kvotirao:)))
Jel' tebi AKCIJA (mislim AKCIJA) uvijek ima dvije naredbe ili je to
možda malčice složenije?
--
[IF(!CRASH()) _THANK_GOD();]
jezici.54dragisha,
-> problema se mogu izmeniti i već ugrađene naredbe. Ovako nešto ne bi
-> imalo naročitu primenu u standardnim jezicima, ali u specijalizovanim
-> jezicima sa velikim brojem naredbi ovo je strašna stvar. Ovo je i u
Imalo bi primjenu u eksperimentalnim jezicima... i samo tamo:).
Koncept je sjajan, izvještaji o bagovima svega toga se tek očekuju.
Pardon, o nedokumentovanim osobinama...:)
-> ali ćeš se svakako složiti da je ovo dole preglednije. I ne mislim da
-> bi iskomplikovalo kompajler. A što se tiče dupliranja, nema ga:
-> zaboravljaš da se cb može koristiti i kao podatak:
Mi se razilazimo oko jedne stvari koju ti nikako da usvojiš:). Kratki kod
blokovi su slatka stvarčica i oni su dobra dorada GCC koncepta (btw, sve je
počelo tvojim tvrdnjama o originalnosti). Dugi kod blokovi nisu ni malo
slatki, a ti meni pokušavaš da dokažeš kako je u primjenama sve divno i
krasno i sve to baziraš na kratkim kod blokovima. Dugi kod blok, kao i
(vjerovatno češći) kod blok koji se ponavlja nisu ništa bolji od
proceduralnog tipa. Dao si mi primjer kod bloka koji pridružuješ varijabli.
Ako TO nije proceduralna varijabla, ja ne znam šta je:)). Samo sintaksa
nije ista, što govorim već dugo.
-> Problem ove rasprave je što nismo na istoj talasnoj dužini: ti
Biće da je tako.:)
-> porediš jedan specijalizovani jezik sa jezicima opšte namene, sa
-> ciljem da dokažeš da jezici opšte namene mogu uspešno da zamene (i
-> više od toga) specijalizovane jezike. Naravno, to je totalno pogrešno,
Šta da ti kažem na ovo?:) Sâm sam napravio obilje aplikacija koje 98%
drugih programera radi u Clipperu. Vidim da to rade (uspješno!) i drugi
ovdje.
Q.E.D. :)
-> Neće biti. I to će ti potvrditi svaka normalna knjiga koja se bavi
-> programskim jezicima. Programski jezici su notacija za zapisivanje
Ne dovodim u pitanje! I .BAT je ekstenzija za izvornike jednog
programskog jezika... Ja govorim o jezicima za profesionalnu upotrebu u
softverskom inženjeringu. To su (npr.) Ada, C, C++, Fortran, Modula-2,
Pascal... Za svaki od njih se mogu naći profesionalne biblioteke, i to ne
samo za baze p. Od specijalizovanih jezika za baze podataka kod nas je
najpopularniji kliper jer radi na PCju, besplatan je:) i može da se klepne
neka tezgica brzo sa njim. Za profesionalne baze podataka u svijetu se
koriste softveri koje kod nas koriste uglavnom firme koje imaju po par
kupaca (a prave pakete od 100K$+:) a kod nas se u Kliperu prave i BBS
programi:).
BTW, nije li u tvojoj firmi C standard?:)
-> algoritama i dele se na dosta vrsta: ono što ti zoveš "programski
-> jezik" su višenamenski programski jezici. Kako bi onda nazvao jezike
-> za projektovanje hardvera, obradu stringova, itd? Što se tiče
Specijalizovani jezici! Međutim, ljudi koji ih koriste nisu programeri,
već projektanti hardvera i slično. Ja koristim AWK, pa nikad nisam rekao da
programiram u njemu:).
-> Ne, naravno. Ali, malo je bezveze da se upuštaš u raspravu u kojoj ne
-> želiš da ti niko protivreči ;)
Nije to to:). Itekako želim da mi neko protivriječi, ali uz uslov da taj
neko zna šta piše.:)
--
[V_o^o_V Cursors! Foiled Again!]
jezici.55kenza,
(;> Nije to to:). Itekako zelim da mi neko protivrijeci, ali uz uslov da
(;> taj neko zna sta pise.:)
Dobro, dobro , lakse malo ;)
Nego , jel moze neko da napise par detalja o moduli-3?
Izgleda zanimljivo :)
jezici.56nbatocanin,
> Imalo bi primjenu u eksperimentalnim jezicima... i samo
> tamo:).
> Koncept je sjajan, izvještaji o bagovima svega toga se
> tek očekuju. Pardon, o nedokumentovanim osobinama...:)
Vrtimo se u krug: ja sam prvo rekao da su kodni blokovi, pretprocesor
originalni, ti si tvrdio da nisu. Onda sam ti ja (valjda) pokazao da
ipak jesu. Onda si ti rekao da jeste originalno, ali nema primenu, na
šta sam ti ja naveo gde se to primenjuje. A ti sad ponovo o primeni.
Pošto se upuštam u raspravu s tobom, podrazumevam da si razuman čovek
koji prihvata argumente: zar ti nisam dovoljno argumentovano objasnio
primenu Clipper-ovog pretprocesora? Što se tiče bagova, ne budi tako
siguran: ako malo razmisliš, videćeš da se radi o veoma jednostavnoj
stvari, pa će teško doći do nekih problema. Uostalom, od izlaska
verzije 5.0 do danas nikakvih problema sa pretprocesorom nije bilo.
> Kratki kod blokovi su slatka stvarčica i oni su
> dobra dorada GCC koncepta (btw, sve je počelo tvojim
> tvrdnjama o originalnosti). Dugi kod blokovi nisu ni malo
> slatki, a ti meni pokušavaš da dokažeš kako je u
> primjenama sve divno i krasno i sve to baziraš na kratkim
> kod blokovima.
Nije mi jasno odakle ti ta teza o problemima kod "dugih kod blokova"
;) U primenama su zaista najčešći _kratki_ kod blokovi: oni se obično
koriste za zadavanje kolona tab. prikaza, akcije prilikom izbora
stavke u meniju i sl. Ali, zaista nema nikakvih prepreka da se
potpuno isto koriste i dugi kod blokovi - pišeš ih u više linija, u
čemu je tu mudrost? A kad baš neću sve u jednom CB, onda napišem {||
f() }, pa koristim "proceduralni tip" ;) Uostalom, još je LISP uveo
neimenovane funkcije koje se definišu na mestu korišćenja - zbog
preglednosti.
> Dugi kod blok, kao i (vjerovatno češći) kod blok koji se ponavlja
> nisu ništa bolji od proceduralnog tipa.
Kao što rekoh, nije češći. Ali, sad se setih, ima razlike. Naime,
kodni blok se ponaša kao deo procedure u kojoj je definisan: to znači
da su u njemu vidljive sve promenljive koje vidi i njegova procedura
- vlasnik. Ovo ponekad može biti dragocena osobina. Bojim se da ovo
neće baš tako ići sa pointerima na funkcije / proceduralnim tipom?
Druga razlika je povezana sa pretprocesorom: često se kod definisanja
nove naredbe ukazuje potreba za uvođenjem nove interne funkcije za
neki poslić. Takve funkcije se realizuju na licu mesta kao kodni
blokovi, što je nemoguće (ili veoma komplikovano) realizovati preko
pokazivača na funkciju.
> -> porediš jedan specijalizovani jezik sa jezicima opšte
> namene, sa -> ciljem da dokažeš da jezici opšte namene
> mogu uspešno da zamene (i -> više od toga) specijalizovane
> jezike. Naravno, to je totalno pogrešno,
>
> Šta da ti kažem na ovo?:) Sâm sam napravio obilje
> aplikacija koje 98% drugih programera radi u Clipperu.
> Vidim da to rade (uspješno!) i drugi ovdje.
>
> Q.E.D. :)
Al' si ga dokazao... Kao ono: "dokaz: očigledno sa slike". Ali ajde
da budem precizan: objasni ti meni sledeće:
1. da li to što si ti uspeo da napišeš obilje aplikacija koje drugi
pišu u Clipper-u u M2 išta govori o Clipper-u?
2. Da li to što vidiš da postoje i drugi koji to uspešno rade opet
išta govori o Clipper-u?
3. Otkud to da se tako loš proizvod, sa tako zastarelim koncepcijama
i sa toliko žestokih protivnika toliko koristi?
> Ja govorim o jezicima za profesionalnu upotrebu u softverskom
> inženjeringu. To su (npr.) Ada, C, C++, Fortran, Modula-2, Pascal...
:))) Pa dobro, gde si video podelu na jezike za profesionalnu
upotrebu i (valjda) za amatersku upotrebu :) I koje su to
"profesionalne" koncepcijske prednosti (na primer) FORTRAN-a nad
Clipper-om?
> Za svaki od njih se mogu naći profesionalne biblioteke, i to ne samo
> za baze p.
Zar misliš da su biblioteke za Clipper samo za baze podataka? Ogromna
većina njih nije.
> Od specijalizovanih jezika za baze podataka kod nas je najpopularniji
> kliper jer radi na PCju, besplatan je:) i može da se klepne neka
> tezgica brzo sa njim.
Molim te da dobro razmisliš o ovome šta si napisao: M2 takođe radi na
PC-u, besplatna je ;) i jedino ne znam da li može da se brzo klepne
neka tezgica sa njom... Koji su ti ovo argumenti?
> Za profesionalne baze podataka u svijetu se koriste softveri koje kod
> nas koriste uglavnom firme koje imaju po par kupaca (a prave pakete
> od 100K$+:) a kod nas se u Kliperu prave i BBS programi:).
Clipper i nije namenjen pravljenju "profesionalnih" baza podataka,
nego pisanju poslovnog softvera koji uobičajeno obrađuje veće
količine podataka. Zar misliš da firma koja godišnje obrne oko 10.000
DEM treba da uloži u svoj informacioni sistem deset puta toliko?
> BTW, nije li u tvojoj firmi C standard?:)
U kojoj firmi? Pošto radim na Šumarskom fakultetu, mogu reći da je u
mojoj firmi standard bukovina :)) A u *mojoj* firmi je standard ono
što ja kažem ;)
> Specijalizovani jezici! Međutim, ljudi koji ih koriste
> nisu programeri, već projektanti hardvera i slično. Ja
> koristim AWK, pa nikad nisam rekao da programiram u
> njemu:).
Pa dobro, ja i ne programiram, već vršim nizanje Clipper naredbi, ako
ti je tako lepše ;) I tvrdim da su kodni blokovi pri nizanju Clipper
naredbi veoma korisni ;)
jezici.57nbatocanin,
> Bilo je, dok ga ti nisi kvotirao:)))
:)))) Ozbiljno, zar stvarno to misliš? Mogu da ti kažem da je M2
jezik koji mi se jako sviđa, ali činjenice su činjenice...
> Jel' tebi AKCIJA (mislim AKCIJA) uvijek ima dvije naredbe
> ili je to možda malčice složenije?
Opet ti o dužini... Kao što rekoh u onom primeru sa IF naredbom,
dužina nema značaja...
jezici.58dragisha,
-> Nadalje, postoje takvi mehanizmi koji obezbeđuju laku portabilnost
-> generacije koda neke aplikacije, dok god se ostaje u okvirima čistog
============================
-> jezika.
Ne shvatamo portabilnost, kao i održavanje koda, na isti način. Nema tu
šta da se ostaje u okvirima ako je nešto dato kao proizvod. Ako nije
trebalo da nešto može da se uradi, nije trebalo ni da se stavi u "jezik".
-> To ne nikako ne znači da Clipper nema glavu i rep. Ima ih, još kako.
Svakako, više njih! Samo se ne zna gdje su...:)
-> Druga je stvar što su programeri skloni zloupotrebi otvorenosti
=======================
-> Clippera i što se u takvim situacijama može stvoriti stvarno koješta.
Ovo i jeste ključna tačka u "otvorenim sistemima". Mnogi ne shvataju da
se sistem može učiniti otvorenim bez slabljenja kontrola, bez previše
izlaganja.
--
[Spellings: Compatible, definitely, protocol.]
jezici.59dragisha,
-> Nego , jel moze neko da napise par detalja o moduli-3?
M3 je za M2 ono što je C++ za C, otprilike.
Potpuna OO, multithreading (pozoveš task kao funkciju:), exception
handling, garbage collection, low level mogućnosti ali strogo kontrolisane
(otvorenost bez rizika), izuzetno prosta sintaksa, procedure sa opcionalnim
argumentima i default vrijednostima za iste, odvojena kompilacija sa više
nivoa interfejsovanja.
I još mnogo toga...:)
--
[This building is so high, the elevator shows movies.]
jezici.60kenza,
(;> M3 je za M2 ono sto je C++ za C, otprilike.
A gde ima da se nebavi neka knjiga ili nesto odakle bi moglo
da se nauci par prvih koraka? :)
jezici.61dragisha,
-> > Jel' tebi AKCIJA (mislim AKCIJA) uvijek ima dvije naredbe
-> > ili je to možda malčice složenije?
->
-> Opet ti o dužini... Kao što rekoh u onom primeru sa IF naredbom,
-> dužina nema značaja...
Važna je tehnika:)
--
[Sound Advice,QModem,Deluxeř,QEdit,& ME. Whata team]
jezici.62dragisha,
-> 1. da li to što si ti uspeo da napišeš obilje aplikacija koje drugi
-> pišu u Clipper-u u M2 išta govori o Clipper-u?
-> 2. Da li to što vidiš da postoje i drugi koji to uspešno rade opet
-> išta govori o Clipper-u?
To govori o tome da specijalizovani jezici (tipa klipera) time što su
specijalizovani mnogo gube, a malo dobijaju. Ako mogu "nespecijalizovani"
jezici da zadovolje zahtjeve zbog kojih su oni drugi i napravljeni, onda
jedino "opravdanje" za specijalizaciju takvog jednog jezika nalazim u
potrebi da se to pojednostavi i približi ljudima koji nisu profesionalni
programeri, nego recimo ekonomisti koji treba u firmama da sklepaju neko
programče na brzaka. Razne informatike po ekonomskim faksovima i višim
ek. školama. Takvi i slični korisnici čine većinu Clipper/Fox/Clarion/...
tržišta. Reklama za jedan takav alat uglavnom sadrži "ne morate više da
trošite pare na programere, da ih čekate i slično, već možete sami da
programirate (?!)".
(Nemoj sad da me ndragan opauči, lijepo sam napisao VEĆINA!, doduše
ogromna:)
-> 3. Otkud to da se tako loš proizvod, sa tako zastarelim koncepcijama
-> i sa toliko žestokih protivnika toliko koristi?
I to piše gore. Većina (ogromna) su usputni programeri. Ono što mene
iznenađuje je činjenica da izvjestan broj ljudi na Sezamu, za koje je više
nego očigledno da imaju programersko kefalo, to koriste.
-> Pošto se upuštam u raspravu s tobom, podrazumevam da si razuman čovek
-> koji prihvata argumente: zar ti nisam dovoljno argumentovano objasnio
Ha, sad će čestitka od dr.g... za ovaj start.(:
-> Nije mi jasno odakle ti ta teza o problemima kod "dugih kod blokova"
-> ;) U primenama su zaista najčešći _kratki_ kod blokovi: oni se obično
Sve prednosti kod-blokova nestaju kad blok naraste preko tri reda i to je
onda isto što i procedura, samo malo ružnije:). To sam govorio. Ako ti ne
razumiješ da je kod blok koji u nekoj tačci pridružuješ varijabli isto što
i procedura..
-> U kojoj firmi? Pošto radim na Šumarskom fakultetu, mogu reći da je u
-> mojoj firmi standard bukovina :)) A u *mojoj* firmi je standard ono
-> što ja kažem ;)
Ha. Omaška:). Mislio sam na neku drugu, koja se vrlo poznata kod nas,
bavi se baš takvim poslovima, a radi u C-u. Neise.
-> Pa dobro, ja i ne programiram, već vršim nizanje Clipper naredbi, ako
-> ti je tako lepše ;) I tvrdim da su kodni blokovi pri nizanju Clipper
-> naredbi veoma korisni ;)
To već stoji! :))
--
[Recycle! Today's Garbage is tomorrow's America.]
jezici.63goxx,
Do sada sam posmatrao sa strane, ali posle ovog više ne mogu.
Mislim da mnogi, bez razloga, napadaju nbatocanina kao da je on
pisao clipper (ili bar ono što im u clipperu nije po volji).
■ specijalizovani mnogo gube, a malo dobijaju. Ako mogu "nespecijalizovani"
■ jezici da zadovolje zahtjeve zbog kojih su oni drugi i napravljeni, onda
■ jedino "opravdanje" za specijalizaciju takvog jednog jezika nalazim u
Mislim da nije tačno da jezike ovog tipa ne koriste programeri.
Šezdesetih je napravljen COBOL za takve potrebe, da ekonomisti u
firmama 'sklepaju neko programče na brzaka', ali koliko mi je poznato
to baš i nije bilo toliko delotvorno. COBOL se danas koristi samo zbog
svoje efikasnosti u radu sa ogromnim bazama podataka, ili iz inertnosti
ljudi prema novim jezicima.
■ potrebi da se to pojednostavi i približi ljudima koji nisu profesionalni
■ programeri, nego recimo ekonomisti koji treba u firmama da sklepaju neko
■ programče na brzaka. Razne informatike po ekonomskim faksovima i višim
Iskreno da ti kažem, video sam mnogo, mnogo više onih koji su
završili recimo elektrotehnički ili mašinski fakultet (BEZ UVREDE MOLIM)
i uzmu na primer 'nespecijalizovani' BASIC, PASCAL ili ne daj bože C
onda 'programiraju' jer su čuli da ne treba koristiti specijalizovan
jezik kao što je clipper.
■ tržišta. Reklama za jedan takav alat uglavnom sadrži "ne morate više da
■ trošite pare na programere, da ih čekate i slično, već možete sami da
Veoma mi je drago što ljudi 'ne čitaju' te reklame, pa i dalje
troše novac i vreme na mene ;).
■ iznenađuje je činjenica da izvjestan broj ljudi na Sezamu, za koje je više
■ nego očigledno da imaju programersko kefalo, to koriste.
Ako te to već iznenadjuje, onda razmisli. Nisu valjda svi glupi
da koriste clipper koji nije dobar, a oni jadni to i ne vide.
■ Sve prednosti kod-blokova nestaju kad blok naraste preko tri reda i to je
I ja sam mislio da su kodni blokovi glupost kada sam prvi put
čitao tekst o njima. "Šta će mi uopšte kad imam funkcije". Ali nije baš
sve tako. Obilato ih koristim. Kad radim neki podsistem (na primer sistem
menija), napravim funkcije koje rade u tom podsistemu, a stvari koje
želim da menjam od slučaja do slučaja radim preko kodnih blokova kako
bi podsistem bio što nezavisniji i široko upotrebljiv. Sve ovo verovatno
može i na drugi način, ali zašto kad je dobro i ovako !?.
EVAL( šđđ QOut("Goran :)")ć )
jezici.64dejanr,
>> > 3. Otkud to da se tako loš proizvod, sa tako zastarelim koncepcijama
>> > i sa toliko žestokih protivnika toliko koristi?
>>
>> I to piše gore. Većina (ogromna) su usputni programeri. Ono što mene
>> iznenađuje je činjenica da izvjestan broj ljudi na Sezamu, za koje je
>> više nego očigledno da imaju programersko kefalo, to koriste.
Ne treba imati predrasude tog tipa - ako je alat produktivan, treba ga
koristiti. A Clipper je dobar, treba probati pa se uveriti. Komforan je
za rad, brzo prevodi, brzo linkuje (ako ne koristiš njegov linker ;), očas
se napiše program, kasnije održavanje programa nije teško (ako si poslu
pristupio disciplinovano), performanse su sasvim solidne, programi lepo
rade u mreži... a to što su dugi 300-500 umesto 30-50 ;) kilobajta, to je
zaista najmanje važno i najmanji problem.
Mene kod jezika kao što je Clipper muči neko inicijalno nepoverenje -
da li će sve što je potrebno zaista moći da se uradi u Clipper-u (recimo,
sve ide lepo, i sada treba napraviti direktorijum... opa, to ne može
iz Clipper programa :( ) i da se ne desi da sve to pukne u nekom trenutku
iz razloga na koje ne mogu da utičem (recimo, baza je ok dok ima 100, 1000
ili 10,000 slogova, ali onoga momenta kada se pojavi 100,001-vi slog,
nastupi neka interna greška i kraj). Onoga momenta kada je to nepoverenje
savladano, nikada ne bih menjao Clipper za neki C ili Modulu, jer sam
dobro video koliko je lakše i produktivnije raditi u njemu. Naravno, one
stvari za koje je i namenjen - za neke druge stvari ću se uvek opredeliti
za druge jezike.
Argumenti koje iznosiš uglavnom su "već viđeni", kada su viši programski
jezici počeli da dobijaju na popularnosti. Oni su za "žderače pite", a
pravi programeri, jelda, programiraju na asembleru... plus eventualno
malo FORTRAN-a :) Evo, danas smo došli dotle da se na asembleru programira
samo izuzetno, većina posla se obavlja na višim jezicima. Ubeđen sam da
ćemo u budućnosti, čak ne tako dalekoj, doći do toga da se jezici tipa
današnjeg C-a, paskala, module itd koriste samo izuzetno, a da se
uglavnom radi na nekim daleko deskriptivnijim jezicima, u kojima se
na neki način opisuje "problem", a ne procedura koju računar treba da
obavi. Ne bih se začudio da generatori aplikacija zauzmu gotovo kompletno
tržište, osim možda ono malo softvera koji je potreban da se računar
"podigne" i učita OS.
jezici.65bojt,
>> Evo, danas smo došli dotle da se na asembleru programira samo
>> izuzetno, većina posla se obavlja na višim jezicima. Ubeđen
>> sam da ćemo u budućnosti, čak ne tako dalekoj, doći do toga da
>> se jezici tipa današnjeg C-a, paskala, module itd koriste samo
>> izuzetno, a da se uglavnom radi na nekim daleko
>> deskriptivnijim jezicima, u kojima se na neki način opisuje
>> "problem", a ne procedura koju računar treba da obavi. Ne bih
>> se začudio da generatori aplikacija zauzmu gotovo kompletno
>> tržište, osim možda ono malo softvera koji je potreban da se
>> računar "podigne" i učita OS.
Hm, samo da tako ne izumru programeri na asembleru. Ko će onda da
pravi sistem i više programske jezike? ;)
jezici.66dejanr,
>> Hm, samo da tako ne izumru programeri na asembleru. Ko će onda da
>> pravi sistem i više programske jezike? ;)
Pa, viši programski jezici se već prave na višim programskim jezicima :)
Ko bi pisao novi C kompajler svaki put iz početka, na asembleru? Nego
ga prvo kompajliraju nekim budženim cross-compiler-om, pa ga onda
ponovo kompajliraju samim njim.
A Barona Minhauzena obedili da je lažov samo zato što je pričao da je,
kada je bila frka, samoga sebe podigao za kragnu i uši :))
jezici.67fric,
> iznenađuje je činjenica da izvjestan broj ljudi na Sezamu,
> za koje je više nego očigledno da imaju programersko
> kefalo, to koriste.
Programersko kefalo je samo jedna od bitnih stvari.
Druga, po meni i bitnija, je praktičnost, ili drugim
rečima: umetnost da se definiše cilj, prouče i odmere
putevi i sredstva, i izabere ono optimalno.
A najbitnija: načiniti program koji _radi_ ono za
šta je namenjen, na _najbolji_način_ (za korisnika).
Znači, da možeš da prodaš to što napraviš, uzevši u
obzir i to da nisi jedini na tržištu.
Drastičan Primer: skoro sam video jako lep program,
pisan u Turbo Pascalu, u grafičkom modu, windows-like
interfejs, divota ...
Samo što ga je autor u silnom žaru 'preprogramirao' i
načinio neupotrebljivim jer radi samo na jednom tipu vga
kartice (kakva je kod autora).
So, kliper, modula 2 ili nešto treće - najčešće nije presudno.
Zec leži u drugom grmlju.
jezici.68dragisha,
-> (;> M3 je za M2 ono sto je C++ za C, otprilike.
->
-> A gde ima da se nebavi neka knjiga ili nesto odakle bi moglo
-> da se nauci par prvih koraka? :)
Ja sam dobio na poslugu knjigu iz Petnice, zaboravio sam naslov:).
Modula-3 za PC moze da se nađe na Internetu i prvom prilikom to ću da
skinem. Uskoro, nadam se:).
--
[We do precision guesswork]
jezici.69dragisha,
-> Mislim da nije tačno da jezike ovog tipa ne koriste programeri.
-> Šezdesetih je napravljen COBOL za takve potrebe, da ekonomisti u
-> firmama 'sklepaju neko programče na brzaka', ali koliko mi je poznato
60tih godina je COBOL bio jedan od dva programska jezika na tržištu:), i
ako se uopšte može izdvojiti neki poseban razlog za njegovo nastajanje,
onda je to potreba za omogućavanjem programiranja mimo mašinskog jezika,
prekidača i lampica. Kad je nastao, ekonomisti još nisu imali informatiku
kao predmet pa shodno tome nisu ni programirali:))).
Druga je stvar što se on koristi i u devedestim, a glavni razlog je kao i
uvijek u sličnim situacijama OGROMNA baza već razvijenog softvera koja se
stalno krpi.
I sam FORTRAN opstaje zbog sličnog razloga, samo u drugačijim oblastima.
Malo ljudi može da zamisli količine već postojećeg koda u njemu. U današnje
vrijeme već postoje specijalizovani jezici za stvari koje je nekada radio
isključivo FORTRAN, ali gotov softver je gotov softver:).
-> to baš i nije bilo toliko delotvorno. COBOL se danas koristi samo zbog
-> svoje efikasnosti u radu sa ogromnim bazama podataka, ili iz inertnosti
-> ljudi prema novim jezicima.
Koristi se zbog zaostale baze softvera, kako rekoh, a inertnost je razlog
što poneko i danas razvija nove stvari u njemu.
--
[If you're not wasted, then the day is.]
jezici.70dragisha,
-> Programersko kefalo je samo jedna od bitnih stvari.
->
-> Druga, po meni i bitnija, je praktičnost, ili drugim
-> rečima: umetnost da se definiše cilj, prouče i odmere
-> putevi i sredstva, i izabere ono optimalno.
Pod kefalom podrazumijevam sve ove kategorije. Nije programiranje samo
nizanje naredbi (što reče NB) već ovo drugo prije svega.
-> So, kliper, modula 2 ili nešto treće - najčešće nije presudno.
-> Zec leži u drugom grmlju.
Sjećam se tvog nedavnog 'žala' za strogom tipiziranošću. To je jedna od
stvari "iz drugog grmlja" a nju nudi i C++ i Modula-2 i Pascal.
--
[Mice are handy accessories, but I prefer gerbils]
jezici.71nbatocanin,
Nevezano (a možda i vezano) za ovu diskusiju, nešto mi je bolna jedna
ruka, pa sad kucam sa pola kapaciteta jednom rukom ;) Zbog tog razloga
ću morati da redukujem količinu teksta koji šaljem - prva će da
strada ova diskusija ;)
>> 1. da li to što si ti uspeo da napišeš obilje
>> aplikacija koje drugi pišu u Clipper-u u M2 išta govori
>> o Clipper-u?
>>
>> 2. Da li to što vidiš da postoje i drugi koji to
>> uspešno rade opet -> išta govori o Clipper-u?
>
> To govori o tome da specijalizovani jezici (tipa klipera)
> time što su specijalizovani mnogo gube, a malo dobijaju.
:))) A takođe se iz ovoga gore može izvesti da se moja baba zvala
Danica ;)
> Ako mogu "nespecijalizovani" jezici da zadovolje zahtjeve
> zbog kojih su oni drugi i napravljeni, onda jedino
> "opravdanje" za specijalizaciju takvog jednog jezika
> nalazim u potrebi da se to pojednostavi i približi ljudima
> koji nisu profesionalni programeri, nego recimo ekonomisti
> koji treba u firmama da sklepaju neko programče na brzaka.
Grešiš. Osnovni motiv za uvođenje specijalizovanih jezika je
povećanje produktivnosti u određenoj oblasti.
> Razne informatike po ekonomskim faksovima i višim ek.
> školama. Takvi i slični korisnici čine većinu
> Clipper/Fox/Clarion/... tržišta. Reklama za jedan takav
> alat uglavnom sadrži "ne morate više da trošite pare na
> programere, da ih čekate i slično, već možete sami da
> programirate (?!)".
Ja ovakve reklame nigde nisam video. Za tržište koje ti navodiš se
obično preporučuju dBase ili neki sličan proizvod, Clipper (a
pretprostavljam i ostali proizvodi koje si nabrojao) nikako nisu neki
"jednostavni jezici" za programiranje. Ako malo razmisliš, videćeš da
je Clipper znatno teži za učenje nego Pascal ili Modula. Razlog za to
je jednostavan: osim osnovnih konstrukcija ima znatan broj naredbi i
funkcija koje se odnose na rad sa bazom podataka, koje jednostavno ne
postoje u standardnim jezicima.
> Sve prednosti kod-blokova nestaju kad blok naraste preko
> tri reda i to je onda isto što i procedura, samo malo
> ružnije:). To sam govorio. Ako ti ne razumiješ da je kod
> blok koji u nekoj tačci pridružuješ varijabli isto što i
> procedura..
Kao što rekoh, problem je u tome što "ja u klin, ti u ploču" ;) Sasvim
je očigledno da nimalo ne poznaješ Clipper (što ti, naravno, ne uzimam
za zlo), pa je sasvim besmisleno da to dalje raspravljamo.
jezici.72nbatocanin,
> Koristi se zbog zaostale baze softvera, kako rekoh, a
> inertnost je razlog što poneko i danas razvija nove stvari
> u njemu. --
Jesi li pogledao neki noviji COBOL? Ja sam se vrlo prijatno
iznenadio.
jezici.73mirche,
> Jesi li pogledao neki noviji COBOL? Ja sam se vrlo prijatno
> iznenadio.
Ditto!
Videti pod: Visual Cobol (mbp)
Mask editor...u Cobolu...eeej!!
jezici.74dejanr,
>> Druga je stvar što se on koristi i u devedestim, a glavni razlog je kao i
>> uvijek u sličnim situacijama OGROMNA baza već razvijenog softvera koja se
>> stalno krpi.
>>
>> I sam FORTRAN opstaje zbog sličnog razloga
Možda, mada je po mom mišljenju FORTRAN vrlo upotrebljiv jezik, i danas.
Doduše, na PC mašinama se i ne koristi mnogo, ali recimo na VAX-u...
jezici.75dejanr,
>> Ako mogu "nespecijalizovani" jezici da zadovolje zahtjeve
>> zbog kojih su oni drugi i napravljeni, onda jedino
>> "opravdanje" za specijalizaciju takvog jednog jezika
>> nalazim u potrebi da se to pojednostavi i približi ljudima
>> koji nisu profesionalni programeri, nego recimo ekonomisti
>> koji treba u firmama da sklepaju neko programče na brzaka.
Da je tako, svi profesionalni programeri programirali bi na asembleru.
Ili na mašincu :) Jezici se specijalizuju da bi oni brže i lakše dolazili
do rezultata, i da bi rezultati bili pouzdaniji i lakši za održavanje.
jezici.76fric,
> -> So, kliper, modula 2 ili nešto treće - najčešće nije presudno.
> -> Zec leži u drugom grmlju.
>
> Sjećam se tvog nedavnog 'žala' za strogom tipiziranošću.
> To je jedna od stvari "iz drugog grmlja" a nju nudi i C++
> i Modula-2 i Pascal.
Fakat. Ali u vezi mog iskustva ima nešto za šta nisu krivi ni
Modula-2 ni Clipper.
Radeći u zaista lepoj Moduli-2 (doduše Logitech :( ) svirao sam
ku*cu godinu dana jer taj projekat nije (iz nekih drugih razloga)
nikad doneo kintu niti će je zaraditi u budućnosti.
Sada radim u kliperu (takvom kakav je :) stvari koje imaju glavu
i rep i od kojih se može živeti.
So, uz zaključak da jare & pare najčešće ne idu zajedno, ne kajem se
zbog svog sadašnjeg izbora. A da kliper u ovom trenutku zamenim modulom
ostajući u istom biznisu (knjigovodstveni softver) - no way, moralo bi
opet da se kreće od nule. Znači kliperišem, ćutim, uživam i plivam dalje
:).
jezici.77bojt,
>> >> I sam FORTRAN opstaje zbog sličnog razloga
>> Možda, mada je po mom mišljenju FORTRAN vrlo upotrebljiv
>> jezik, i danas. Doduše, na PC mašinama se i ne koristi
>> mnogo, ali recimo na VAX-u...
Sa ekstenzijama (VAX itd), FORTRAN skoro dodje jezik kao i
svaki drugi... ;)
jezici.78ndragan,
/ tržišta. Reklama za jedan takav alat uglavnom sadrži "ne morate više
/ da trošite pare na programere, da ih čekate i slično, već možete sami
Neće da te opauči, nego i sam pravi neku takvu alatku, ili bar niz
pomoćnih alatki za nedopečene programere. Jedino... ne bih stavio takvu
reklamu nikad, naš čovek je programer čim uspe da otkuca DIR.
Pita me neko jedan dan 'jel gledaš seriju "knjigovođe"' - 'samo u radno
vreme'. Elem, pošto oni čine većinu mojih stranki, živo se i dan danas
čudim kako još uvek imaju strahopoštovanje prema našoj struci. Onaj naš
čovek od malopre je stručnjak za sve, jedino od programiranja zazire i
sve se nešto vajka što je išao u pogrešnu školu pa je propustio da to
nauči...
Bue_ Ndragan
jezici.79ndragan,
/ Šezdesetih je napravljen COBOL za takve potrebe, da ekonomisti u
/ firmama 'sklepaju neko programče na brzaka', ali koliko mi je poznato
Još gore. Zadatak je bio da se napiše jezik koji će moći da koriste čak
i (!) američki oficiri; baba koja ga je napisala je dobila valjda čin
majora. Bilo pre par godina na Sezamu.
Bue_ Ndragan
jezici.80ndragan,
/ A Barona Minhauzena obedili da je lažov samo zato što je pričao da je,
/ kada je bila frka, samoga sebe podigao za kragnu i uši :))
A izraz 'butirati' potiče od toga što računar startuje disk tako što sa
istog pročita šta mu treba, 'pulling itself up by its own bootstraps'
(uhvati kajiševe svojih čizama i podigne se).
Bue_ Ndragan
jezici.81dragisha,
-> Jesi li pogledao neki noviji COBOL? Ja sam se vrlo prijatno
-> iznenadio.
Nisam, ali ne čudi me uopšte što se vizualizovao. Opšti trend, a
korisnika ima dovoljno. To samo ohrabruje ljude koji ga koriste da to rade
i dalje.
--
[God made whiskey so the Irish wouldn't rule the world?]
jezici.82dragisha,
-> Da je tako, svi profesionalni programeri programirali bi na asembleru.
-> Ili na mašincu :) Jezici se specijalizuju da bi oni brže i lakše
-> dolazili do rezultata, i da bi rezultati bili pouzdaniji i lakši za
-> održavanje.
Pogrešno interpretirano. Moj stav je da jezici poput Module-2, C-a,
Pascala.. mogu da završe isti posao za isto ili manje vrijeme sa
kvalitetnijim rezultatom u nekim kategorijama i jednakim u ostalim. Pobroj
samo biblioteke za rad sa bazama podataka koje postoje za C, npr.. A za
razliku od klipera, kad zatreba neka opšta radnja (gledao sam neki dan kako
je čovjek riješio dinamičko formatiranje izvještaja) može i to ali kod je
sve samo ne lijep, pregledan i lak za praćenje. Veoma nedostaju neke
uobičajene strukture podataka za te opšte poslove.
--
[How do I set my Laser printer to "Stun"?]
jezici.83dragisha,
-> > To govori o tome da specijalizovani jezici (tipa klipera)
-> > time što su specijalizovani mnogo gube, a malo dobijaju.
->
-> :))) A takođe se iz ovoga gore može izvesti da se moja baba zvala
-> Danica ;)
Samo to, *izdvojeno*, govori upravo to. Sve zajedno govori nešto drugo.
-> Grešiš. Osnovni motiv za uvođenje specijalizovanih jezika je
-> povećanje produktivnosti u određenoj oblasti.
Što je vrlo uspješno kad je u pitanju obrada tekst podataka (AWK, Perl..)
a ništa posebno u oblasti baza podataka, bar ne kad se kliper uzme kao
uzorak.
-> Ja ovakve reklame nigde nisam video. Za tržište koje ti navodiš se
-> obično preporučuju dBase ili neki sličan proizvod, Clipper (a
-> pretprostavljam i ostali proizvodi koje si nabrojao) nikako nisu neki
Ja jesam, za Clarion 2.nešto. PC magazin ili Bajt prije par godina.
-> "jednostavni jezici" za programiranje. Ako malo razmisliš, videćeš da
-> je Clipper znatno teži za učenje nego Pascal ili Modula. Razlog za to
Razlog više sproću istog. Međutim, ljudima koji uče je i upotreba
biblioteka nešto što moraju da nauče i njima je mnogo jednostavnije što je
dio toga dovoljan za početak već u jeziku. Ali pošto je u jeziku, za učenje
to izgleda manje i tu pada većina odluka.
-> je jednostavan: osim osnovnih konstrukcija ima znatan broj naredbi i
-> funkcija koje se odnose na rad sa bazom podataka, koje jednostavno ne
-> postoje u standardnim jezicima.
Postoje u desetinama biblioteka, kakve ti duša poželi. I kao što rekoh i
to se uči.
-> Kao što rekoh, problem je u tome što "ja u klin, ti u ploču" ;) Sasvim
-> je očigledno da nimalo ne poznaješ Clipper (što ti, naravno, ne uzimam
-> za zlo), pa je sasvim besmisleno da to dalje raspravljamo.
Ono što je činjenica je da nikada nisam pisao u kliperu, a druga
činjenica je da programske jezike generalno prilično poznajem, a imao sam
priliku da gledam kliper kod kod mnogih od vas:), radio sam godinu i po
metar i po od kliper programera, tokom faksa sam sarađivao u IRIS-u u ekipi
koja je u kliperu razvijala poštanske sisteme i kojima sam radio low level
dijelove softvera u C-u i asembleru i tako to. Samo 5.2 nisam sreo, sve
ostale verzije od dolaska istog u naše krajeve do 5.1 jesam.
--
[Macro Macro Macro]
jezici.84dragisha,
-> >> I sam FORTRAN opstaje zbog sličnog razloga
->
-> Možda, mada je po mom mišljenju FORTRAN vrlo upotrebljiv jezik, i danas.
-> Doduše, na PC mašinama se i ne koristi mnogo, ali recimo na VAX-u...
Teška numerika se i ne radi na PCu gdje god se ne mora.
Da je upotrebljiv, jeste!
--
[Upgraded my network last week. Yep, new Reeboks!]
jezici.85dragisha,
-> Radeći u zaista lepoj Moduli-2 (doduše Logitech :( ) svirao sam
-> ku*cu godinu dana jer taj projekat nije (iz nekih drugih razloga)
-> nikad doneo kintu niti će je zaraditi u budućnosti.
Tvoja bivša firma i pare ne vjerujem da imaju puno dodirnih tačaka:).
Koliko sam ja to shvatio, još nije projektovan jezik koji bi mogao tu nešto
da promijeni:).
-> zbog svog sadašnjeg izbora. A da kliper u ovom trenutku zamenim modulom
-> ostajući u istom biznisu (knjigovodstveni softver) - no way, moralo bi
-> opet da se kreće od nule. Znači kliperišem, ćutim, uživam i plivam dalje
Shvatljivo. Mada, postoje knjigovodstveni softveri i u Moduli-2, svako je
to valjda nekad uradio:)... Ko zna..:)
--
[Press any key...NO, NO, NO, NOT THAT ONE!!!!!!]
jezici.86bojt,
>> Teška numerika se i ne radi na PCu gdje god se ne mora.
Jok i ne radi se.
jezici.87dejanr,
>> Moj stav je da jezici poput Module-2, C-a, Pascala.. mogu da završe
>> isti posao za isto ili manje vrijeme
Mislim da nisi u pravu... Za to je potrebno koristiti brojne dodatne
biblioteke (bilo da si ih ti radio, ili gotove, kupovne). Ako se tih
biblioteka dovoljno nakoti ;) onda rezultujući program bude veliki
koliko i Clipper-ov... a obaška što nikada čovek nije siguran kada će
koja od njih da "pukne". Ovako, uzmeš sve ujedno zapakovano u Clipper
ili Fox, i imaš produktivan alat za razvoj data base programa.
jezici.88nbatocanin,
> je jednostavan: osim osnovnih konstrukcija ima znatan
> broj naredbi i funkcija koje se odnose na rad sa bazom
> podataka, koje jednostavno ne postoje u standardnim
> jezicima.
>
> Postoje u desetinama biblioteka, kakve ti duša poželi. I
> kao što rekoh i to se uči.
Klasični jezici su po meni veoma ograničeni po pitanju raznih
proširenja. To ne dolazi do izražaja u programima srednje veličine,
kakvi se na njima uobičajeno prave, ali je veoma otežavajući faktor
kod složenih sistema. Primer C-a: bez obzira na postojanje ogromnog
broja biblioteka, C ne omogućuje nikakakav mehanizam za nadgradnju
osim jednostavnih poziva funkcija i nešto malo pretprocesor. Tako će C
program nafilovan raznim bibliotekama izgledati otprilike ovako:
md_trtr (p, 1, 3, &x);
pp_rkr ();
ggffg ();
ff_rp (e, t, p);
...
pogodno izabrani nazivi ne pomažu previše i preglednost je nepovratno
izgubljena, naročito kod funkcija sa većim brojem argumenata od kojih
su neki strukture. Objekti (i moduli) su "spas u pravi čas", ali
mislim da ni oni neće moći da ublaže ovaj nedostatak pod najezdom
potrebnih biblioteka: danas programi postaju sve složeniji i za
izradu je potrebno sve više raznih "eksternih" funkcija. Sada je
plafon podignut raznim generatorima programa koji automatski generišu
pozive složenih funkcija u delovima programa, ali lopta će vrlo brzo
morati da se vrati na temelj, tj. osnovni jezik. Jednostavno, neke
stvari se najlakše opisuju _programom_ i takve stvari se teško mogu
uraditi iz menija ili nekog specijalnog editora. OOP će svakako biti
jedan od kamena temeljaca tih budućih jezika, ali će biti potrebno još
dodatnih rešenja. Mislim da je Clipper-ov pretprocesor jedno od tih
rešenja.
>> Kao što rekoh, problem je u tome što "ja u klin, ti u
>> ploču" ;) Sasvim je očigledno da nimalo ne poznaješ
>> Clipper (što ti, naravno, ne uzimam za zlo), pa je
>> sasvim besmisleno da to dalje raspravljamo.
>
> Ono što je činjenica je da nikada nisam pisao u kliperu, a
> druga činjenica je da programske jezike generalno prilično
> poznajem, a imao sam priliku da gledam kliper kod kod
> mnogih od vas:), radio sam godinu i po metar i po od
> kliper programera, tokom faksa sam sarađivao u IRIS-u u
> ekipi koja je u kliperu razvijala poštanske sisteme i
> kojima sam radio low level dijelove softvera u C-u i
> asembleru i tako to.
Opet smatram da nisi korektan u diskusiji: tvrdio si da Clipper
jezik, pretprocesor, sistem za greške i kodni blokovi nisu originalna
stvar, a da pre toga nisi znao skoro ništa o tome. Naravno, to nije
previše bitno: ja bih ti vrlo rado objasnio, pa onda možemo
konstruktivno da dikutujemo. Ovako se sve svodi na najgore i
najbeskorisnije prepucavanje.
jezici.89dragisha,
-> >> Moj stav je da jezici poput Module-2, C-a, Pascala.. mogu da završe
-> >> isti posao za isto ili manje vrijeme
->
-> Mislim da nisi u pravu... Za to je potrebno koristiti brojne dodatne
-> biblioteke (bilo da si ih ti radio, ili gotove, kupovne). Ako se tih
-> biblioteka dovoljno nakoti ;) onda rezultujući program bude veliki
-> koliko i Clipper-ov...
Naravno da se koriste biblioteke, a ovo za koćenje i veličinu ti je baš
osnovano:))). A od biblioteka se koriste 1. veza ka bazi (to je kod mene
reda 20Kb kad se ulinkuje) i "brojni drugi moduli" koje ne moram ni da
nabrajam jer i kliperašima trebaju (meniji,...:). Ne znam koliko traži
PDXEngine, za server bazirani BTrieve znam da se linkuje par kilobajta.
-> a obaška što nikada čovek nije siguran kada će
-> koja od njih da "pukne". Ovako, uzmeš sve ujedno zapakovano u Clipper
-> ili Fox, i imaš produktivan alat za razvoj data base programa.
Nemoj samo da mi kažeš da je Clipper pouzdaniji od dbVista koji koristi
US Army, BTrieve-ta kog prodaje Novell ili od Paradox-a ili već tako nečega
što se prodaje kao biblioteka? Dont bi ridikulus:).
U Fox ajde da i prihvatim da je zapakovano, ali kao što reče ndragan, što
će kliperašima biblioteke ako je to tako?:) Zašto se baktati sa menijima,
sa generatorima izvještaja i sličnim ako je jezik pravljen za takve stvari?
Clipper za koga je pregled izvještaja šireg od 80 kolona super dodatak. Idi
begaj..:)
--
[Is it really true that blondes have more fun?]
jezici.90dragisha,
-> >> Teška numerika se i ne radi na PCu gdje god se ne mora.
->
-> Jok i ne radi se.
Sve može da se uradi na PCju, tj. platformi koja nastane od PCja kad joj
dodaš Weitek, i860 i ostale slične "sitnice". To je PC koliko je Alpha PC
PC:). Numerika na PCju vs. numerika na mini i ostalim računarima mi liči na
odnos grafika na Amizi vs. grafika na SGI. Ako ti je primarna ušteda love
za platformu, može da se stisnu zubi malo i da se šljaka.
To je inače moje lično mišljenje (za razliku od ostalog što pišem što je
takođe moje mišljenje:) i nemam namjeru da *tebe* ubjeđujem u to:).
I pitanje, zar sve to ipak ne bi bilo zgodnije da je ispod neki Sparc
10?:) Naravno, ako se isplati dati pare za nešto kraće vrijeme računanja
koje ne mora biti vremenski kritično, kao što vjerovatno (?) i nije SAN.
--
[Draw your salary before spending it.]
jezici.91bojt,
>> >> >> Teška numerika se i ne radi na PCu gdje god se ne mora.
>> >> Jok i ne radi se.
>> Sve može da se uradi na PCju, tj. platformi koja nastane od
>> PCja kad joj dodaš Weitek, i860 i ostale slične "sitnice". To
>> je PC koliko je Alpha PC PC:). Numerika na PCju vs. numerika
>> na mini i ostalim računarima mi liči na odnos grafika na
>> Amizi vs. grafika na SGI. Ako ti je primarna ušteda love za
>> platformu, može da se stisnu zubi malo i da se šljaka.
Prvo, pojavom 486DX Weitek je izgubio brzinsku trku, pošto je
kombinacija 486 + w4167 bila sporija od kombinacije 486 + "487"
(zaklao ih integrisan koprocesor). Naravno, w4167 se prodavao
neko vreme zbog kombatibilnosti sa softverom koji je koristio
isključivo Weitek koprocesore (a takvog softvera niti je bilo
malo niti je bio naivan), ali vremenom je interesovanje sve više
i više opadalo (sad su, vidim, prešli na video čipove). Što se
tiče i860 karti, i to je već pase, pošto je Pentium brži od, na
primer, MicroWay i860 "Number Cruncher" karte. Doduše, nisam
imao prilike da probam neku i960 kartu, ali ne očekujem neku
spektakularnu razliku u odnosu na Pentium, svakako ne razliku od
11-12 puta, koliko je, na primer, "Number Cruncher" i860/33, u
doba kada se pojavio, bio brži od 386+387DX/33 kao tadašnje
najjače "normalne" PC numeričke platforme. S obzirom da takve
karte koštaju par hiljada $ (ta i860/33 karta sa 8MB 4-way
interleave RAM-a koštala je 7000$, a doplata do 32MB RAM-a još
5000$), postavlja se pitanje da li ima smisla doplatiti nekoliko
puta veću cenu za nešto bolje performanse (možda i više nego
"nešto" ali svakako nesrazmerno razlici u ceni), plus poseban
softver i kompajler jer je stvar, naravno, potpuno
nekompatibilna sa klasičnim PC softverom (uz kartu se dobijao
jedan kompajler po izboru, a svaki extra je koštao 2000$).
Ono što ja hoću da kažem je da se već na 486 računaru može
sasvim pristojno raditi i prilično mučna numerika. Medjutim,
osnovni problem u tom segmentu primene računara najčešće leži
upravo u softveru. Dok hardver vrtoglavo napreduje u moći i
performansama, softver iz tih (a bogami i drugih) oblasti se
slabo ili nikako modernizuje. Naime, ogroman broj tih programa
koji rade "mračnu" numeriku nastao je još 60-ih ili 70-ih
godina, kad su mainframe-ovi imali po par KB RAM-a, pa se
najveći deo posla obavljao preko diska. Pored toga, takve
programe su mahom pisali odlični inženjeri ali priučeni
programeri. Za sve ovo vreme vrtoglavog razvoja hardvera čitava
se stvar uglavnom svodila na to da se prastari sors samo ponovo
prevede odgovarajućim (najčešće FORTRAN) kompajlerom za novu
"zver" mainframe/mini/presonalnu platformu. Ukoliko je i bilo
neke modernizacije takvih paketa, ona se najčešće svodila na
uvodjenje maski, grafike i odgovarajućih pred i post procesora,
dok je, na žalost, srž takvih programa (ona koja "vrti" mučnu
numeriku) najčešće ostajala netaknuta. Odgovorno tvrdim da se
modernizovanjem te "srži" program može ubrzati i par hiljada
puta, tako da njegovo izvršavanje traje relativno kratko čak i
na 486 ili drugom savremenom personalnom računaru.
jezici.92dejanr,
>> Nemoj samo da mi kažeš da je Clipper pouzdaniji od dbVista koji koristi
>> US Army, BTrieve-ta kog prodaje Novell ili od Paradox-a ili već tako
>> nečega što se prodaje kao biblioteka?
Da su svi ti alati toliko bolji od Clipper-a, pouzdaniji, lakši za
upotrebu i uz to u sličnom rangu cena ili jeftiniji, niko ne bi kupovao
Clipper. Pošto se Clipper dosta kupuje, znači da ima i nekih prednosti.
Ti naprosto nisi radio sa njim pa je sasvim prirodno da te prednosti ne
možeš da uočiš.
>> U Fox ajde da i prihvatim da je zapakovano, ali kao što reče ndragan, što
>> će kliperašima biblioteke ako je to tako?:)
FOX je kao jezik i kao integrisana okolina superioran u odnosu na Clipper.
Ali Clipper pravi "čistiji" EXE fajl, i mnogi preferiraju da rade sa njim...
možda i zbog navike.
>> što će kliperašima biblioteke ako je to tako?:)
Ne znam, ima programera koji vole dodatne biblioteke za Clipper. Ja lično
ih koristim jako retko, bolje reći gotovo nikada. Trebalo bi mi mnogo
vremena da steknem poverenje u neku biblioteku, naročito ako uz nju ne
ide sors (a obično ne ide).
jezici.94dejanr,
>> > Teška numerika se i ne radi na PCu gdje god se ne mora.
>>
>> Sve može da se uradi na PCju, tj. platformi koja nastane od PCja kad joj
>> dodaš Weitek, i860 i ostale slične "sitnice".
Bojim se da i ovde govoriš o stvarima koje nisi probao. Weitek je oprobano
sporiji od 486/66, ne znam da li više to iko i kupuje. Pentium je oprobano
brži od i860, i trebalo bi da bude u rangu sa i960, uz eventualno izvesnu
prednost u korist i960 (ovo zadnje nisam imao priliku da probam, to prema
tekstovima iz časopisa).
Dakle, ako neko kupuje Weitek ili i860, to je eventualno samo zato da bi
koristio neki postojeći softver. Ako kreće sa numerikom, ne trebaju mu.
jezici.95peca.st,
!-> Ne znam koliko traži PDXEngine, za server bazirani BTrieve znam da se
!-> linkuje par kilobajta.
Ja sam probao kombinaciju PXEngine + Turbo Vision, čisto da vidim koliko
ta kombinacija traži. Rezultat: exe fajl, koji sadrži samo PXInit na
početku i PXExit na kraju, uz par TV menija, dugačak je oko 280k.
Peđa.
jezici.96dejanr,
>> > Ne znam koliko traži PDXEngine, za server bazirani BTrieve znam da se
>> > linkuje par kilobajta.
>>
>> Ja sam probao kombinaciju PXEngine + Turbo Vision, čisto da vidim koliko
>> ta kombinacija traži. Rezultat: exe fajl, koji sadrži samo PXInit na
>> početku i PXExit na kraju, uz par TV menija, dugačak je oko 280k.
Da, to je baš ono što sam i rekao - dok natrpaš biblioteke koje rade ono
što radi Clipper ili FOX, dobiješ EXE fajl uporedive veličine :)
Što se tiče BTrieve-a, on je ipak različita stvar, on obezbeđuje usluge
niskog nivoa, računajući i razna indeksiranja, ali ti i dalje treba
niz drugih stvari da bi napravio bazu podataka sa korisničkim interfejsom.
Osim toga, BTrieve u "punoj opremi" zapravo sarađuje sa serverom, gde je
glavnina softvera... ako instaliraš BTrieve na DOS mašinu, recimo da bi
testirao program koji će posle raditi na mreži, uzme ti malo više od par
kilobajta. Reda 60-tak, ili više, zavisi kolike bafere dimenzionišeš.
Ali da lepo radi (BTrieve), lepo radi!
jezici.99dragisha,
-> >> Sve može da se uradi na PCju, tj. platformi koja nastane od PCja kad
-> joj >> dodaš Weitek, i860 i ostale slične "sitnice".
->
-> Bojim se da i ovde govoriš o stvarima koje nisi probao. Weitek je
-> oprobano
E baš ti hvala što mi otvori oči:), i to pošto si već vidio (čitaš
online, zar ne) da je Bojt odgovorio.
BTW, shvatam ja da je ovo tebi došlo kao dobar šlagvort za kros repliku
na nešto drugo, ali bi mi bilo baš drago da barem dio te pažnje posvetiš
nekim drugim mojim porukama vezanim za funkcionisanje Sezama, tj. onoga šta
su ova unapređenja od njega napravila.
--
[On a clear desk you can never find anything.]
jezici.100dragisha,
-> numeriku) najčešće ostajala netaknuta. Odgovorno tvrdim da se
-> modernizovanjem te "srži" program može ubrzati i par hiljada
-> puta, tako da njegovo izvršavanje traje relativno kratko čak i
-> na 486 ili drugom savremenom personalnom računaru.
Hvala na veoma informativnoj poruci i.. imaš moje slaganje glede ove
tvrdnje:). Na faksu sam imao priliku da upoznam nekoliko izuzetnih
inženjera (da ne kažem doktora, glupo je:))) koji nisu bili previše
kompatibilni sa modernim dostignućima u računarstvu i patili su od sličnih
boljki. Mrak programi sa tehnologijom šezdesetih.
--
[To live-is to risk dying.]
jezici.101dejanr,
>> > Bojim se da i ovde govoriš o stvarima koje nisi probao. Weitek je
>> > oprobano
>>
>> E baš ti hvala što mi otvori oči:), i to pošto si već vidio (čitaš
>> online, zar ne) da je Bojt odgovorio.
Shvatam ja da, kad god kažeš nešto što se pokaže materijalno pogrešnim
pa ti neko na to ukaže, ti kreneš sa sitnim podmetanjima. A poruke niti
pišem on-line (osim povremeno kada je nešto hitno), niti imam potrebe da
koristim Bojtovu poruku pošto smo do tog saznanja, delimično i u
saradnji, poodavno došli...
jezici.102ficus,
:) Sto je vrlo uspjesno kad je u pitanju obrada tekst podataka (AWK, Perl..)
:) a nista posebno u oblasti baza podataka, bar ne kad se kliper uzme kao
:) uzorak.
Jeli jesili cuo za classlib za clipper. Mnogo lepa stvar ja takve
stvari nevolim ali sve jedno nisam ostao ravnodusan kad sam video sta
moze da se uradi sa user interface-om u 80-tak linija sorcea skini to
samo da pogledas kako izgleda pa posle probaj da mirno spavas sledece noci
:) Ja jesam, za Clarion 2.nesto. PC magazin ili Bajt prije par godina.
Clarion je nesto sasvim drugo tu pola programa napises a da nisi ni video
sorce koji si napisao video sam kako doticni izgleda i .... kao sto malopre
reko nisam pobornik istog.
:) koja je u kliperu razvijala postanske sisteme i kojima sam radio low level
:) dijelove softvera u C-u i asembleru i tako to. Samo 5.2 nisam sreo, sve
Dakle mozes da upravljas i sa low level funkcijama iz clippera zakljucak
ako ti treba neki drukciji nacin obrade baze podataka, ako oces da prog.
za windows itd itd onda stvarno treba da batalis clipper i njemu slicne
ali ako ti treba baza podataka clipper je jos uvek veoma zgodno resenje
i sasvim je dovoljan. Druga je stvar licnog izbora sto se meni recimo vise
svidja c++ ili nesto slicno.
jezici.103ficus,
:) Ne znam, ima programera koji vole dodatne biblioteke za Clipper. Ja licno
:) ih koristim jako retko, bolje reci gotovo nikada. Trebalo bi mi mnogo
Evo sto ljudi koriste biblioteke za cliper:
1.Glavni razlog: mrzi ih da sami napisu 2-3 funkcijice.
2.pogledaj pod 1.
Ja licno koristim nanforum toolkit i to zbog sledecih stvari:
-menija(treba jos malo da promenim sorce)
-prikazivanja fajlova(nesto slicno memoeditu samo malko drukcije)
-rutine za configuraciju boja (sors je malo promenjen)
prvo i poslednje je bio smesan posao napisati i ovako dok je
za drugo trebalo malo razmisliti ali je bilo mnogo jednostavnije
otkucati dow nanfor21....
jezici.104dragisha,
-> Klasični jezici su po meni veoma ograničeni po pitanju raznih
-> proširenja. To ne dolazi do izražaja u programima srednje veličine,
===========================
-> kakvi se na njima uobičajeno prave, ali je veoma otežavajući faktor
================
-> kod složenih sistema. Primer C-a: bez obzira na postojanje ogromnog
Bojim se da ovo ne stoji ni u kom slučaju. Klasični jezici se koriste za
(brat bratu) 95% programa veličine veće od srednje (ha! koji pojam:). Moje
mišljenje je da će rješenje (tj. da je već) biti hibridni sistemi u kojima
će preovladavati klasični jezici i njihovi derivati.
-> stvari se najlakše opisuju _programom_ i takve stvari se teško mogu
-> uraditi iz menija ili nekog specijalnog editora. OOP će svakako biti
Tačno. Npr., lex i yacc (flex i bison) su alati koji se u svijetu
prilično koriste upravo u hibridnim sistemima i služe upravo za stvari koje
se "najlakše opisuju _programom_". Oni ujedno omogućavaju proširenje
"glavnog" jezika bez povećavanja kompleksnosti istog (što se dešava
Clipperu pri dodavanju komandi) i veoma je saglasno sa jednim od aksioma
modularnog dizajna, onom koji insistira na što slabijoj vezi među pojedinim
modulima.
-> md_trtr (p, 1, 3, &x);
-> pp_rkr ();
-> ggffg ();
-> ff_rp (e, t, p);
Vulgarizuješ stvari:). Sve se da dobro organizovati, a proceduralni tip
je jedna od mnogo zgodnih stvari za obuzdavanje većih sistema. To je
koncept koji, kako rekoh ranije, na razne načine može da se upotrijebi u
većini modernih proceduralnih jezika. BTW, ovdje si (ne znajući:) ukazao na
jedan (po meni) veoma bolan nedostatak C-a (prilično dobro ispravljen u
C++), a to su globalna imena. Ali, koncept modula (singl instans klasa u
C++) to prevazilazi. Objekti pogotovu.
-> Opet smatram da nisi korektan u diskusiji: tvrdio si da Clipper
-> jezik, pretprocesor, sistem za greške i kodni blokovi nisu originalna
-> stvar, a da pre toga nisi znao skoro ništa o tome. Naravno, to nije
-> previše bitno: ja bih ti vrlo rado objasnio, pa onda možemo
Sada znam mnogo više o tome, što smatram direktnim dobitkom za sebe:) iz
ove diskusije i opet mislim skoro isto:). Nisam bio u pravu samo za
pretprocesor, a ostalo se pokazalo baš takvim kako sam ja sebi pretpostavio
na osnovu dotadašnjeg znanja o Clipperu. Osim toga, ti si tvrdio da sve to
JESTE originalno, a ja sam se pozvao na uzore čijim upoređivanjem sa
Clipperom može ponešto da se ustanovi, ali svakako ne to da je Clipper uveo
originalna rješenja. Prosto, dizajneri su upotrijebili dobre (već prilično
stare) koncepte i nešto modifikovane ih ugradili u Clipper. žist
inženjerski posao, i (repeating..:) ne *originalan*.
--
[He is almost a statesman. He lies well.]
jezici.105dr.grba,
>> ako ti treba neki drukciji nacin obrade baze podataka, ako oces da
>> prog. za windows itd itd onda stvarno treba da batalis clipper i
>> njemu slicne
Što? Beta testeri i kibiceri Visual Objects sistema tvrde da je reč o
vrlo dobrom i stabilnom proizvodu.
jezici.106nikac,
Neke funkcije (delovi programa) koje napravi Cobol compiler nece da rade
sa DOS-om 6.0 i 5.0 (radi samo sa 4.1 i manje)!? Zna li neko u cemu je
problem i kako se ratosiljati istoga.
P.S. Samo da ne bude ono - baci cobol i sl. :)
P.S.S. Ne brinite ovo ne koristim ja ;)
jezici.107fancy,
ŮŢ> Neke funkcije (delovi programa) koje napravi Cobol compiler nece da rade
ŮŢ> sa DOS-om 6.0 i 5.0 (radi samo sa 4.1 i manje)!? Zna li neko u cemu je
ŮŢ> problem i kako se ratosiljati istoga.
ŮŢ>
ŮŢ> P.S. Samo da ne bude ono - baci cobol i sl. :)
ŮŢ> P.S.S. Ne brinite ovo ne koristim ja ;)
Ne vredi ti.
Moraš da ostaneš na DOS<=4.1
Zbog tog prokletog Cobola, na par mašina u bivšoj firmi još uvek
drže DOS 3.30..:(
jezici.108jovca.car,
/* ŮŢ> Neke funkcije (delovi programa) koje napravi Cobol compiler nece da
/* rade ŮŢ> sa DOS-om 6.0 i 5.0 (radi samo sa 4.1 i manje)!? Zna li neko u
/* cemu je ŮŢ> problem i kako se ratosiljati istoga.
/* Ne vredi ti.
/* Moraš da ostaneš na DOS<=4.1
/* Zbog tog prokletog Cobola, na par mašina u bivšoj firmi još uvek
/* drže DOS 3.30..:(
Za obojicu: Ako nije problem, što ne pređete na neki noviji compiler?
jezici.109dr.grba,
>> Neke funkcije (delovi programa) koje napravi Cobol compiler nece da
>> rade sa DOS-om 6.0 i 5.0 (radi samo sa 4.1 i manje)!? Zna li neko
>> u cemu je problem i kako se ratosiljati istoga.
Pretpostavljam da su kritični moduli koji se bave čitanjem i pisanjem
po disku. Ako je u pitanju MS COBOL, za to je odgovoran rezidentni
ISAM modul.
Lek je SETVER.
jezici.110fancy,
ŮŢ> Za obojicu: Ako nije problem, što ne pređete na neki noviji compiler?
Pomer' se s' mesta!
Niti koristim isti niti me zanima. Samo kažem, da je meni sa
pozicije čoveka koji je održavao PC-je i trudio se da na njima
uvek bude najefikasniji softver bio užasno neprijatno da prolazim
pored par mašina sa DOS 3.30 a da ne mogu ništa da učinim po pitanju
sređivanja istih. Bilo je tu par ljudi kojima bi DOS 5.0 prilično
značio, ali je zbog onih koji su Cobol naučili još pre 20ak godina i
od tada samo to ukucavali (fuuuj!) bilo onemogućeno da instaliram
svežiji SW..:((
jezici.111nbatocanin,
> Bojim se da ovo ne stoji ni u kom slučaju. Klasični jezici
> se koriste za (brat bratu) 95% programa veličine veće od
> srednje (ha! koji pojam:). Moje mišljenje je da će
> rješenje (tj. da je već) biti hibridni sistemi u kojima će
> preovladavati klasični jezici i njihovi derivati.
Mislio sam na domaće programe. Što se tiče "hibridnih sistema", to su
svakako specijalizovani jezici.
> Tačno. Npr., lex i yacc (flex i bison) su alati koji se u
> svijetu prilično koriste upravo u hibridnim sistemima i
> služe upravo za stvari koje se "najlakše opisuju
> _programom_". Oni ujedno omogućavaju proširenje "glavnog"
> jezika bez povećavanja kompleksnosti istog (što se dešava
> Clipperu pri dodavanju komandi)
Korišćenje u hibridnim sistemima? Prvi put čujem za to, kao i za
"hibridne" sisteme. Baš me interesuje kako to radi.
> -> ggffg ();
> -> ff_rp (e, t, p);
>
> Vulgarizuješ stvari:). Sve se da dobro organizovati, a
> proceduralni tip je jedna od mnogo zgodnih stvari za
> obuzdavanje većih sistema. To je koncept koji, kako rekoh
> ranije, na razne načine može da se upotrijebi u većini
> modernih proceduralnih jezika.
Naravno da može. Ali kao i svaki koncept ima svoja ograničenja.
> žist inženjerski posao, i (repeating..:) ne *originalan*. --
Očigledno da nam se ne slažu značenja "originalno". Ako tako strogo
gledaš na stvari, da li misliš da si ti išta u životu *originalno*
napravio? Sumnjam da misliš...
jezici.112dragisha,
-> Shvatam ja da, kad god kažeš nešto što se pokaže materijalno pogrešnim
-> pa ti neko na to ukaže, ti kreneš sa sitnim podmetanjima. A poruke niti
-> pišem on-line (osim povremeno kada je nešto hitno), niti imam potrebe da
-> koristim Bojtovu poruku pošto smo do tog saznanja, delimično i u
-> saradnji, poodavno došli...
Nemoj da si nervozan, nema moja poruka veze sa prepisivanjem. Nema tamo
nikakvog pa ni 'sitnog' podmetanja, a to što si se tu počešao podsjeća me
na onu narodnu 'svak se češe gdje ga svrbi':).
Da istaknem, ne sumnjam da ti tu materiju poznaješ, tehnički podaci te
vrste su stvar koju i očekujem da znaš. To što moje znanje nije up-to-date
u oblasti kojom se ne bavim već par godina ja ne smatram manom, a to što se
ti hvataš za takve stvari govori o tebi. U originalnoj poruci sam se i
ogradio od toga da je to 100% tako, i to si mogao da vidiš da te je
zanimalo išta više od malo mesa za pomenutu kros repliku.
Smisao moje poruke je otprilike u tome da si replicirao ne zbog toga da
bi odgovorio na moju poruku, već... (piše u originalu).
jezici.113dejanr,
>> Smisao moje poruke je otprilike u tome da si replicirao ne zbog toga da
>> bi odgovorio na moju poruku, već... (piše u originalu).
Replicirao sam zato što si naveo stvar koja nije tačna.
jezici.114dragisha,
conf reply jezici.111
-> Mislio sam na domaće programe. Što se tiče "hibridnih sistema", to su
-> svakako specijalizovani jezici.
Za pojedine specifične poslove, da. Jezik napravljen po mjeri problema,
ako je taj dovoljno velik. Ako nije, rješava se 'običnim' jezikom.
-> Korišćenje u hibridnim sistemima? Prvi put čujem za to, kao i za
-> "hibridne" sisteme. Baš me interesuje kako to radi.
Svojevremeno je Anes Sadiković napravio Prolog interpreter kao dio
Modula2 biblioteke za potrebe jednog informacionog sistema. Taj projekat, o
kome bi više vjerovatno mogla da kaže Olja Kruševac (sada u IMP) je jedan
takav hibridni sistem. Imperativno/logički sistem:).
--
[If at 1st you don't succeed, call it Ver 1.0]
jezici.115dragisak,
> Taj projekat, o kome bi više vjerovatno mogla da kaže Olja
> Kruševac (sada u IMP) je jedan takav hibridni sistem.
Olja Marjanović - Kruševac ;) je dobila posao u Brizbejnu u Australiji.
Uskoro treba da otputuje.
jezici.116nbatocanin,
> -> Korišćenje u hibridnim sistemima? Prvi put čujem za to,
> -> kao i za "hibridne" sisteme. Baš me interesuje kako to
> -> radi.
>
> Svojevremeno je Anes Sadiković napravio Prolog interpreter
> kao dio Modula2 biblioteke za potrebe jednog informacionog
> sistema. Taj projekat, o kome bi više vjerovatno mogla da
> kaže Olja Kruševac (sada u IMP) je jedan takav hibridni
> sistem. Imperativno/logički sistem:).
Za ovaj metod sam naravno znao, ali ne pod ovim nazivom. No, to ne
objašnjava glavnu stvar (citiram tvoju prethodnu poruku):
> Tačno. Npr., lex i yacc (flex i bison) su alati koji se u
> svijetu prilično koriste upravo u hibridnim sistemima i
> služe upravo za stvari koje se "najlakše opisuju
> _programom_".
Lex i Yacc služe za specifikaciju i generisanje leksičkog i
sintaksnog analizatora. Zato, ne vidim kako se oni mogu koristiti *U*
hibridnim sistemima: valjda se mogu koristiti *ZA* pravljenje
hibridnih sistema? A što se tiče "stvari koje se najlakše opisuju
programom", naravno da nisam mislio na pisanje kompajlera ;) Bar ne
samo na to ;)
> Oni ujedno omogućavaju proširenje "glavnog" jezika bez povećavanja
> kompleksnosti istog (što se dešava Clipperu pri dodavanju komandi)
U čemu je razlika i kako se to ne povećava kompleksnost?
jezici.117dragisha,
-> Lex i Yacc služe za specifikaciju i generisanje leksičkog i
-> sintaksnog analizatora. Zato, ne vidim kako se oni mogu koristiti *U*
-> hibridnim sistemima: valjda se mogu koristiti *ZA* pravljenje
-> hibridnih sistema? A što se tiče "stvari koje se najlakše opisuju
-> programom", naravno da nisam mislio na pisanje kompajlera ;) Bar ne
-> samo na to ;)
Nije šija nego vrat. Pretpostavljam da pravac u kome si usmjerio ovu
repliku pokazuje zainteresovanost za diskusiju.:)
--
[I just don't get it.]
jezici.118nbatocanin,
> Nije šija nego vrat. Pretpostavljam da pravac u kome si
> usmjerio ovu repliku pokazuje zainteresovanost za
> diskusiju.:)
Ne razumem. Da te podsetim dela tvoje poruke:
> Tačno. Npr., lex i yacc (flex i bison) su alati koji se u
> svijetu prilično koriste upravo u hibridnim sistemima i
> služe upravo za stvari koje se "najlakše opisuju
> _programom_". Oni ujedno omogućavaju proširenje "glavnog"
> jezika bez povećavanja kompleksnosti istog (što se dešava
> Clipperu pri dodavanju komandi)
Lex i Yacc se mogu koristiti za proširivanje postojećeg jezika i tako
se mogu koristiti u "hibridnim" sistemima, ok. Ali, šta znači ostatak
rečenice: "... i služe upravo za stvari koje se najlakše opisuju
_programom_"? Ostatak (da omogućavaju proširenje jezika bez povećanja
kompleksnosti) mi nije jasan, a čini mi se da nije ni tačan.
jezici.119dragisha,
-> Lex i Yacc se mogu koristiti za proširivanje postojećeg jezika i tako
-> se mogu koristiti u "hibridnim" sistemima, ok. Ali, šta znači ostatak
-> rečenice: "... i služe upravo za stvari koje se najlakše opisuju
Pretpostavljam da ti je jasno da tačno znam za šta se koriste lex i yacc
tako da replika u kojoj mi to objašnjavaš nema praktičnog smisla. Za stvari
koje se najlakše opisuju jezikom, lex i yacc će poslužiti pri pravljenju
adekvatnog, specijalizovanog jezika koji će sigurno bolje odgovarati
problemu od nekog 'generalno specijalizovanog' jezika kakvim ti smatraš
Clipper sa ovim dodacima.
-> _programom_"? Ostatak (da omogućavaju proširenje jezika bez povećanja
-> kompleksnosti) mi nije jasan, a čini mi se da nije ni tačan.
Kad imaš kuću, pa dodaš sprat, ili izbaciš terasu dva metra više, ili
probaš da povećaš podrum, srešćeš se sa nekim problemima. Nešto je
projektovano kao cjelina, i kao takvo je stabilno. Svako proširenje
unosi rizik i zahtijeva veliku pažnju. Podrum nećeš dodati sa
#command/#translate. Kad sve sabereš, vjerovatno ćeš se odlučiti za neku
pomoćnu zgradu.
--
['Tomorrow' tends to come before we're ready ]
jezici.120nbatocanin,
> Pretpostavljam da ti je jasno da tačno znam za šta se
> koriste lex i yacc tako da replika u kojoj mi to
> objašnjavaš nema praktičnog smisla.
Mnogo si, bre, nezgodan sagovornik :) Otkud ja da znam šta ti znaš ;)
A da sam ti solio pamet, nisam, rekao sam samo jednu rečenicu o tome.
Što se mene tiče, svaka informacija je dobrodošla: šta imaju ostali
korisnici Sezama od ove rasprave ako se na kraju dođe do golog
zaključka: "Dragisha je bio u pravu, onaj Clipper je golo *" :) Ovako
će možda neko saznati neku korisnu informaciju.
> Za stvari koje se najlakše opisuju jezikom, lex i yacc će poslužiti
> pri pravljenju adekvatnog, specijalizovanog jezika koji će sigurno
> bolje odgovarati problemu od nekog 'generalno specijalizovanog'
> jezika kakvim ti smatraš Clipper sa ovim dodacima.
"Adekvatni specijalizovani jezik"? "Generalno specijalizovani"? Šta
ti je to? Ja smatram da je Clipper specijalizovani jezik za izradu
poslovnih aplikacija. Prvo, Lex i Yacc su samo alatke za pomoć u
pojedinim fazama izrade jezičkih procesora. Niti su jedini (mada su
najpoznatiji), niti garantuju da će rezultat biti bolji od "ručnih"
metoda (obično nije). Postoji još metoda koje se uopšte ne zasnivaju
na njihovom pristupu. Međutim, ako samo njih posmatramo, daleko od
toga da su oni dovoljni za izradu kvalitetnog kompajlera. Na primer,
konačni automat koji proizvodi Lex je daleko lošiji (po brzini) od
onog koji može napisati osrednji do dobar programer, i pored tehnika
kojima neki Lex-ovi optimizuju svoje automate. Teorijski gledano,
korisnik nema načina da odredi da li je njegov kompajler rađen
korišćenjem Lex & Yacc baterije ili je neki haker to pisao u
asembleru iz glave. Slična situacija je i sa Yacc-om. Koliko je meni
poznato, takvi alati se koriste u laboratorijama za eksperimente i
prve verzije raznih kompajlera. Teško će bilo koja komercijalna
verzija imati ikakve veze sa ovakvim alatkama. Ono što je glavno, to
je _SPECIFIKACIJA_ leksičkog i sintaksnog analizatora (naravno, ako
se na ovo gleda kao na osnovni posao u izradi kompajlera) i TO je ono
što čini jedan proizvod kvalitenim ili lošim. A za pisanje iste još
nije izmišljena automatska alatka. Uostalom, otkud si tako siguran da
Nantucket pri projektovanju Clipper-a 5.0 nije koristio baš Lex i Yacc
;)
U vezi sa ovim, sećam se jednog profesora koga nikad nije krasio
višak tolerancije kako je jednom napravio kalkulator izraza na
Pascal-u i kao zaključak rekao da je TO tako kratko i elegantno samo
zato što je to Pascal, a ne neki Basic. Onda se javio moj drug Đoka
Spectrum i objasnio mu da se TO što je on napisao u 100 linija u
Basicu piše:
INPUT "Unesite izraz:" x
PRINT x
> Kad imaš kuću, pa dodaš sprat, ili izbaciš terasu dva
> metra više, ili probaš da povećaš podrum, srešćeš se sa
> nekim problemima. Nešto je projektovano kao cjelina, i kao
> takvo je stabilno. Svako proširenje unosi rizik i
># zahtijeva veliku pažnju. Podrum nećeš dodati sa
># command/#translate. Kad sve sabereš, vjerovatno ćeš se
> odlučiti za neku pomoćnu zgradu.
Poređenje ti je odlično ;) Samo ima jedna mala sitnica: kad imaš
kuću, onda je ne diraš i ne drndaš po ceo dan, ne tražiš nove
verzije, a kompajler... U vezi te stabilnosti sam ti već rekao, ali
ti opet po starom: ideja primenjena u Clipper pretprocesoru je
strašno jednostavna, tako da ZAISTA ne vidim neke realne šanse da se
tu pojave neki problemi. Evo to radi već nekoliko godina i NIGDE
nisam čuo nikoga da ima ikakvih problema sa tim. Drugo, taj
pretprocesor nije napravljen za kreiranje novog jezika, čak ni za
kreiranje osnovnih kontrolnih konstrukcija, nego kao praktična alatka
koja će ti omogućiti da lakše koristiš biblioteke i sl. To je neka
nadgradnja C pretprocesora, a ne vidim da se neko buni zbog
postojanja pretprocesora u C-u?
jezici.121dragisha,
-> poslovnih aplikacija. Prvo, Lex i Yacc su samo alatke za pomoć u
-> pojedinim fazama izrade jezičkih procesora. Niti su jedini (mada su
-> najpoznatiji), niti garantuju da će rezultat biti bolji od "ručnih"
-> metoda (obično nije). Postoji još metoda koje se uopšte ne zasnivaju
Nisu jedini, niti je rezultat bolji, ali s obzirom na brzinu kojom završe
posao i (mnogo važnije) jednostavnost dorađivanja (u odnosu na ručne
metode) malo je značajna ta razlika u kvalitetu, koja je ionako sve manja
kako se ti alati razvijaju.
-> na njihovom pristupu. Međutim, ako samo njih posmatramo, daleko od
-> toga da su oni dovoljni za izradu kvalitetnog kompajlera. Na primer,
Bez obzira na ovo, u *nix svijetu postoji more jezika koji su napravljeni
upravo uz pomoć generatora. Međutim, ja nisam govorio o pravljenju
kompajlera, bar ne onoga što ta riječ bez dodatnih pojašnjenja implicira,
već o pokrivanju poslova "koji se najlakše definišu programom" u projektima
čiji se glavni dijelovi odrađuju u nekom klasičnom jeziku. Za takve stvari,
sintaksno upravljani Yacc parser je više nego dovoljan.
-> nije izmišljena automatska alatka. Uostalom, otkud si tako siguran da
-> Nantucket pri projektovanju Clipper-a 5.0 nije koristio baš Lex i Yacc
-> ;)
Iskreno, nije mi jasno kakve veze ima i da jeste i da nije?:) Pojenta
nije tu, već prije u tome da li treba opterećivati jezik (pogotovu
komercijalan, kako ti spomenu) mehanizmima koji treba da mu obezbijede
ekstenzibilnost.
--
[If dog.age >= OLD then num_tricks := max_tricks]
jezici.122dr.grba,
>> ...Svako proširenje
>> unosi rizik i zahtijeva veliku pažnju. Podrum nećeš dodati sa
>> # command/#translate. Kad sve sabereš, vjerovatno ćeš se odlučiti
>> za neku pomoćnu zgradu.
A šta ako je postojao prostor za podrum, pa je samo trebalo popločati pod
i okrečiti zidove? (:
jezici.123nbatocanin,
> > Međutim, ako samo njih posmatramo, daleko od toga da su oni dovoljni
> > za izradu kvalitetnog kompajlera.
>
> Bez obzira na ovo, u *nix svijetu postoji more jezika koji
> su napravljeni upravo uz pomoć generatora.
Da, to si u pravu. Doduše, to su uglavnom (koliko je meni poznato)
alatke kao što je AWK kod kojih performanse nisu toliko važne.
Borland i Microsoft bi se loše proveli kad bi pravili takve
proizvode.
> Međutim, ja nisam govorio o pravljenju kompajlera, bar ne onoga što
> ta riječ bez dodatnih pojašnjenja implicira, već o pokrivanju poslova
> "koji se najlakše definišu programom" u projektima čiji se glavni
> dijelovi odrađuju u nekom klasičnom jeziku. Za takve stvari,
> sintaksno upravljani Yacc parser je više nego dovoljan.
Dobro, sad smo već razjasnili stvari :) Ja sam dosta radio na
jezičkim procesorima, što po zadatku, što za svoj groš i to uglavnom
po principu koji ti opisuješ. Na primer, uradio sam pre nekoliko
godina pretprocesor za VAX FORTRAN koji mu dodaje naredbe za
kreiranje korisničkog interfejsa, radio sam procesor koji konvertuje
razne verzije FORTRAN programa, dodaje nove naredbe, konstruisao sam
mali programski jezik za kreiranje obrazovnih aplikacija, uradio sam
nekoliko generatora programa itd. Više puta sam pokušavao sa Lex
i Yacc alatima, ali u većini slučajeva _proširenja_ postojećih jezika
ispadalo je da dobitak nije značajan. Sad mogu da kažem da bi svi ti
poslovi bili bar prepolovljeni da su jezici koje sam "proširivao"
imali mogućnost nekog rudimentarnog proširivanja. A da su imali
#command, skoro da bih ostao bez posla ;) Ako malo detaljnije
pogledaš, #command je alatka funkcionalno vrlo slična Lex-u i Yacc-u:
specifikacija se zadaje pomoću modifikovane Bekusove notacije, čime
se reprogramira interni leksički analizator.
jezici.124v.nesic,
> Iskreno, nije mi jasno kakve veze ima i da jeste i da nije?:) Pojenta
> nije tu, već prije u tome da li treba opterećivati jezik (pogotovu
> komercijalan, kako ti spomenu) mehanizmima koji treba da mu obezbijede
> ekstenzibilnost.
Treba. Recimo ja nabavim neku biblioteku funkcija koja mi služi da
program radi pod Windowsima. Zašto bih se jebavao i pisao
WinPrint(x,y,text,boja,ovo,ono) kada mogu da uz pomoć
pretprocesora stavim jednostavno @ x,y print text ?
jezici.125dragisha,
-> Da, to si u pravu. Doduše, to su uglavnom (koliko je meni poznato)
-> alatke kao što je AWK kod kojih performanse nisu toliko važne.
-> Borland i Microsoft bi se loše proveli kad bi pravili takve
-> proizvode.
Performanse nisu važne za AWK??? Preći ću preko ovoga..:)
Što se tiče Borlanda i Microsofta.. Ovo dole su dvije verzije GNU diff-a,
iste verzije, donji je mejkovan Borland TurboC-om, gornji sa GNU C++, tj.
djgpp i u sebi sadrži i cca 6Kb stub fajla za GO32.
diff .exe 72196 10-28-92 0:01 c:\etc\
diff .exe 93063 10-07-92 18:00 c:\etc\rcs\
Toliko o alatima i o tome kako se 'provode' Borland i Micro,Soft.
-> #command, skoro da bih ostao bez posla ;) Ako malo detaljnije
-> pogledaš, #command je alatka funkcionalno vrlo slična Lex-u i Yacc-u:
-> specifikacija se zadaje pomoću modifikovane Bekusove notacije, čime
-> se reprogramira interni leksički analizator.
Interni _sintaksni_ analizator?
Jezik i konstrukti u njemu nisu samo sintaksa, kao što može da se učini.
--
[More than EVERYTHING is STILL not ENOUGH. ■]
jezici.126.ken.,
O.K.
Mislim da smo svi shvatili do sada da ne volis Clipper. I sta sad?
Nekada davno, davno ubedjen pricama iz nasih kom.casopisa (ono u
stilu - program nije program ako nije napisan u masincu) i ja sam se
ponasao isto tako (mada ne kazem da me to nije proslo ali...).
Danas se ipak nesto krece nabolje - danas tu slavnu teoriju o programiranju
( Program nije program ako nije napisan ........... - (ostatak stavite
sami prema zelji)) drzi C i njeni programeri, a sutra ce verovatno biti
nesto trece. I treba da je tako.
Elektronicar sam, ali silom prilika vecinu radnog vremena provedem za
racunarem koji nemaju bas mnogo veze sa mojom strukom i moje je iskustvo
sledece. Za rad na matematici koristim C, za rad sa bazama Clipper a za rad
sa grafikom ACAD i AutoLisp. Ali ja nisam programer, ja sam korisnik tih
programskih jezika. Mogu da napisem neke stvari koje su mi potrebne u radu,
ali nisam za neki ozbiljan projekat.
Mislim a i siguran sam da neki posten projekat (nazovi to i program ako hoces)
vrlo tesko moze uraditi jedan covek sam i pored svog alata koji moze da
poseduje. Ostaje nam da se udruzimo i da zivimo zajedno jer i ovako nam je
tesko i ne bi trebalo da se glodjemo :-)).
Mislim da Clipper nije nimalo los i mislim da to kod nas izmislise oni
ljudi koji rade na nekim velikim sistemima i mlate pare instaliravsi u nekim
firmama UNIX-e i XENIX-e i dizuci pare za gotovo svakodnevno 'odrzavanje'
softvera (kod mene u selu insalirase nesto tako na dva-tri racunara).
Za kraj jedna prica gde se nalazi istina:
Vekovno je pitanje ko je verniji bogu - crni ili beli popovi?
(objasnjenje - crni popovi su oni koji fizikalisu, rade na poljima, ribaju i
na taj nacin sluze bogu dok su beli popovi oni koji propovedaju veru i na taj
nacin sire bozansko ucenje).
Posto pitanje postoji treba naci i odgovor. Dogovore se oni da organizuju
neki test gde ce odrediti koje verniji bogu tako da dilema nestane.
Dogovor je sledeci - ne smeju pricati jer to je za bele popove prednost
i ne smeju se tuci jer su tu crni jaci.
Ostave oni jednog belog i jednog crnog popa u jednoj sobi pa sta bude.
sada dolazi pokazni deo ( ovde se mlatara rukama :-))) )
beli pop: izvadi iz svoje torbe jabuku i stavi je na sto
crni pop: izvadi iz svoje torbe hleb i stavi na sto
beli pop: pokaza kaziprstom na crnog popa
crni pop: pokaza njemu dva prsta (onako ko za dvojku)
beli pop: pokaza njemu tri prsta
crni pop: pokaza mu nesto ( objasnjenje - stavi levu ruku preko desne i
savi desnu u laktu)
Beli pop rece crnom da su crni popovi verniji bogu i da ide i da to kaze
svojima.
Beli pop dodje kod svojih i opisa duel:
- ja njemu izvadim Adamovu jabuku a on meni Hristov hleb nasusni (jaci je hleb)
- ja njemu Boziju opomenu a on meni Bozije postenje (jace je postenje)
- ja njemu Sveto Trojstvo a on meni bezgresno zacece (jace je zacece)
Crni pop dodje kod svojih i on isto opisa duel:
- on izvadi covek jabuku, ja rek'o on gladan pa ja izvadi 'leba.
- on meni da idem u mate*rinu a ja njemu da ide u dve.
- on meni rece da ide u tri a ja njemu me nece vise zafrkavati.
I na kraju gde je istina.
Svaki covek ima svoju istinu pa tako neko voli C a neko Clipper ali ko je
verniji svom poslu nikada necemo saznati.
jezici.127mdave,
■> Svaki covek ima svoju istinu pa tako neko voli C a neko Clipper ali
■> ko je verniji svom poslu nikada necemo saznati.
Ipak, svakog novog dana zeljno ocekujem duel dr vs nb. Samo
nastavite, pomno vas pratimo.
jezici.128nbatocanin,
> Performanse nisu važne za AWK??? Preći ću preko ovoga..:)
Hm, možda sam upotrebio prejak izraz... Što se mene tiče, ako posao
koji AWK jednom treba da uradi bude gotov za 1.5 ili 5 sekundi,
svejedno mi je.
> Što se tiče Borlanda i Microsofta..
E, najzad nešto da se složimo :) I ja isto mislim da MS pravi
neviđene brljotine u svojim softverskim (ne)delima. Za primer uzimam
svoj primer ;) : radio sam neki projekat na C-u i FORTRAN-u na VMS-u.
Sve je išlo glatko i bez komplikacija. Onda sam sve to (ogroman kod
od preko 50.000 linija) morao da prebacim na iRMX, Intelov operativni
sistem na kome su bagovi neviđeni. Na primer, postoji način da
regularno kreiraš datoteku sa nazivom "*" i onda kad hoćeš da je
izbrišćeš mahinalno otkucaš DEL * -- jedan moj prijatelj je ovo
isprobao ;)). Elem, kao i svaki dobar hardveraš, Intel pravi đubre od
softera. I kad sam već mislio da lošijeg kompajlera za FORTRAN i C
neću naći, stiže direktiva da sav taj softver prebacim na PC. Tamo
sam imao veliki izbor, ali sam uzeo MSC 5.1 i FORTRAN 4.?. Oba
proizvoda su bila daleko svežija nego odgovarajući programi na VMS-u
i iRMX-u. Ne treba da pričam da su se pokazali dvaput šareniji ;> i
triput lošiji od prva dva.
> vrlo slična Lex-u i Yacc-u: -> specifikacija se zadaje
> pomoću modifikovane Bekusove notacije, čime -> se
> reprogramira interni leksički analizator.
>
> Interni _sintaksni_ analizator?
>
> Jezik i konstrukti u njemu nisu samo sintaksa, kao što
> može da se učini. --
Govorimo o jednoj ograničenoj mogućnosti proširivanja: #command
"programira" leksički analizator ugrađen u pretprocesor, pa tako on
osim standardnih leksema SUM, REST, ... prepoznaje i one koje mu ja
definišem. Onda na osnovu sintaksih pravila (koja mu ja takođe
zadajem) daje izlaz koji se dalje normalno prevodi. Odnosno, taj
izlaz se ponovo rekurzivno analizira. Ne znam na šta tačno misliš?
jezici.129bojt,
>> Tamo sam imao veliki izbor, ali sam uzeo MSC 5.1 i FORTRAN
>> 4.?. Oba proizvoda su bila daleko svežija nego odgovarajući
>> programi na VMS-u i iRMX-u. Ne treba da pričam da su se
>> pokazali dvaput šareniji ;> i triput lošiji od prva dva.
MS Fortrani 4.* su bili maltene neupotrebljivi. Medjutim, MSF 5.0
(a kasnije i 5.1) je već druga priča i, prema mom iskustvu, to je
najbolji PC Fortran koji radi u realnom modu.
jezici.130kenza,
(;> Ipak, svakog novog dana zeljno ocekujem duel dr vs nb. Samo
(;> nastavite, pomno vas pratimo.
Jos kada bi jedan davao primere iz Jacc-a & Lex-a a drugi
iz Clipper-a, zacinjeno asemblerom, mogli bi kasnije da izdamo
knjigu :))
p.s.Salim se, ali pratim ;)
jezici.131nbatocanin,
> MS Fortrani 4.* su bili maltene neupotrebljivi. Medjutim,
> MSF 5.0 (a kasnije i 5.1) je već druga priča i, prema mom
> iskustvu, to je najbolji PC Fortran koji radi u realnom
> modu.
Da, o ovome smo već pričali - slažem se za 4.*, sa 5.* imam
nedovoljno iskustva. Od onih što sam tad video, najbolji je bio WatFor
(Watcom), koji je čak imao moćniji jezik od VMS FORTRAN-a.
jezici.132nbatocanin,
> Jos kada bi jedan davao primere iz Jacc-a & Lex-a a drugi
Yacc - Yet Another Compiler Compiler, kada se pojavio bilo je tušta i
tma sličnih prizvoda, pa ga je autor ovako nazvao (još jedan
kompajler kompajler).
jezici.133dragisha,
-> Treba. Recimo ja nabavim neku biblioteku funkcija koja mi služi da
-> program radi pod Windowsima. Zašto bih se jebavao i pisao
-> WinPrint(x,y,text,boja,ovo,ono) kada mogu da uz pomoć
-> pretprocesora stavim jednostavno @ x,y print text ?
Mehanizam koji omogućava takva skraćivanja je otkriven mnogo prije, ima
ga čak i Clipper:). Zove se OOP.
--
[Aunt Em.Hate Kansas.Hate you.Took dog.Dorothy]
jezici.134dragisha,
-> Mislim da smo svi shvatili do sada da ne volis Clipper. I sta sad?
Shvatili?! Odlično:)
-> I na kraju gde je istina.
Ti kao da si novi, nešto si nestrpljiv:). Poolako, tempo nam je baš
kakav treba zadnjih sedmica, pričamo u temi jezici (čitaj, taman gdje
treba) međusobno se prilično dobro podnosimo itt...
Osim toga, čemu istina? Jesi li ti čitao ono o čovjeku koji je znao
istinu? Nisi?
--
[Warning: Programmer at play]
jezici.135dragisha,
-> > Performanse nisu važne za AWK??? Preći ću preko ovoga..:)
->
-> Hm, možda sam upotrebio prejak izraz... Što se mene tiče, ako posao
-> koji AWK jednom treba da uradi bude gotov za 1.5 ili 5 sekundi,
-> svejedno mi je.
Pa da, sama priroda DOS-a ograničava broj (i frekvenciju) primjena
takvih alata. Na žalost. Međutim, rješenje postoji i zove se Unix.:)
-> > Što se tiče Borlanda i Microsofta..
->
-> E, najzad nešto da se složimo :) I ja isto mislim da MS pravi
Ma znao sam ja, samo treba istrajati u priči i naći ćemo se mi...:)))
-> > Jezik i konstrukti u njemu nisu samo sintaksa, kao što
-> > može da se učini. --
->
-> Govorimo o jednoj ograničenoj mogućnosti proširivanja: #command
-> "programira" leksički analizator ugrađen u pretprocesor, pa tako on
-> osim standardnih leksema SUM, REST, ... prepoznaje i one koje mu ja
-> definišem. Onda na osnovu sintaksih pravila (koja mu ja takođe
-> zadajem) daje izlaz koji se dalje normalno prevodi. Odnosno, taj
-> izlaz se ponovo rekurzivno analizira. Ne znam na šta tačno misliš?
Pretprocesor kakav ima kliper će dodati lekseme za leksički, pravila
za _sintaksni_ i preskočiće sve u semantičkom dijelu kompilacije. Jedna od
stvari koju pokušavam da kažem je da nešto što zanemaruje toliko značajnu
stvar kao što je semantički aspekt ne mogu da shvatim ozbiljno ni u
snu:).
UBR, ne sjećam se da sam ranije vidio riječ "ograničeno". Krećemo se:).
--
[They *blinded* me with Science!]
jezici.136djelovic,
> Yacc - Yet Another Compiler Compiler, kada se pojavio bilo je tušta i
> tma sličnih prizvoda, pa ga je autor ovako nazvao (još jedan
> kompajler kompajler).
BTW, YACC je samo najpoznatiji, ali nije i najbolji. Ja sam recimo
svojevremeno radio sa programom pod imenom LALR pomoću koga sam posao završavao
za duplo manje vremena nego YACC-om.
jezici.137bstevan,
>>> Reply to PC.PROG.3/jezici:42 (dragisha) <<<
-> Precijenio sam Clipper..:)
Nisi, iz tvojih diskusija-replika sticem utisak da si ga potcenio.
-> Sort modul sa ovim fazonom sam napravio prije 4 godine:))).
-> Indeksirane datoteke prije 3,5, "Browse" kakav spominješ prije 3.
-> Mnogo sam pametan ??
Ovim nisi ništa dokazao ima ljudi koji su to uradili pre tebe i
nisu smatrali da su MNOGO PAMETNI.
Dal iz ovoga zakljucuješ nešto ?
>>> Reply to PC.PROG.3/jezici:54 (dragisha) <<<
-> Šta da ti kažem na ovo ?:).Sam sam napravio obilje aplikacija koje
-> 98% drugih programera radi u Clipperu.
A, 2% u ostalim takozvanim tebi profesionalnim jezicima.
-> koristim AWK, pa nikad nisam rekao da programiram u njemu:)
Na ovo bi ti izvesni dpaun odgovorio, da ne programira vec piše
na uvce, i da se to nemože na tvojim profesionalnim jezicima jer
on piše programe naivno i onda mu se na kraju otkine da kaže da
je programer naivac.
>>> Reply to PC.PROG.3/razno:456 (dragisha) <<<
-> drugu sortu prosto ne registruješ,
To bi se na tebe moglo takodje odnositi.
-> Meni govori mnogo o alatu koji je to pravio.
A meni prvo o onom ko je koristio taj alat.
>>> Reply to PC.PROG.3/jezici:61 (dragisha) <<<
-> Važna je tehnika:)
Tu se slažemo.
>>> Reply to PC.PROG.3/jezici:62 (dragisha) <<<
-> Reklama za jedan takav alat uglavnom sadrži "ne morate više da
-> trošite pare na programere, da ih cekate i slicno, vec možete
-> sami da programirate (?!)".
I stvarno ih ne treba cekati, pa kad dodju instaliraju ti neki
program napisan na jednom od pomenutih profesionalnih jezika i
onda u velikoj žurbi pobegnu.
Ti ostaneš sam, kreneš kroz program a ono na jednom mestu nevalja
ovo na drugom ono i.t.d.
Reklamiraš njegov program (telefonom - zamisli dao tacan broj) na
pomenutom profesionalnom jeziku (C-u) i dobiješ odgovor da je
program pisan na profesionalnom jeziku i da mu treba vremena da to
sredi.
Ipak dodje dan X, on opet to sve instalira u žurbi sa izgovorom,
da sad to sve funkcioniše i da ima važan posao u firmi YYYYY, i
ode.
Kreneš opet sad konacno da uradiš i ti nešto korisno sa programom,
kad sad na mestima koji su prvi put radili OK sada PROBLEM.
Proverim dali je otklonio one probleme kad ono JESTE, ali šta sad
sa ovim novim ? Pa zna se telefon i cekanje. I da dalje neopisujem
pravo mucenje.
Evo je iz mog iskustva sa nekim aplikacijama pisanim na tim
profesionalnim jezicima.Tako da sam odlucio ako treba pisacu bolje
i na BASIC ali cu uraditi posao a ne da cekam.
>>> Reply to PC.PROG.3/jezici:70 (dragisha) <<<
-> Pod kefalom podrazumjevam sve ove kategorije.Nije programiranje
-> samo nizanje naredbi (što rece NB) vec ovo drugo prije svega.
Nije mislio bukvalno na nizanje naredbi, vec nizanje naredbi,
ali sa kefalom i stilom. Zar on to neradi ?
>>> Reply to PC.PROG.3/jezici:82 (dragisha) <<<
-> Pogrešno interpretirano.Moj stav je da jezici poput Module-2, C-a,
-> Pascala mogu da završe isto posao za isto ili manje vrijeme
-------------
Sad si ga preterao, znam coveka koji programira na C-u (baze),
nikad se nije hvalio da može brže i bolje da izvrši neke promene
na zahtev korisnika, od nekog ko to mora na Clipper-u, vec
naprotiv veruj da se hvalio kako je uspeo da napravi neke lepe
menie na C-u ili SHADOW.
A, što je još znacajnie, covek cepa C-jezik, ali kaže da sam znao
nikad nebi na C-u peogramirao baze.Ja mu verujem a ti ?
>>> Reply to PC.PROG.3/jezici:83 (dragisha) <<<
-> a ništa posebno u oblasti baze podataka, bar ne kad se Clipper
-> uzme kao uzorak.
E, ovde si se zatambo, sve se plašim da ceš u Modul-u ili C-u biti
produktivniji po pitanju rada sa bazama.
-> Razlog više sporoca istog.
Razmisli dali je to razlog, smatram da je kod tebe nešto drugo.
>>> Reply to PC.PROG.3/jezici:89 (dragisha) <<<
-> Naravno da se koriste biblioteke, a ovo za kocenje i velicinu ti
-> je bas osnovno:)))
Jeste, video sam C programe nakicene tim bibliotekama zamisli
program velikoprodaje pisan u C-u sa cirka EXE od 2715 Kb koji je
podeljen na šesnaest EXE fajla (2715/16).
Mogu zamisliti koliko tu ima linija.
P.S.: Držao sam se po strani ali mi puklo.
---BSTEVAN---
jezici.138ndragan,
/ softvera (kod mene u selu insalirase nesto tako na dva-tri racunara).
Podseti me samo, da se ne radi o firmi koja uporno prodaje juniks
sisteme sa konzolom i jednim terminalom (imam slučaj gde su se
instalirali na pola diska od 40M), a u tom juniksu/zeniksu piče kobol?
Samo kaži da ili ne, ako je da, znamo obojica ko je.
jezici.139bstevan,
>>> Reply to PC.PROG.3/jezici:119 (dragisha) <<<
-> Kad imaš kucu, pa dodaš sprat, ili izbaciš terasu dva metra
-> više, ili probaš da povecaš podrum, srešceš se sa nekim
-> problemima.
E, opet si se zatambo, sad ajde malo u gradjevinarce, baš ti
je poredjenje
-> Podrum neceš dodati sa #command/#translate.Kad sve sabereš,
-> vjerovatno ceš se odluciti za neku pomocnu zgradu.
Šta ovo treba da ti znaci ?
Predlažeš (nbatocaninu), da bi povecao podrum ili dodao,
da treba da pravi zbog toga pomocnu zgradu.
Nenade, ne slušaj ga vec radi kako to rade ljudi koji se
bave iskljucivo gradjevinarstvom.
>>> Reply to PC.PROG.3/jezici:134 (dragisha) <<<
-> Shvatili ?! Odlicno :)
Ja tako ne mislim, smatram da se kroz ove diskusije ipak
radja nešto u tebi pozitivno u odnosu na Clipper, da ne
navodim sad par cinjenica koje si potvrdio u korist Clippera.
---BSTEVAN---
jezici.140dr.grba,
>> Ipak, svakog novog dana zeljno ocekujem duel dr vs nb. Samo
>> nastavite, pomno vas pratimo.
Postalo je malo otužno...
jezici.141ficus,
:) -> WinPrint(x,y,text,boja,ovo,ono) kada mogu da uz pomoc
:) -> pretprocesora stavim jednostavno @ x,y print text ?
:)
:) Mehanizam koji omogucava takva skracivanja je otkriven mnogo prije, ima
:) ga cak i Clipper:). Zove se OOP.
:) --
Prvo sa oop-om nemozes da uradis nesto takvo
Drugo Clipper nema oop vec ima dodatne biblioteke koje su uradjene
upravo preko inkriminisanog pretprocesora.
Trece upravo taj efekat koj je trazen na pocetku postize se upravo tako
opet pretprocesorom.
jezici.142dragisha,
-> :) Mehanizam koji omogucava takva skracivanja je otkriven mnogo prije,
-> ima :) ga cak i Clipper:). Zove se OOP.
-> :) --
->
-> Prvo sa oop-om nemozes da uradis nesto takvo
-> Drugo Clipper nema oop vec ima dodatne biblioteke koje su uradjene
-> upravo preko inkriminisanog pretprocesora.
-> Trece upravo taj efekat koj je trazen na pocetku postize se upravo tako
-> opet pretprocesorom.
Nešto takvo ne mogu, niti bih ikada u životu takvo što napisao, ali taj
posao apstrakcije pojedinih stvari svakako mogu i to ću da radim.
Clipper nema objekte????????????
Šta je traženo na početku??
--
[NIGHT OF THE ZOMBIE MODEMS!]
jezici.143dragisha,
-> -> Kad imaš kucu, pa dodaš sprat, ili izbaciš terasu dva metra
-> -> više, ili probaš da povecaš podrum, srešceš se sa nekim
-> -> problemima.
->
-> E, opet si se zatambo, sad ajde malo u gradjevinarce, baš ti
-> je poredjenje
Ej momak, zatambao ti se tata:). Evidentno...
To što ti se poređenje ne dopada, tvoj je problem..:)
--
[GO MAVERICKS!! and please take the Rangers and Cowboys.]
jezici.144dragisha,
-> -> Sort modul sa ovim fazonom sam napravio prije 4 godine:))).
-> -> Indeksirane datoteke prije 3,5, "Browse" kakav spominješ prije 3.
-> -> Mnogo sam pametan ??
->
-> Ovim nisi ništa dokazao ima ljudi koji su to uradili pre tebe i
-> nisu smatrali da su MNOGO PAMETNI.
->
-> Dal iz ovoga zakljucuješ nešto ?
Momak, šaraj malo! Ne znam kuj ti je pa repliciraš na poruke stare po ko
zna koliko, i to na ovaj način. Neću da citiram ostalo biserje koje si
nanizao u ovim replikama, ali ovo gore si mogao da pročitaš do kraja pasusa
pa da pišeš, a ako se i tada odlučiš da repliciraš, da se potrudiš da to
što kažeš ima glavu i rep.
Vozdra!
--
[The paper is always strongest at the perforations.]
jezici.145nbatocanin,
> Pretprocesor kakav ima kliper će dodati lekseme za
> leksički, pravila za _sintaksni_ i preskočiće sve u
> semantičkom dijelu kompilacije. Jedna od stvari koju
> pokušavam da kažem je da nešto što zanemaruje toliko
> značajnu stvar kao što je semantički aspekt ne mogu da
> shvatim ozbiljno ni u snu:).
Kako preskače? Nove naredbe se definišu preko postojećih
konstrukcija, pa znači da se tako zadaje i njihova semantika. Prosto
i jednostavno.
> UBR, ne sjećam se da sam ranije vidio riječ "ograničeno".
> Krećemo se:). --
Nikad nisam ni izbliza tvrdio da je Clipper pretprocesor najmoćnija
stvar u svemiru i šire koja definiše nove programske jezike, čuva
decu i kuva kafu: radi se samo o lepo zamišljenoj i originalnoj
konstrukciji koja omogućava elegantno i efikasno proširivanje
Clipper-a novim naredbama. I naravno da je ograničena, ne znam šta je
tu čudno?
jezici.146mbole,
> čuva decu i kuva kafu: radi se samo o lepo zamišljenoj i
---------------------
E što mi ovo nedostaje, nemate pojma :))) A verujem i mnogim drugim :))
Biće valjda u CLIPPER rev 500.cdgf for babysiters %) (gledam "onako"
nakrivo)
jezici.147bstevan,
>>> Momak, šaraj malo ! Ne znam kuj ti je pa repliciraš na poruke
>>> stare po ko zna koliko, i to na ovaj naćin.
Pa ni tvoj naćin nije bio neki.
>>> Neću da citiram ostale biserje koje si nanizao u ovim replikama,
>>> ali ovo gore si mogao da pročitaš do kraja pasusa pa da pišeš,
>>> ako se i tada odlučiš da repliciraš, da se potrudiš da to što
>>> kažeš ima glavu i rep.
Opet preteruješ, gore pišeš zašto repliciram na stare poruke,
a ovde zašto sve to nema glavu i rep.
E, vidiš zato sam ti odgovarao i na stare poruke da to sve ima
neku celinu, kako ti kažeš glavu i rep.
Ti jednostavno ne možeš zamisliti da neko (ne)misli kao i ti.
Tu glavu i rep si spominjao da nema Clipper, a ja mislim
suprotno. U clipperu se tačno zna gde je glava a gde rep.
Isto tako C, Modula i ostali jezici imaju to, jel u suprotnom
mogu zamisliti kako bi se njima koristili.
I ko se toga ne drži normalno dolazi do haosa.Na kraju to je
osnovno da bi ti neki program ispravno radio.
---POZDRAV---
---BSTEVAN---
jezici.148mitar,
Zdravo !
Nadam se da vas ne prekidam, ali ja bih jedno pitanjce, posto poznavaoca ima
kolko volis.
Jedava nauci C, kad ono sve biblioteke pogotovu za korisnicki interfejs rade sa
onim drugim, C++. Dobro de pocnem ja da se batrgam i tim, i onda vidim da po
mom vidjenju stvari-ne zelim da otvaram diskusiju po ovom pitanju, je to jedan
sasvim drugi jezik, sa nekim svojim zavrzlamama, pravilima i tako to. Posto sam
ja covek ugodinama, a ovo vise radim iz hobija nego iz potrebe , bar za sada, i
videh neki "Svet Komjutera", sa opisom Smalltalk-a, interesuje me ima li to
ko,pre svega DOS-verziju, i kolko to "kosta".
RAJKO