kagelos Δημοσ. 19 Μαΐου 2010 Δημοσ. 19 Μαΐου 2010 ναι αλλα δεν ειναι απαραιτητο να γραψεις ολο τον κωδικα σε assembly . Απλα μπορεις να κανεις optimize τα βασικοτερα κομματια ( αυτα που θα τρεχουν πιο συχνα ) αρα και σε μεγαλα project αυτος ο κωδικας δεν ξεπερναει τις 100-200 γραμμες ( υποθετω ) Ο compiler έχει για παράδειγμα προγραμματισμένη λογική για την αλλαγή της σειράς των εντολών ώστε να γίνεται αποδοτικότερη χρήση του pipeline χωρίς φυσικά να αλλάζει η λογική του προγράμματος. Νομίζεις ότι μπορεί εύκολα να το κάνει άνθρωπος αυτό; Και αφού το κάνει, μπορεί αυτός ο κώδικας να συντηρηθεί; Δεν υπάρχει κανένα απολύτως κέρδος να γράφεις σήμερα προγράμματα για υπολογιστές σε assembly εκτός και αν δεν γίνεται αλλιώς.
kagelos Δημοσ. 19 Μαΐου 2010 Δημοσ. 19 Μαΐου 2010 ναι αλλα δεν ειναι απαραιτητο να γραψεις ολο τον κωδικα σε assembly . Απλα μπορεις να κανεις optimize τα βασικοτερα κομματια ( αυτα που θα τρεχουν πιο συχνα ) αρα και σε μεγαλα project αυτος ο κωδικας δεν ξεπερναει τις 100-200 γραμμες ( υποθετω ) Ο compiler έχει για παράδειγμα προγραμματισμένη λογική για την αλλαγή της σειράς των εντολών ώστε να γίνεται αποδοτικότερη χρήση του pipeline χωρίς φυσικά να αλλάζει η λογική του προγράμματος. Νομίζεις ότι μπορεί εύκολα να το κάνει άνθρωπος αυτό; Και αφού το κάνει, μπορεί αυτός ο κώδικας να συντηρηθεί; Δεν υπάρχει κανένα απολύτως κέρδος να γράφεις σήμερα προγράμματα για υπολογιστές σε assembly εκτός και αν δεν γίνεται αλλιώς.
thanos713 Δημοσ. 19 Μαΐου 2010 Δημοσ. 19 Μαΐου 2010 Ένας reverse engineer πώς θα δουλέψει χωρίς assembly?
thanos713 Δημοσ. 19 Μαΐου 2010 Δημοσ. 19 Μαΐου 2010 Ένας reverse engineer πώς θα δουλέψει χωρίς assembly?
kagelos Δημοσ. 19 Μαΐου 2010 Δημοσ. 19 Μαΐου 2010 Ο reverse engineer διαβάζει και καταλαβαίνει assembly (όπως και ένας προγραμματιστής που ξέρει assembly). Δεν είναι απαραίτητο να γράφει. Και ο hacker ξέρει assembly και γράφει shellcode και φτιάχνει το payload. Το θέμα αφορά εφαρμογές και επιλογή γλώσσας.
kagelos Δημοσ. 19 Μαΐου 2010 Δημοσ. 19 Μαΐου 2010 Ο reverse engineer διαβάζει και καταλαβαίνει assembly (όπως και ένας προγραμματιστής που ξέρει assembly). Δεν είναι απαραίτητο να γράφει. Και ο hacker ξέρει assembly και γράφει shellcode και φτιάχνει το payload. Το θέμα αφορά εφαρμογές και επιλογή γλώσσας.
axilleas Δημοσ. 19 Μαΐου 2010 Δημοσ. 19 Μαΐου 2010 μέσα σε συγκεκριμένα deadlines από τη στιγμή που θα παραληφθεί το input. Σωστό. Real time δεν σημαίνει ταχύτητα... Ένα σύστημα που σίγουρα θα αντιδράσει σε ένα μήνα είναι real time. Ένα σύστημα πού κατά 99,999% θα ανταποκριθεί σε 100μs δεν είναι.
axilleas Δημοσ. 19 Μαΐου 2010 Δημοσ. 19 Μαΐου 2010 μέσα σε συγκεκριμένα deadlines από τη στιγμή που θα παραληφθεί το input. Σωστό. Real time δεν σημαίνει ταχύτητα... Ένα σύστημα που σίγουρα θα αντιδράσει σε ένα μήνα είναι real time. Ένα σύστημα πού κατά 99,999% θα ανταποκριθεί σε 100μs δεν είναι.
geo1st487 Δημοσ. 19 Μαΐου 2010 Μέλος Δημοσ. 19 Μαΐου 2010 Σε ποια VB αναφέρεται ο ποιητής; 6? ή .ΝΕΤ 10? Δεν αναφέρει την εκδοση της VB. Εχει διαφορά; Ποια ειναι γρηγοροτερη απο τις δυο; Δεν μπορω να καταλαβω κατι. Εφοσον η VB και η VC++ παραγουν exe αρχεια τα οποια περιεχουν κωδικα μηχανης ο οποιος ειναι ταχυτατος διοτι μιλαει απευθειας στη γλωσσα του υπολογιστη πως γινεται οι εφαρμογες γραμμενες σε VC++ να τρεχουν γρηγοροτερα απο τις VB; Εκτος και αν η VC++ παραραγει αποδοτικοτερο κωδικα μηχανης απο την VB οποτε αυτο ειναι θεμα ικανοτητας compiler.
geo1st487 Δημοσ. 19 Μαΐου 2010 Μέλος Δημοσ. 19 Μαΐου 2010 Σε ποια VB αναφέρεται ο ποιητής; 6? ή .ΝΕΤ 10? Δεν αναφέρει την εκδοση της VB. Εχει διαφορά; Ποια ειναι γρηγοροτερη απο τις δυο; Δεν μπορω να καταλαβω κατι. Εφοσον η VB και η VC++ παραγουν exe αρχεια τα οποια περιεχουν κωδικα μηχανης ο οποιος ειναι ταχυτατος διοτι μιλαει απευθειας στη γλωσσα του υπολογιστη πως γινεται οι εφαρμογες γραμμενες σε VC++ να τρεχουν γρηγοροτερα απο τις VB; Εκτος και αν η VC++ παραραγει αποδοτικοτερο κωδικα μηχανης απο την VB οποτε αυτο ειναι θεμα ικανοτητας compiler.
kagelos Δημοσ. 19 Μαΐου 2010 Δημοσ. 19 Μαΐου 2010 Η παλιά VB είναι interpreted, το .exe που βγάζει δεν περιέχει κώδικα μηχανής. Η καινούρια επίσης δεν βγάζει άμεσα κώδικα μηχανής στο .exe. Αντί για αυτό, την ώρα που το τρέχεις γίνεται compile σε γλώσσα μηχανής και στην συνέχεια τρέχει (εξού και η αργεί εκκίνηση).
kagelos Δημοσ. 19 Μαΐου 2010 Δημοσ. 19 Μαΐου 2010 Η παλιά VB είναι interpreted, το .exe που βγάζει δεν περιέχει κώδικα μηχανής. Η καινούρια επίσης δεν βγάζει άμεσα κώδικα μηχανής στο .exe. Αντί για αυτό, την ώρα που το τρέχεις γίνεται compile σε γλώσσα μηχανής και στην συνέχεια τρέχει (εξού και η αργεί εκκίνηση).
V.I.Smirnov Δημοσ. 19 Μαΐου 2010 Δημοσ. 19 Μαΐου 2010 Δεν αναφέρει την εκδοση της VB. Εχει διαφορά; Ποια ειναι γρηγοροτερη απο τις δυο; Δεν μπορω να καταλαβω κατι. Εφοσον η VB και η VC++ παραγουν exe αρχεια τα οποια περιεχουν κωδικα μηχανης ο οποιος ειναι ταχυτατος διοτι μιλαει απευθειας στη γλωσσα του υπολογιστη πως γινεται οι εφαρμογες γραμμενες σε VC++ να τρεχουν γρηγοροτερα απο τις VB; Εκτος και αν η VC++ παραραγει αποδοτικοτερο κωδικα μηχανης απο την VB οποτε αυτο ειναι θεμα ικανοτητας compiler. Πρακτικά, real time εφαρμογές είναι αυτές που σου εξήγησα στην αρχή. Μια εφαρμογή που αποκρίνεται μετά από λεπτά, ώρες, μέρες κ.α. ΔΕΝ μπορεί να θεωρηθεί real time διότι απόκρισή της στον χρήστη δεν είναι άμεση. Τα υπόλοιπα επ' αυτού είναι αμπελλοφιλοσοφίες. Κάποιες γλώσσες παράγουν ταχύτερο κώδικα μηχανής από άλλες λόγω της αρχιτεκτονικής τους. Συνήθως αυτό αυτό είναι εις βάρος της φιλικότητας και της ευχρηστίας. Π.χ. όταν στην C++ σαρώνεις έναν πρωτογενώς ορισμένο πίνακα δεν ελέγχεται αν υπερβαίνεις τα όριά του. Έτσι κερδίζεις σε χρόνο αλλά ελλοχεύει ο κίνδυνος λάθους. Η Βasic είναι παραδοσιακά πολύ φιλικότερη σε τέτοια πράγματα εις βάρος της ταχύτητας βέβαια. Υπάρχουν πολλοί άλλοι ενδογενείς παράγοντες όπως η οργάνωση και προσπέλαση των δεδομένων, των συναρτήσεων κ.α. που επηρεάζουν τον παραγόμενο κώδικα. Σε αυτό παίζoυν ρόλο και οι βελτιστοποιήσεις που μπορεί να κάνει ο compiler. Υπάρχουν όμως και άλλες απαιτήσεις όπου δεν μπορεί να ανταποκριθεί η Basic. Π.χ. η παραλληλία είναι σήμερα "εκ των ων ουκ ανευ" για κάθε επιστημονική εφαρμογή λόγω των μεγάλων απαιτήσεων σε υπολογιστικό φορτίο. Οι εφαρμογές στην Basic δεν μπορούν να παραλληλιστούν αυτόματα σε αντίθεση με τη fotran και εν μέρη με τη C++. Oύτε υποστηρίζει openMP ή ΜPI. Και δεν ξέρω αν η Βasic παρέχει ευκολίες για προγραμματισμό σε χαμηλότερο επίπεδο όπως η C++. Xώρια που αν ο άνθρωπος γράφει επιστημονικό λογισμικό πιθανόν να χρησιμοποιεί βιβλιοθήκες που δεν υπάρχουν στην Basic ή/και δεν μπορούν να μεταγραφούν σ' αυτήν. Συνοπτικά : η βασική απαίτηση για μια real time εφαρμογή είναι η ταχύτητα επεξεργασίας ώστε να αποκρίνεται πρακτικώς άμεσα στον χρήστη. Σε αυτήν επιδρά ένα πλήθος παραγόντων. Οι παράγοντες αυτοί ελέγχονται περισσότερο στη C++ απ ότι στην Basic ενώ και η υποστήριξη από άποψη βοηθητικών μέσων (βιβλιοθήκες, εξειδικευμένο hardware κ.α.) είναι σημαντικά μεγαλύτερη στην C++ καθιστώντας την πιο κατάλληλη για ανάπτυξη σοβαρού λογισμικού.
V.I.Smirnov Δημοσ. 19 Μαΐου 2010 Δημοσ. 19 Μαΐου 2010 Δεν αναφέρει την εκδοση της VB. Εχει διαφορά; Ποια ειναι γρηγοροτερη απο τις δυο; Δεν μπορω να καταλαβω κατι. Εφοσον η VB και η VC++ παραγουν exe αρχεια τα οποια περιεχουν κωδικα μηχανης ο οποιος ειναι ταχυτατος διοτι μιλαει απευθειας στη γλωσσα του υπολογιστη πως γινεται οι εφαρμογες γραμμενες σε VC++ να τρεχουν γρηγοροτερα απο τις VB; Εκτος και αν η VC++ παραραγει αποδοτικοτερο κωδικα μηχανης απο την VB οποτε αυτο ειναι θεμα ικανοτητας compiler. Πρακτικά, real time εφαρμογές είναι αυτές που σου εξήγησα στην αρχή. Μια εφαρμογή που αποκρίνεται μετά από λεπτά, ώρες, μέρες κ.α. ΔΕΝ μπορεί να θεωρηθεί real time διότι απόκρισή της στον χρήστη δεν είναι άμεση. Τα υπόλοιπα επ' αυτού είναι αμπελλοφιλοσοφίες. Κάποιες γλώσσες παράγουν ταχύτερο κώδικα μηχανής από άλλες λόγω της αρχιτεκτονικής τους. Συνήθως αυτό αυτό είναι εις βάρος της φιλικότητας και της ευχρηστίας. Π.χ. όταν στην C++ σαρώνεις έναν πρωτογενώς ορισμένο πίνακα δεν ελέγχεται αν υπερβαίνεις τα όριά του. Έτσι κερδίζεις σε χρόνο αλλά ελλοχεύει ο κίνδυνος λάθους. Η Βasic είναι παραδοσιακά πολύ φιλικότερη σε τέτοια πράγματα εις βάρος της ταχύτητας βέβαια. Υπάρχουν πολλοί άλλοι ενδογενείς παράγοντες όπως η οργάνωση και προσπέλαση των δεδομένων, των συναρτήσεων κ.α. που επηρεάζουν τον παραγόμενο κώδικα. Σε αυτό παίζoυν ρόλο και οι βελτιστοποιήσεις που μπορεί να κάνει ο compiler. Υπάρχουν όμως και άλλες απαιτήσεις όπου δεν μπορεί να ανταποκριθεί η Basic. Π.χ. η παραλληλία είναι σήμερα "εκ των ων ουκ ανευ" για κάθε επιστημονική εφαρμογή λόγω των μεγάλων απαιτήσεων σε υπολογιστικό φορτίο. Οι εφαρμογές στην Basic δεν μπορούν να παραλληλιστούν αυτόματα σε αντίθεση με τη fotran και εν μέρη με τη C++. Oύτε υποστηρίζει openMP ή ΜPI. Και δεν ξέρω αν η Βasic παρέχει ευκολίες για προγραμματισμό σε χαμηλότερο επίπεδο όπως η C++. Xώρια που αν ο άνθρωπος γράφει επιστημονικό λογισμικό πιθανόν να χρησιμοποιεί βιβλιοθήκες που δεν υπάρχουν στην Basic ή/και δεν μπορούν να μεταγραφούν σ' αυτήν. Συνοπτικά : η βασική απαίτηση για μια real time εφαρμογή είναι η ταχύτητα επεξεργασίας ώστε να αποκρίνεται πρακτικώς άμεσα στον χρήστη. Σε αυτήν επιδρά ένα πλήθος παραγόντων. Οι παράγοντες αυτοί ελέγχονται περισσότερο στη C++ απ ότι στην Basic ενώ και η υποστήριξη από άποψη βοηθητικών μέσων (βιβλιοθήκες, εξειδικευμένο hardware κ.α.) είναι σημαντικά μεγαλύτερη στην C++ καθιστώντας την πιο κατάλληλη για ανάπτυξη σοβαρού λογισμικού.
cocoflop Δημοσ. 19 Μαΐου 2010 Δημοσ. 19 Μαΐου 2010 Τα υπόλοιπα επ' αυτού είναι αμπελλοφιλοσοφίες. Αυτό είναι σίγουρο! Για τον χρήστη είναι πραγματικός χρόνος, όμως για το πέρας κύκλου εκτέλεσης του λογισμικού είναι αιώνες (πόσα εκατομμύρια υπολογιστικά βήματα λαμβάνουν χώρα κάθε δευτερόλεπτο σε ένα σύστημα; Πάρα πολλά)
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.