Εμφάνιση 16-30 από 34
-
10-09-10, 00:43 Απάντηση: Γιατι η C είναι τόσο στριφνή; #16
-
10-09-10, 01:13 Απάντηση: Γιατι η C είναι τόσο στριφνή; #17
-
10-09-10, 01:15 Απάντηση: Γιατι η C είναι τόσο στριφνή; #18
- Εγγραφή
- 27-08-2004
- Περιοχή
- internet
- Μηνύματα
- 23.371
- Downloads
- 58
- Uploads
- 17
- Άρθρα
- 9
- Ταχύτητα
- 49999 / 4999
- ISP
- ΟΤΕ Conn-x
- DSLAM
- ΟΤΕ - ΚΟΥΝΟΥΠΙΔΙΑΝΩΝ
Μήπως στο κάνει addi και όχι add;
Gentoo Linux: mess with the best and you might learn something
δικτυακή παράσταση | twitter | within specifications
Αν φτάσω τα 100 και με ρωτήσουν το μυστικό της μακροζωίας θα πω: Πάντα είχα 3 ποτήρια μπροστά μου· ένα με νερό, ένα με καφέ & ένα με αλκοόλ.
-
10-09-10, 01:18 Απάντηση: Γιατι η C είναι τόσο στριφνή; #19
-
10-09-10, 09:07 Απάντηση: Γιατι η C είναι τόσο στριφνή; #20
8μπιτος μικροελενκτής risc PIC18F1320:
Κώδικας:101: static unsigned char xx; 102: xx = 7; 0A28 0100 MOVLB 0 0A2A 0E07 MOVLW 0x7 0A2C 6F43 MOVWF 0x43, BANKED 103: xx++; 0A2E 2B43 INCF 0x43, F, BANKED
0x43 ή θέση που αποφάσισε ο linker να τοποθετήσει το xx.
Στους AVR (Atmel) ακόμα και η ανάθεση τιμής, είναι 1 εντολή.
-
10-09-10, 12:22 Απάντηση: Γιατι η C είναι τόσο στριφνή; #21
Στους PIC (18F8520 π.χ.) ο πολλαπλασιασμός γίνεται σε ένα κύκλο με εξωτερικό κύκλωμα.
Γενικότερα στην ARM αρχιτεκτονική, πολλά γίνονται σε μία εντολή. Το Wikipedia έχει ένα πάρα πολύ καλό παράδειγμα.
Παρόλα αυτά, συνήθως αυτές οι εντολές σε assembly που φαίνονται σαν μια και κάνουν 2-3 πράγματα, είναι στην ουσία μικροκώδικας, δηλαδή software που τρέχει μέσα στο CPU και όχι πραγματικές hard coded εντολές. Βέβαια όπως ανέφερα για τον PIC, οι embedded επεξεργαστές έχουν ξεχωριστά κυκλώματα για πολλά πράγματα και δεν είναι απίθανο να έχουν πολύπλοκες εντολές.
@bxenos Μου φαίνεται δύσκολο να μπορεί να αλλάξει μια τιμή στη RAM χωρίς να την φέρει σε register. Αν μπορείς διαφώτισέ μας λίγο . Τι κάνουν οι εντολές ακριβώς; Μήπως το προηγούμενο MOVWF 0x43, BANKED, είναι το αντίστοιχο mov που παρέθεσα και εγώ; Εννοείται πως αν η τιμή βρίσκεται ήδη σε έναν register, η αύξηση μια εντολή είναι. Απλά ολόκληρη η διαδικασία δεν είναι μια εντολή.Τελευταία επεξεργασία από το μέλος karnage : 10-09-10 στις 12:27.
-
10-09-10, 12:43 Απάντηση: Γιατι η C είναι τόσο στριφνή; #22
Πώς από το θέμα για τη σύνταξη της C πήγαμε στη γλώσσα μηχανής;
To forum έχει χρήστες. Το forum είναι οι Χρήστες...
-
10-09-10, 15:58 Απάντηση: Γιατι η C είναι τόσο στριφνή; #23
Σε τεχνολογίες risc όπου έχουμε πολλούς registers (κάτι σαν ενσωματωμένη static ram), οι μεταβλητές auto ή register μιας συνάρτησης αποθηκεύονται σε registers και όχι στην αργή dynamic ram. Υπάρχουν εντολές άμεσης εκτέλεσης πράξεων με registers χωρίς παρέμβαση φόρτωσης σε ενδιάμεσο καταχωρητή (αφού είναι σε καταχωρητή).
O πολλαπλασιασμός στην σειρά PIC18 είναι 16bit και γίνεται με άλλο κύκλωμα, περίπου όπως γινόταν και με τους μαθηματικούς συνεπεξεργαστές (θυμόσαστε τους 8087; ).
Στα cisc μοντέλα, οι registers έχουν συγκεκριμένες εργασίες και σπάνια μπορούν να αποδοθούν για άλλες χρήσεις, οπότε δεδομένου της μεγάλης διαφοράς ταχύτητας μεταξύ Dynamic RAM και Register, χρειάζεται η μεταφορά σε register πριν τις πράξεις.
Το MOVLB επιλέγει το bank της μνήμης (υπάρχουν 2 ή περισσότερα bank καταχωρητών ανάλογα με το τσιπάκι).
Το MOVLW βάζει μια σταθερά, στον καταχωρητή W (accumulator ή WORK register).
Η MOVW(ork)F(ile) 43 BANKED μεταφέρει το περιεχόμενο του καταχωρητή Work (δηλαδή το 7 - αρχική τιμή για το xx) στον register (File) στη θέση 43 και στο segment που δείχνει το BANK flag. Είναι τμήμα της απόδοσης αρχικής τιμής που ο PIC δεν μπορεί να κάνει απευθείας απόδοση σταθεράς σε register (εδώ ο πυρήνας των PIC είναι λιγότερο αποδοτικός απο τον πυρήνα των AVR).
Μπορεί όμως να κάνει απευθείας απόδοση αποτελέσματος πράξης σε register.
H INC 43 αυξάνει κατα 1 το περιεχόμενο του register της θέσης 43 σε 1 κύκλο ρολογιού.
........Auto merged post: bxenos πρόσθεσε 3 λεπτά και 52 δευτερόλεπτα αργότερα ........
η c σχεδιάστηκε πριν πολλάααα χρόνια για να είναι κοντά στην assembly (όχι γλώσσα μηχανής) και γι'αυτό έχει τόσο λητή σύνταξη και υποστήριξη περιφερειακών. Οι πολυπλοκότητες που μπορούν να γίνουν στις παραστάσεις της, μπορούν να βοηθήσουν τον optimizer να φτιάξει αποδοτικότερο κώδικα αν ο προγραμματιστής ξέρει τι κάνει (άσχετα αν στην συντριπτική πλειοψηφία των εφαρμογών αυτό είναι άσχετο).
Γι'αυτο υπάρχει η αντίληψη ότι είναι απαραίτητη για λειτουργικά συστήματα αλλά είναι τροχοπέδη για σύγχρονες GUI εφαρμογές.Τελευταία επεξεργασία από το μέλος bxenos : 10-09-10 στις 16:04. Αιτία: auto merged post
-
10-09-10, 16:22 Απάντηση: Γιατι η C είναι τόσο στριφνή; #24
δεν είναι η C στριφνή. Οι "δήθεν" προγραμματιστές δεν είναι επαρκείς, ή ο κώδικας που πρέπει να αναλάβουν δεν είναι καλοφτιαγμένος και με το σχετικό documentation (πχ βλ literate programming) ή και τα δύο (που ειναι το πιο σύνηθες).
Θα μπορούσαμε να παραθεσουμε κώδικα σχεδόν απο όλες τις γλώσσες, και για τον αδαή ή τον νουμπά να φαίνεται ιδιαίτερα στριφνό, οχι για τον πραγματικό γνώστη όμως....
Που να δείς κώδικα σε perl! Η΄σε καποιο αλλη προγραμματιστική μορφή (πχ LISP, Prolog, Haskell) κλπ, ή προγραμματισμό σε κάποια γλώσσα εξειδικευμένη σε κάποιο αντικείμενο (πχ R για στατιστική, Mathematica και πάει λέγοντας).
QoS: Τι είναι τούτο το πράγμα; Ευρυζωνικά: Μύθοι και πραγματικότητα Οδηγίες Εγκατάστασης Oracle 10G σε Linux (RHEL4)Περι αλόγιστης χρήσης Ιντερνετ
Ikariam.gr anon@AnonCity Guzoos@76:12
-
10-09-10, 17:17 Απάντηση: Γιατι η C είναι τόσο στριφνή; #25
Λιγο ασχετο, αλλα γιατι η ms δεν γραφει ολο το λειτουργικο σε c++ , αν οχι ολο, τουλαχιστον το gdi και άλλα api που εχουν ζητηση;
-
10-09-10, 17:44 Απάντηση: Γιατι η C είναι τόσο στριφνή; #26
Δεν ξέρω κανένα λειτουργικό γραμμένο σε C++. Αν είναι να χάσεις το πλεονέκτημα της C (low-level) γιατί να πας σε C++; Καλύτερα C#.
Τώρα τα API σίγουρα θα μπορούσαν να είναι σε μια OO μορφή όπως τόσα άλλα frameworks (Qt, .Net, JDK κλπ.). Το DirectX π.χ. είναι OO.
-
10-09-10, 17:52 Απάντηση: Γιατι η C είναι τόσο στριφνή; #27
Και η c++ εχει το πλεονεκτημα του ll. Μεχρι και mixed code με asm υποστηριζει.
Τεσπα, απλος αυτη τη περιοδο μελεταω το gdi (Win32), και αποτι βλεπω ειναι πολυ δυσκολο να το συνδυασεις με c++ και κυριος με την stl .
Edit: [
Βασικα τωρα που το σκεφτομαι, για windows ειναι λιγο δυσκολο εφοσον θα πρεπει να ξεπερασει τον NT κατι που δεν ειναι και τοσο καλο-πρακτικο.
Να αλλαξω λιγο το ερωτημα.
Γιατι δεν κανουν ενα remake τον linux kernel σε c++ ; ]Τελευταία επεξεργασία από το μέλος Παπι : 10-09-10 στις 17:58.
-
10-09-10, 18:09 Απάντηση: Γιατι η C είναι τόσο στριφνή; #28
Παπί όπως έχεις παρατηρήσει και εσυ με το sort, η C++ βγάζει κώδικα εκεί που δεν το περιμένεις, οπότε θέλει αρκετή εμπειρία να αξιοποιήσεις ταχύτητες C σε C++. Οπότε καλύτερα C αν απαιτείται μέγιστη ταχύτητα, αλλιώς μια C# είναι ότι πρέπει, οπως είπε και ο karnage.
Το gdi/sdk για να γίνει OO θέλει ένα layer απομόνωσης (κάτι σαν το χαζο MFC) και μετά παίζει μια χαρά και με STL.
Θα πρέπει δυστυχώς να συμφωνήσω και με τον anon, για τον κώδικα μια χρήσης (χωρίς documentation και χάλια γραμμένο) που κυκλοφορεί σε "επαγγελματικό" λογισμικό κατά κόρον...
Τι να γίνει όμως που το όραμα της παιδείας στη χώρα μας (όπως το βλέπουν οι τελευταίες υπουργ-χέσες) είναι ένα word και ένα excel, άντε και ένα google.
-
10-09-10, 18:26 Απάντηση: Γιατι η C είναι τόσο στριφνή; #29
Ε καλα.. αυτο με το documentations ειναι σε ολα τα επιπεδα.
πχ
scanf
που μπορεις να δεις οτι εχει αυτη τη δυνατοτητα;
scanf("%[^\n]s",str) ;
Οσο για το win api.... ΑΠΑΡΑΔΕΚΤΟ
Και να μπω Ontopic. TS που να δεις και το καινουριο standar της c++
κατι τετοια πραματα
Κώδικας:int c=0; auto f = [&c](int& i)->bool { if(i<c) { i = 1; return true; } return false };
Τελευταία επεξεργασία από το μέλος Παπι : 10-09-10 στις 18:38.
-
11-09-10, 22:50 Απάντηση: Γιατι η C είναι τόσο στριφνή; #30
Απορώ γιατί κανείς δεν είπε το εξής. Αυτός ο τρόπος σου γλιτώνει typing όταν έχεις μεγάλα ονόματα μεταβλητών. Βέβαια πρέπει να έχεις συνηθίσει στο να διαβάζεις με τέτοιο στυλ και να μην το παρακάνεις. Φαντάσου αν κάθε μεταβλητή στο παράδειγμα σου αποτελούνταν από τέσσερα γράμματα και όχι από ένα και ήθελες να γράψεις τις ίδιες εντολές με τον άλλο τρόπο χωρίς σύμπτυξη. Πρώτον, θα έκανες πολύ περισσότερη ώρα και δεύτερο θα διαβαζόταν πιο δύσκολα ο κώδικας καθώς ίσως να έπιανε 2 σειρές η εντολή.
Κάνω προσπάθεια να βάζω ; αντι για ?
Παρόμοια Θέματα
-
Γιατι ρε Forthnet τέτοιο Call Center? Τοσο δύσκολο είναι?
Από power στο φόρουμ NovaΜηνύματα: 126Τελευταίο Μήνυμα: 13-02-08, 11:47 -
Γιατί τα double layer DVD είναι τόσο ακριβά;
Από Undertow στο φόρουμ Σκληροί δίσκοι, αποθηκευτικά μέσα και λοιπά περιφερειακάΜηνύματα: 21Τελευταίο Μήνυμα: 28-12-06, 11:09 -
Γιατί οι εξωτερικοί σκληροί είναι τόσο ακριβοί?
Από bodom στο φόρουμ Σκληροί δίσκοι, αποθηκευτικά μέσα και λοιπά περιφερειακάΜηνύματα: 11Τελευταίο Μήνυμα: 09-02-06, 03:29 -
Γιατι το Gnome ειναι τοσο αργο???
Από TheCondor στο φόρουμ Unix - LinuxΜηνύματα: 10Τελευταίο Μήνυμα: 18-02-05, 00:30 -
Κάρτες γραφικών περασμένης γενιάς -- Γιατί είναι ακόμα τόσο ακριβές;
Από John_Nastos στο φόρουμ Κάρτες ήχου, γραφικών, ηχεία και οθόνεςΜηνύματα: 16Τελευταίο Μήνυμα: 07-02-05, 01:10
Bookmarks