PCPROG.3

26 Jul 1993 - 22 Apr 1994

Topics

  1. algoritmi (290)
  2. dizajn (19)
  3. ms.dos (270)
  4. windows (360)
  5. asembler (213)
  6. basic (10)
  7. jezici (148)
  8. pascal (878)
  9. cccc (554)
  10. cpp (195)
  11. clipper (1125)
  12. baze.podataka (232)
  13. razno (540)

Messages - jezici

jezici.1 bulaja,
**** 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.2 bulaja,
**** 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.3 bulaja,
**** 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.5 ivan.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.arj
jezici.6 mjova,
> 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.8 djelovic,
> 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.9 spantic,
> 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.10 prvul,
Ů 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.11 mjova,
> Ono beše zabranjen bio izvoz iz SAD iste? E pa, kanda nije > :) ma šta zabranjen ;)
jezici.12 bulaja,
│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.13 v.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.14 isekulovic,
>> Imaš ga u primerima za onaj prolog na a, valjda ariti ili tako nešto. Jel dotični PD ili SW?
jezici.15 nbatocanin,
> 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.16 niklaus,
> 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.17 niklaus,
>>> 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.18 dejanr,
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.20 broker,
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.21 broker,
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.22 zokalezic,
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.23 asterix,
> 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.24 bojt,
>> 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.25 niklaus,
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.26 spantic,
> 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.27 nbatocanin,
> 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.28 bojt,
>> 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.29 zokalezic,
> 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.30 bojt,
>> 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.31 jtitov,
Da li je vredno truda nabavljati Visual Basic 3.0+manual+nekih 10 disketa? :)
jezici.33 milos,
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.35 dr.grba,
>> Da li je vredno truda nabavljati Visual Basic 3.0+manual+nekih 10 >> disketa? Ja bih voleo da imam ovo.
jezici.36 oldtimer,
> Ja bih voleo da imam ovo. Nisi jedini :) B)Miša
jezici.37 goranr,
Da li neko zna za C kompajler koji proizvodi Z80 kod? ÔOPAH
jezici.38 v.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.39 mdave,
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.40 bulaja,
[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.zip
jezici.41 dragisha,
[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.42 dragisha,
[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.43 dragisha,
[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.44 nbatocanin,
> 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.45 nbatocanin,
> 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.46 dragisha,
-> 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.47 dragisha,
-> 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.48 nbatocanin,
> 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.49 nbatocanin,
> 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.51 dr.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.52 dr.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.53 dragisha,
-> > 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.54 dragisha,
-> 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.55 kenza,
(;> 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.56 nbatocanin,
> 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.57 nbatocanin,
> 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.58 dragisha,
-> 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.59 dragisha,
-> 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.60 kenza,
(;> 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.61 dragisha,
-> > 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.62 dragisha,
-> 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.63 goxx,
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.64 dejanr,
>> > 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.65 bojt,
>> 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.66 dejanr,
>> 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.67 fric,
> 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.68 dragisha,
-> (;> 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.69 dragisha,
-> 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.70 dragisha,
-> 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.71 nbatocanin,
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.72 nbatocanin,
> 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.73 mirche,
> Jesi li pogledao neki noviji COBOL? Ja sam se vrlo prijatno > iznenadio. Ditto! Videti pod: Visual Cobol (mbp) Mask editor...u Cobolu...eeej!!
jezici.74 dejanr,
>> 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.75 dejanr,
>> 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.76 fric,
> -> 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.77 bojt,
>> >> 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.78 ndragan,
/ 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.79 ndragan,
/ Š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.80 ndragan,
/ 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.81 dragisha,
-> 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.82 dragisha,
-> 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.83 dragisha,
-> > 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.84 dragisha,
-> >> 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.85 dragisha,
-> 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.86 bojt,
>> Teška numerika se i ne radi na PCu gdje god se ne mora. Jok i ne radi se.
jezici.87 dejanr,
>> 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.88 nbatocanin,
> 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.89 dragisha,
-> >> 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.90 dragisha,
-> >> 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.91 bojt,
>> >> >> 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.92 dejanr,
>> 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.94 dejanr,
>> > 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.95 peca.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.96 dejanr,
>> > 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.99 dragisha,
-> >> 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.100 dragisha,
-> 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.101 dejanr,
>> > 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.102 ficus,
:) 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.103 ficus,
:) 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.104 dragisha,
-> 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.105 dr.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.106 nikac,
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.107 fancy,
ŮŢ> 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.108 jovca.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.109 dr.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.110 fancy,
ŮŢ> 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.111 nbatocanin,
> 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.112 dragisha,
-> 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.113 dejanr,
>> 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.114 dragisha,
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.115 dragisak,
> 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.116 nbatocanin,
> -> 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.117 dragisha,
-> 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.118 nbatocanin,
> 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.119 dragisha,
-> 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.120 nbatocanin,
> 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.121 dragisha,
-> 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.122 dr.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.123 nbatocanin,
> > 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.124 v.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.125 dragisha,
-> 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.127 mdave,
■> 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.128 nbatocanin,
> 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.129 bojt,
>> 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.130 kenza,
(;> 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.131 nbatocanin,
> 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.132 nbatocanin,
> 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.133 dragisha,
-> 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.134 dragisha,
-> 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.135 dragisha,
-> > 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.136 djelovic,
> 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.137 bstevan,
>>> 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.138 ndragan,
/ 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.139 bstevan,
>>> 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.140 dr.grba,
>> Ipak, svakog novog dana zeljno ocekujem duel dr vs nb. Samo >> nastavite, pomno vas pratimo. Postalo je malo otužno...
jezici.141 ficus,
:) -> 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.142 dragisha,
-> :) 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.143 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 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.144 dragisha,
-> -> 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.145 nbatocanin,
> 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.146 mbole,
> č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.147 bstevan,
>>> 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.148 mitar,
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