Προς το περιεχόμενο
  • Εγγραφή
  • 0

Ιδέες για project σε C


gon1332

Ερώτηση

Καλησπέρα σας,

 

ανοίγω αυτό το thread για να μην spoil-άρουμε άλλο το thread "Tutorials σε Pointers". Είχε αναφέρει κάτι ο Star_Light για κάποιο project, τελείως αφηρημένα. Κι εγώ χρόνο πολύ δεν έχω, αλλά φάση θα είχε να συζητηθεί.

 

Στο τέλος κάτι είχε πει ο migf1 για βιβλιοθήκη strings. Είχα ξεκινήσει κι εγώ κάτι τέτοιο, αλλά το παράτησα λόγω χρόνου και μετά το ξέχασα. Μία συναρτησούλα τη βδομάδα θα μπορούσαμε να γράψουμε ο καθένας (και δύο και τρεις). :P

 

feedback......

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • Απαντήσεις 138
  • Δημιουργία
  • Τελευταία απάντηση

Συχνή συμμετοχή στην ερώτηση

Συχνή συμμετοχή στην ερώτηση

Δημοφιλή Μηνύματα

χμμ.. πλάκα θα είχε κάτι τέτοιας λογικής.. για τα απλά πράγματα που αναφερόντουσαν πάνω στο προηγούμενο θέμα άλλη μια ιδέα είναι να φτιάξουμε μια δικιά μας γλώσσα (ή τουλάχιστον παραλλαγή υπάρχουσας μ

Λοιπόν μέχρι τώρα έχουν ακουστεί μερικές πολύ ενδιαφέρουσες ιδέες (εγώ τουλάχιστον θα ήμουν διατεθειμένος να συμμετάσχω στις μισές), και είμαι σίγουρος ότι υπάρχουν άλλες τόσες, εξίσου καλές (παιδιά,

Η ανάπτυξη μιας μίνι γλώσσας είναι πολύ καλή ως εκπαιδευτική εμπειρία, αλλά πιστεύετε ότι θα έχει κάποια άλλη χρησιμότητα πέρα από την ακαδημαϊκή;   Εγώ θα προτιμούσα αν είναι να κάνουμε κάτι, να μ

Δημοσιευμένες Εικόνες

Προτεινόμενες αναρτήσεις

  • 0

χμμ.. πλάκα θα είχε κάτι τέτοιας λογικής.. για τα απλά πράγματα που αναφερόντουσαν πάνω στο προηγούμενο θέμα άλλη μια ιδέα είναι να φτιάξουμε μια δικιά μας γλώσσα (ή τουλάχιστον παραλλαγή υπάρχουσας με αντιστοίχηση και μάλιστα στην ελληνική γλώσσα!) και εννοείται & compiler - interpreter.

  • Like 4
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

χμμ.. πλάκα θα είχε κάτι τέτοιας λογικής.. για τα απλά πράγματα που αναφερόντουσαν πάνω στο προηγούμενο θέμα άλλη μια ιδέα είναι να φτιάξουμε μια δικιά μας γλώσσα (ή τουλάχιστον παραλλαγή υπάρχουσας με αντιστοίχηση και μάλιστα στην ελληνική γλώσσα!) και εννοείται & compiler - interpreter.

 

Μόλις "ολοκλήρωσα" μία C engine για αυτό, οπότε, με έτοιμο BNF, έχουμε έτοιμο LALR(1) για όποιον ενδιαφέρεται!

 

(Όχι optimal, ούτε ...readable :D αλλά πάντως functional!)

  • Like 1
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Μόλις "ολοκλήρωσα" μία C engine για αυτό, οπότε, με έτοιμο BNF, έχουμε έτοιμο LALR(1) για όποιον ενδιαφέρεται!

 

(Όχι optimal, ούτε ...readable :D αλλά πάντως functional!)

ναι αλλά η σημασιολογία της γλώσσας είναι άλλο θέμα, το parsing είναι από τα απλά κομμάτια...   :P ίσως και πάλι ξεφεύγει από τον τίτλο αυτή η ιδέα..

 

άλλη ιδέα (από διαφήμιση) βάση και στατιστική πρόβλεψη - γνωσιακή βάση για Οπάπ (στοίχημα τώρα που υπάρχει πια ίσως και άλλα τυχερά παιχνίδια) και στατιστικά επιτυχίας. 

 

Υ.Γ.: δεν με νοιάζει το σκεπτικό του κέρδους αλλά η μεγιστοποίηση της πρόβλεψης χωρίς να λάβεις υπ' όψιν το άθλημα (είναι ο βασικός συντελεστής αλλά είμαστε προγραμματιστές :P)

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

ναι αλλά η σημασιολογία της γλώσσας είναι άλλο θέμα, το parsing είναι από τα απλά κομμάτια...   :P ίσως και πάλι ξεφεύγει από τον τίτλο αυτή η ιδέα..

 

Δεν λέω να φτιάξουμε τον parser, λέω ότι, στα πλαίσια του contribution, τον έχω έτοιμο για να προχωρήσουμε παρακάτω, στο ενδιαφέρον κομμάτι.

Έπειτα, το δυσκολότερο για μένα πάντα ήταν ο σχεδιασμός της γλώσσας. Να καταλήξεις στα semantics και τη σύνταξη. Από εκεί και πέρα, και έχοντας έτοιμα τα trivial, "παίζεις" πιο καλά.

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

 

Δεν λέω να φτιάξουμε τον parser, λέω ότι τον έχω έτοιμο για να προχωρήσουμε παρακάτω, στο ενδιαφέρον κομμάτι.

Έπειτα, το δυσκολότερο για μένα πάντα ήταν ο σχεδιασμός της γλώσσας. Να καταλήξεις στα semantics και τη σύνταξη. Από εκεί και πέρα, και έχοντας έτοιμα τα trivial, "παίζεις" πιο καλά.

 

Εντάξει το parsing είναι τετριμένο. Πιθανόν να πάρουμε κάποια έτοιμη γλώσσα και να παράγουμε κωδικά της, το χαμηλότερο επίπεδο δεν γίνεται αποδοτικό.. απλά μπορούμε να έχουμε λίγο πιο αφηρημένες έννοιες και άλλη δόμηση.

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Έχω ήδη δύο project το καλοκαίρι για compilers. To ένα FLEX/BISON και το άλλο σε LLVM. Μάλλον θα μπουκώσω και με τρίτο. :P

χμμ.. πλάκα θα είχε κάτι τέτοιας λογικής.. για τα απλά πράγματα που αναφερόντουσαν πάνω στο προηγούμενο θέμα άλλη μια ιδέα είναι να φτιάξουμε μια δικιά μας γλώσσα (ή τουλάχιστον παραλλαγή υπάρχουσας με αντιστοίχηση και μάλιστα στην ελληνική γλώσσα!) και εννοείται & compiler - interpreter.

Αυτό με την ελληνική γλώσσα κράτα το. Μου άρεσε. Θα μπορούσαμε να το πλασάρουμε σαν εκπαιδευτικό. Πως είναι η ΓΛΩΣΣΟΜΑΘΕΙΑ; Θα μπορούσαμε να την κάνουμε την γλώσσα να πλησιάζει τη C σε συντακτικό για να συνηθίζει κανείς. Θα έβρισκα λίγο χρόνο για κάτι τέτοιο.

 

Μόλις "ολοκλήρωσα" μία C engine για αυτό, οπότε, με έτοιμο BNF, έχουμε έτοιμο LALR(1) για όποιον ενδιαφέρεται!

 

(Όχι optimal, ούτε ...readable :D αλλά πάντως functional!)

 

Πρώτη φορά ακούω για το GOLD. Μπορείς να κάνεις μία συνοπτική σύγκριση με το Bison; Με μία γρήγορη ματιά είδα πως δεν έχει για Linux.

  • Like 2
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Βασικά αυτό που μπορείτε να κάνετε ειναι να φτιάξετε ενα rad tool για ένα domain που σας αρέσει και το οποίο θα παράγει c κώδικα. 

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Πρώτη φορά ακούω για το GOLD. Μπορείς να κάνεις μία συνοπτική σύγκριση με το Bison; Με μία γρήγορη ματιά είδα πως δεν έχει για Linux.

 

Ναι, δεν έχει για Linux... :( Αν και ο τύπος έχει υποσχεθεί χρόνια τώρα ότι θα το κάνει port.

Εγώ κατάφερα να τρέξω μία παλιά έκδοση που είχα στο συρτάρι πάνω σε wine και με αυτήν δουλεύω (η τελευταία .NET δεν τρέχει με τίποτα!).

 

Bison δεν ξέρω, για να μπορώ να συγκρίνω.

 

Για το GOLD, επί τροχάδην, δέχεται BNF-like σύνταξη και παράγει αρχεία (.cgt) που περιέχουν τα tables για symbols, rules, DFA states και LALR states. Εσύ μετά χρησιμοποιείς μία engine στη γλώσσα που σ' ενδιαφέρει (υπάρχουν διάφορες υλοποιήσεις) για να φορτώσεις το .cgt στον compiler σου. Και έχεις έναν έτοιμο LALR. Από κεί και πέρα, είναι δική σου δουλειά πως θα αξιοποιήσεις τα reductions για να κάνεις compile/interprete/κάτι-άλλο.

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Η ανάπτυξη μιας μίνι γλώσσας είναι πολύ καλή ως εκπαιδευτική εμπειρία, αλλά πιστεύετε ότι θα έχει κάποια άλλη χρησιμότητα πέρα από την ακαδημαϊκή;

 

Εγώ θα προτιμούσα αν είναι να κάνουμε κάτι, να μας είναι και χρήσιμο μελλοντικά (ιδανικά να φανεί χρήσιμο και σε άλλους). Για αυτό πρότεινα κάποιου είδους βιβλιοθήκη. Π.χ. ένα high-level API για δομές (ας πούμε κάτι σε στυλ GLib, GDSL, qLibc κλπ).

 

Έχει πολύ ψωμί κάτι τέτοιο, και νομίζω συνδυάζει ενδιαφέρον και χρησιμότητα.

  • Like 3
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Η ανάπτυξη μιας μίνι γλώσσας είναι πολύ καλή ως εκπαιδευτική εμπειρία, αλλά πιστεύετε ότι θα έχει κάποια άλλη χρησιμότητα πέρα από την ακαδημαϊκή;

 

Εγώ θα προτιμούσα αν είναι να κάνουμε κάτι, να μας είναι και χρήσιμο μελλοντικά (ιδανικά να φανεί χρήσιμο και σε άλλους). Για αυτό πρότεινα κάποιου είδους βιβλιοθήκη. Π.χ. ένα high-level API για δομές (ας πούμε κάτι σε στυλ GLib, GDSL, qLibc κλπ).

 

Έχει πολύ ψωμί κάτι τέτοιο, και νομίζω συνδυάζει ενδιαφέρον και χρησιμότητα.

Γιατί όχι; Έχεις σκεφτεί κάτι συγκεκριμένο; Τί θα κάνουμε εμείς. Που θα διαφοροποιηθούμε ας πούμε; Ταχύτητα; Ασφάλεια; Portability; Εγώ θα είμαι μέσα.

 

Ναι, δεν έχει για Linux... :( Αν και ο τύπος έχει υποσχεθεί χρόνια τώρα ότι θα το κάνει port.

Εγώ κατάφερα να τρέξω μία παλιά έκδοση που είχα στο συρτάρι πάνω σε wine και με αυτήν δουλεύω (η τελευταία .NET δεν τρέχει με τίποτα!).

 

Bison δεν ξέρω, για να μπορώ να συγκρίνω.

 

Για το GOLD, επί τροχάδην, δέχεται BNF-like σύνταξη και παράγει αρχεία (.cgt) που περιέχουν τα tables για symbols, rules, DFA states και LALR states. Εσύ μετά χρησιμοποιείς μία engine στη γλώσσα που σ' ενδιαφέρει (υπάρχουν διάφορες υλοποιήσεις) για να φορτώσεις το .cgt στον compiler σου. Και έχεις έναν έτοιμο LALR. Από κεί και πέρα, είναι δική σου δουλειά πως θα αξιοποιήσεις τα reductions για να κάνεις compile/interprete/κάτι-άλλο.

Πάνω κάτι ότι κάνεις με Bison/Flex. Όταν λες για μία "engine στην γλώσσα που σε ενδιαφέρει" τι εννοείς;

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
Δημοσ. (επεξεργασμένο)

Η ανάπτυξη μιας μίνι γλώσσας είναι πολύ καλή ως εκπαιδευτική εμπειρία, αλλά πιστεύετε ότι θα έχει κάποια άλλη χρησιμότητα πέρα από την ακαδημαϊκή;

 

Εγώ θα προτιμούσα αν είναι να κάνουμε κάτι, να μας είναι και χρήσιμο μελλοντικά (ιδανικά να φανεί χρήσιμο και σε άλλους). Για αυτό πρότεινα κάποιου είδους βιβλιοθήκη. Π.χ. ένα high-level API για δομές (ας πούμε κάτι σε στυλ url=https://developer.gnome.org/glib/stable/glib-data-types.html%5DGLib[/url], GDSL,]GDSL,[/url] qLibc,]qLibc,[/url] κλπ).

 

Έχει πολύ ψωμί κάτι τέτοιο, και νομίζω συνδυάζει ενδιαφέρον και χρησιμότητα.

Ναι αλλά αυτά τα πεδία δεν είναι πολυδουλεμένα και σε ένα επαρκές επίπεδο πλέον; 

 

πιθανόν τα πεδία επικοινωνία δικτύου (με συμπίεση-ασφάλεια), API-API Intergration, BIG DATA management, βάσεις ειδικού τύπου, WEB apps

 

Άλλες ιδέες που μου έρχονται (μάλλον θα σας ζαλίσω-και σίγουρα θα ξεφεύγω από το c-project idea)

- πρόσθετο για browser ( πχ chrome) (ή αν όχι για browser σε service)  που με ένα hotkey να σου επιλέγει ο,τι έχεις πληκτρολογήσει (Shift+Home) να τα σβήνει και να τα εισάγει αλάζωντας πρώτα τη γλώσσα εισαγωγής (πολλές φορές ξεχνάω σε τι γλώσσα γράφω και ξεκινάω αναζήτηση με λάθος χαρακτήρες!)

- Επόμενη ιδέα είναι από μάθημα Syspro εργασία που είχα (αλλά δεν πρόλαβα ποτέ να τελειώσω πλήρως λόγω καλοκαιριού) όπου ηταν η υλοποίηση ενός HTTP server που να έχει μια ειδικού τύπου βάση optimised για εικόνες.

 

Edit: την πρώτη ιδέα μόλις την έφτιαξα με script στο AutoHotKey

 

 

Επεξ/σία από lion2486
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Όταν λες για μία "engine στην γλώσσα που σε ενδιαφέρει" τι εννοείς;

 

Αν πχ φτιάχνεις τον compiler σου σε C, θα πρέπει να ενσωματώσεις τη C engine. Αν τον φτιάχνεις σε Delphi, την αντίστοιχη.

Κοκ.

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Γιατί όχι; Έχεις σκεφτεί κάτι συγκεκριμένο; Τί θα κάνουμε εμείς.

Όταν λες κάτι συγκεκριμένο, τι εννοείς; Δεν έχω κάνει κάποιο πλάνο, απλώς μια ιδέα έδωσα στα πλαίσια του νήματος. Κατά καιρούς έχω ασχοληθεί με δικές μου μεμονωμένες υλοποιήσεις (εδώ π.χ. είχα ξεκινήσει να βγάζω public μια συνειδητά κουτσουρεμένη παραλλαγή μιας γενικής στοίβας που είχα φτιάξει για μια δουλειά, αλλά την άφησα στη μέση... την public εννοώ, όχι τη δουλειά :P). Αλλά δεν έχω κάνει ποτέ ολοκληρωμένη βιβλιοθήκη (θέλει άτομα για να βγει αξιοπρεπής).

 

Που θα διαφοροποιηθούμε ας πούμε; Ταχύτητα; Ασφάλεια; Portability; Εγώ θα είμαι μέσα.

Αρχικά υποθέτω θα διαφοροποιηθούμε στο ότι η δικιά μας βιβλιοθήκη θα είναι χειρότερη από οποιαδήποτε άλλη από τις παλιές & γνωστές :P. Όσο προχωράμε όμως θα βελτιωνόμαστε. Θα μπορούσαμε μεσοπρόθεσμα να την κάνουμε τουλάχιστον το ίδιο ανταγωνιστική με τις υπάρχουσες, και μακροπρόθεσμα να την κάναμε και πιο ανταγωνιστική τουλάχιστον σε έναν (ή περισσότερους) τομείς από τις υπάρχουσες.

 

@lion2486:

Αν αρχίσουμε να ψάχνουμε για κάτι που δεν υπάρχει ήδη, δυο τινά βλέπω να συμβαίνουν: α) δεν θα ξεκινήσουμε ποτέ, β) αν βρούμε κάτι που δεν υπάρχει καν σαν ιδέα, μάλλον θα προτιμήσουμε να το κάνουμε propriety :P

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Πάνω κάτι ότι κάνεις με Bison/Flex.

 

Με την ευκαιρία είδα λίγο Bison/Flex (να ενημερωθώ κιόλας! :P).

 

Έχουν σημαντικές διαφορές. Τα Bison/Flex απ' όσο κατάλαβα παράγουν κώδικα C, έτσι δεν είναι;

Το GOLD δεν παράγει κώδικα, αλλά ένα file που είναι language-independent. Απλά, η εκάστοτε engine θα πρέπει να "ξέρει" να το διαβάζει και να κάνει ας το πούμε "customize" τον LALR και το DFA που ήδη θα περιέχει.

 

Just for the record! :D

Αν αρχίσουμε να ψάχνουμε για κάτι που δεν υπάρχει ήδη, δυο τινά βλέπω να συμβαίνουν: α) δεν θα ξεκινήσουμε ποτέ, β) αν βρούμε κάτι που δεν υπάρχει καν σαν ιδέα, μάλλον θα προτιμήσουμε να το κάνουμε propriety :P

 

Δεν είναι ανάγκη να ψάξουμε για κάτι που δεν υπάρχει. Μπορούμε πχ να φτιάξουμε έναν εναλλακτικό php interpreter! :P

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.