Λούκας Νεοκλέους - Μαρία Χαραλάμπους - Βλαδίμηρος Θεοδοσίου

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ
Advertisements

Τύποι δεδομένων και τελεστές,
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΥΠΟΡΟΥΤΙΝΕΣ
5η Συνάντηση Εκπαιδευτικών Πληροφορικής στη Δυτική Μακεδονία Πτολεμαΐδα, 29 Σεπτ 2005 Δημιουργία Δυναμικών Ιστοσελίδων με PHP και Dreamweaver MX Στυλιάδης.
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Μάθημα 2 Εισαγωγή στην Επιστήμη των Η/Υ ΙΙ
Εργαστήριο Λειτουργικών Συστημάτων Φροντιστήριο 2– Εισαγωγή στη Bash Ντίρλης Νικόλαος.
ΜΑΘ-3122/106 Προγραμματισμός
Εισαγωγή στο MATLAB.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Φροντηστήριο Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Eργαλεία.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Μέλη ομάδας Μαρία Στυλιανού Νίκος Οδυσσέως Γεωργία Χριστοδουλίδου
Εισαγωγή στο UNIX και άλλα εργαλεία Pedro Trancoso Γιαννάκης Σαζεϊδης.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Διάλεξη 3: Δείκτες Εαρινό εξάμηνο 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ι. Σαρρής, τηλ.
Προγραμματισμός στο ΜatLab
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ-150 Προγραμματισμός Αλγόριθμοι και Προγράμματα.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
Τμήμα Πληροφορικής Πανεπιστημίου Κύπρου ΕΠΛ 371 – Προγραμματισμός Συστημάτων Ονόματα: Αντώνης Μαυρής, Γιώργος Ματθαίου, Χρίστος Κυριάκου Ταυτότητες: ,
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
AWK Μία εξαιρετικά δυναμική συμβολική γλώσσα προγραμματισμού και ταυτόχρονα ένα εργαλείο διαχείρισης δεδομένων. Αναζητά, τροποποιεί αρχεία, δημιουργεί.
PHP/MYSQL ΠΑΡΟΥΣΙΑΣΗ ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΕΠΟΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ-ΜΗΧΑΝΗΣ ΤΥΡΟΛΟΓΟΥ ΓΛΥΚΕΡΙΑ ΑΜ 875 ΡΙΖΟΥ ΔΕΣΠΟΙΝΑ ΑΜ 816.
Γλωσσική Τεχνολογία Εισαγωγικό Φροντιστήριο. Project του μαθήματος  Εργασία 2 ατόμων  Προφορική εξέταση για :  Project (80%)  Θεωρία (20%)  Στο φροντιστήριο.
P ERL One of the most respectable general-purpose scripting languages Δημητρίου Νίκος Δημητρίου Θεόδωρος Ζαβού Έλλη.
Διαφάνειες παρουσίασης Πίνακες (συνέχεια) Αριθμητικοί υπολογισμοί Αναδρομή.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Αντικειμενοστραφής Προγραμματισμός & JAVA
D P ROGRAMMING L ANGUAGE Νικόλας Χ''θεοφάνους Γιάννης Κωνσταντίνου Δεσποιάνα Αντωνίου.
Περιεχόμενα Μαθήματος
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
Κουλίνας Μιχαήλ Α.Μ.:774 Μπουρνάζης Χρήστος Α.Μ.:792 Ρογκάκος Γεώργιος Α.Μ.:817.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Διαφάνειες παρουσίασης #2
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΘΠ06 - Μεταγλωττιστές Ενδιάμεσος Κώδικας – Μεταφραστικά Σχήματα.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι 4-1 Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Αναδρομικές συναρτήσεις Ισοζυγισμός Παρενθέσεων.
ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language.
ΕΙΣΑΓΩΓΙΚΟ ΦΡΟΝΤΙΣΤΗΡΙΟ Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία.
ΗΥ150 – ΠρογραμματισμόςΞενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
Βασικά στοιχεία της Java
Εισαγωγή στον Προγραμματισμό 2 η Ενότητα – PERL 2o μάθημα Γρ. Αμούτζιας.
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ «Εισαγωγή στον οντοκεντρικό προγραμματισμό (βασική εισαγωγή στο περιβάλλον εργασίας)» Ρουσσάκης Ιωάννης, ΤΕΙ Κρήτης,
Εργαστήριο «Διαχείριση & Ασφάλεια Δικτύων» Επισκόπηση Βασικών Δικτυακών Λειτουργιών Διδάσκων: Δρ. Γενειατάκης Δημήτρης Τμήμα Επιστήμης.
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
Βρόχος Do … Loop Σκοπός Μαθήματος Χρήση Do… Loop για την εκτέλεση μιας ομάδας εντολών μέχρι να εκπληρωθεί μια συγκεκριμένη συνθήκη. Αθήνα, 2015.
Βρόχος Do … Loop Σκοπός Μαθήματος Χρήση Do… Loop για την εκτέλεση μιας ομάδας εντολών μέχρι να εκπληρωθεί μια συγκεκριμένη συνθήκη.
Δομές.
Εφαρμογές Υπολογιστών
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ
Ενισχυτική διδασκαλία
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕ ΤΗ C
Εισαγωγή στην Πληροφορική μεγάλου όγκου δεδομένων
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ Η/Υ
Γλώσσα Προγραμματισμού V PHP
ΗΥ-150 Προγραμματισμός Αναδρομή (1/2).
Εισαγωγή στη Java (Μέρος Α’)
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Τύποι δεδομένων και τελεστές,
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό (στη γλώσσα Java)
Μεταγράφημα παρουσίασης:

Perl: a high-level, general-purpose, interpreted, dynamic programming language http://www.vmturbo.com/Portals/71270/images/Perl-resized-600.png Λούκας Νεοκλέους - Μαρία Χαραλάμπους - Βλαδίμηρος Θεοδοσίου ΕΠΛ 371 – Προγραμματισμός Συστημάτων Πανεπιστήμιο Κύπρου 15/11/2018

PERL: Practical Extraction and Report Language 15/11/2018 Συνδυάζει: Sed C Awk και διάφορες γλώσσες προγραμματισμού shell Δημοφιλής για γράψιμο CGI scripts Interpreted scripting programming language(γλώσσα διερμήνευσης) CPAN(Comprehensive Perl Archive Network) Case-sensitive ΕΠΛ 371 - Προγραμματισμός Συστημάτων

ΙΣΤΟΡΙΚΗ ΑΝΑΔΡΟΜΗ Δημιουργός: Larry Wall 1η έκδοση : 1987 2η έκδοση : 1988 3η έκδοση : 1989 4η έκδοση : 1991 5η έκδοση : 1994 6η έκδοση : ???? 15/11/2018 http://upload.wikimedia.org/wikipedia/commons/4/42/Perl_history.svg ΕΠΛ 371 - Προγραμματισμός Συστημάτων

Πλατφορμεσ Εκτελεσησ 15/11/2018 ΕΠΛ 371 - Προγραμματισμός Συστημάτων

ΠΛΕΟΝΕΚΤΗΜΑΤΑ Φορητότητα Ισχυρά προγράμματα με λίγες γραμμές κώδικα Ενδιάμεση γλώσσα μεταξύ μεταγλωττίσιμων γλωσσών και του shell programming Εργασίες ανάλυσης (data parsing), εξαγωγής (extraction) και χειρισμού (manipulation) δεδομένων  κυρίως strings Επεξεργασία strings με κανονικές εκφράσεις 15/11/2018 ΕΠΛ 371 - Προγραμματισμός Συστημάτων

ΠΛΕΟΝΕΚΤΗΜΑΤΑ ΣΥΝΕΧΕΙΑ... 15/11/2018 Ευέλικτη γλώσσα Εύκολη δέσμευση – αποδέσμευση μνήμης Δεν χρειάζονται δηλώσεις μεταβλητών CPAN Modularity & Reusability Αντικειμενοστρέφεια ΕΠΛ 371 - Προγραμματισμός Συστημάτων

ΜΕΙΟΝΕΚΤΗΜΑΤΑ Μεγάλα προγράμματα  Δύσκολα στη διαχείριση 15/11/2018 Μεγάλα προγράμματα  Δύσκολα στη διαχείριση Πολλές φορές ο κώδικας είναι περισσότερος σε σχέση με άλλη γλώσσα Μερικές φορές είναι επικίνδυνα ευέλικτη για μια γλώσσα προγραμματισμού Δύσκολη η δημιουργία executable Για φορητότητα χρειάζεται επανεγκατάσταση! ΕΠΛ 371 - Προγραμματισμός Συστημάτων

ΕΓΚΑΤΑΣΤΑΣΗ Διατίθεται δωρεάν! GNU licence 15/11/2018 Διατίθεται δωρεάν! GNU licence Πηγαίος κώδικας: http://www.perl.org/get.html Εκδόσεις για όλα τα λειτουργικά! Πλατφόρμες Linux  by default εγκατάσταση ΕΠΛ 371 - Προγραμματισμός Συστημάτων

“hello world” Κώδικας : program.pl – 1ος Τρόπος 15/11/2018 Κώδικας : program.pl – 1ος Τρόπος Κώδικας : program.pl – 2ος Τρόπος print “Hello World\n”; #!/usr/bin/perl print “Hello World\n”; Εκτέλεση : program.pl – 1ος Τρόπος Εκτέλεση : program.pl – 2ος Τρόπος $perl program.pl $chmod +x program.pl $./program.pl ΕΠΛ 371 - Προγραμματισμός Συστημάτων

Βασικα Χαρακτηριστικα 15/11/2018 Δεν υπάρχει main αλλά υπάρχουν subroutines Ένα πρόγραμμα σε Perl είναι κάπως έτσι : #!/usr/bin/perl εντολή; # αυτό είναι ένα σχόλιο if ( expression ) { # αυτό είναι ένα block κώδικα } ΕΠΛ 371 - Προγραμματισμός Συστημάτων

μεταβλητεσ Τρεις τύποι μεταβλητών: Scalars: Arrays: Hashes: my $foo = 1; my $name = “EPL371"; my $pi = 3.141592; Arrays: @array_empty =(); @colours = ("red", "green", "blue"); @my_array = (3, 5, 7, 9);  $my_array[1] = 3; Hashes: my %info = (height => 176, weight => 72); ή my %info = ('height' , 176 , 'weight' , 72);  $info{height} = 176; 15/11/2018 ΕΠΛ 371 - Προγραμματισμός Συστημάτων

Τα Ειδη Των Quotes (Εισαγωγικων) 15/11/2018 Single (‘ ’) Double (“ ”) print ’The number is $num\n’; print "The number is $num\n"; The number is $num The number is 25 Για να τυπώσουμε ένα ειδικό χαρακτήρα στα διπλά εισαγωγικά: πχ. @, $, %, \, ' κ.λ.π. print "The amount is $money \$\n"; Τότε η εκτύπωση θα μας έδινε: The amount is 25$ ΕΠΛ 371 - Προγραμματισμός Συστημάτων

Εισοδοσ Απο το Πληκτρολογιο 15/11/2018 $name = <STDIN>; Η μεταβλητή $name θα πάρει την τιμή της από το STDIN (standard input) Χρησιμοποιούμε την chomp () για να «καθαρίσουμε» τα δεδομένα που δίνουμε στην Perl από αλλαγές γραμμών. π.χ: $name= <STDIN>; chomp($name); print “Hello $name!!\n"; Το αποτέλεσμα της εκτύπωσης θα είναι: Hello Loukas! ΕΠΛ 371 - Προγραμματισμός Συστημάτων

Δομεσ Ελεγχου-Επαναληψησ 15/11/2018 If (condition) { . . . } elsif (condition) { . . . } while () { . . . } do { . . . } while(); for(αρχική_εντολή; έκφραση; εντολή_αύξησης) { . . . } foreach $var (@array) { . . . } statement if (condition); statement unless (condition); statement while (condition); statement until (condition); statement foreach (condition); last όπως break - next όπως continue ΕΠΛ 371 - Προγραμματισμός Συστημάτων

&, |, ^, ~, <<, >> Τελεστεσ 15/11/2018 Description String op Numeric op assignment = equality eq == inequality ne != ternary compare cmp < = > ternary ?: concatenation . (dot) arithmetic +, -, *, /,% relational lt, le, gt, ge <, <=, >, >= bitwise &, |, ^, ~, <<, >> logical &&, ||, ! increment ++, -- ΕΠΛ 371 - Προγραμματισμός Συστημάτων

Υπορουτινεσ Ορισμός: Κλήση: Παράμετροι: sub foo() { 15/11/2018 Ορισμός: sub foo() { print “You are in the function”; } Κλήση: foo();  με παραμέτρους μέσα στις παρενθέσεις &foo;  μπορεί να έχει πρόβλημα όταν υπάρχουν παράμετροι Παράμετροι: $_[0], $_[1], … # προσπέλαση my ( $x, $y, $z ) = @_; # αντιγραφή παραμέτρων σε μεταβλητές ΕΠΛ 371 - Προγραμματισμός Συστημάτων

Κανονικεσ Εκφρασεισ (Regular Expressions) 15/11/2018 Πολύπλοκες συγκρίσεις συμβολοσειρών $string =~ m/sought_text/; Πολύπλοκες επιλογές συμβολοσειρών $string =~ m/whatever(sought_text)whatever2/; $soughtText = $1; Πολύπλοκες αντικαταστάσεις συμβολοσειρών $string =~ s/originaltext/newtext/; ΕΠΛ 371 - Προγραμματισμός Συστημάτων

Κανονικεσ Εκφρασεισ (Regular Expressions – Symbol Explanation) 15/11/2018 =~ $string =~ m/Bill Clinton/;              $string =~ s/Bill Clinton/Al Gore/;  !~ $string !~ m/Bill Clinton/;             $string !~ s/Bill Clinton/Al Gore/;  m $string =~ m/Bill Clinton/;            $string =~ /Bill Clinton/;               ^ $string =~ m/^Bill Clinton/;            $ $string =~ m/Bill Clinton$/;            i $string =~ m/Bill Clinton/i;            ΕΠΛ 371 - Προγραμματισμός Συστημάτων

Παρουσιαση Δυνατοτητων Μεσω Παραδειγματοσ Παρουσιαση Δυνατοτητων  Μεσω Παραδειγματοσ 15/11/2018 Υπολογισμός της Συχνότητας Εμφάνισης Λέξεων Κλειδιών σε Ιστοσελίδες Web Crawler & Lexicon Generator (Άσκηση 2) ΕΠΛ 371 - Προγραμματισμός Συστημάτων

Στατιστικα Perl Bash Γραμμές Κώδικα 240 140 Χρόνος Υλοποίησης 1 μέρα 15/11/2018 Perl Bash Γραμμές Κώδικα 240 140 Χρόνος Υλοποίησης 1 μέρα 4 μέρες Εύκολη Υλοποίηση Σχετικά ναι Όχι ιδιαίτερα Χρόνος Εκτέλεσης: ΕΠΛ 371 - Προγραμματισμός Συστημάτων

Ανοιγμα Socket Bash Programming: 15/11/2018 Bash Programming: exec 5<>/dev/tcp/www2.ucy.ac.cy/80 exec 5>&- echo -e "GET $index HTTP/1.0\n" >&5 cat <&5 > /tmp/$USER/data/file.txt exec 5<&- Perl: use IO::Socket; $page = “www2.ucy.ac.cy”; my $socket = IO::Socket::INET->new(PeerAddr=>$page, PeerPort=>'80',Proto =>'tcp'); or die "cannot connect to port 80 at www2.ucy.ac.cy"; $name = "http://".$webpage; getstore($name, $textfile) or die 'Unable to get page'; close $server; ΕΠΛ 371 - Προγραμματισμός Συστημάτων

Λεξικο 15/11/2018 sed '1,/^Content-Type:/d' file.txt | sed 's/<[^>]*>//g' | sed 's/<[^>]*$//g' | sed 's/^[^<]*>//g' | sed 's/&.*;//g' | sed 's/[^a-zA-Z]/ /g' | tr " " '\n' | sed '/^$/d' | tr '[:upper:]' '[:lower:]' Bash open(FILE, $textfile); my @contents = (<FILE>); close(FILE); open(OUTFILE, ">file1.txt"); foreach $line (@contents) { $line =~ s/<[^>]*>//g; $line =~ s/<[^>]*$//g; $line =~ s/^[^<]*>//g; $line =~ s/\&[^;]*;//g; $line =~ s/[^a-zA-Z]/ /g; $line =~ s/^$//g; $line =~ s/[ \t\n\s]+/\n/g; print OUTFILE $line; } close(OUTFILE); open(FILE, "file1.txt"); if ($line ne "\n") print OUTFILE lc($line); Perl ΕΠΛ 371 - Προγραμματισμός Συστημάτων

Crawler Bash Perl 15/11/2018 ΕΠΛ 371 - Προγραμματισμός Συστημάτων sed '1,/^Content-Type:/d' /tmp/$USER/data/file.txt > /tmp/$USER/data/content.txt cat /tmp/$USER/data/content.txt | grep -o '<a href[^>]*>\|<A HREF[^>]*>'| grep -o '"[^"]*"' | grep -o '"http:\/\/'$webpage'[^"]*"\|"\.\/[^"]*"\|"\.\.\/[^"]*"' | sed 's/"//g'| sed 's/http:\/\///g'| sed '/\.\/index\.html/d' | sed 's/^\.\.\//'$webpage'\//' | sed 's/^\.\//'$webpage'\//' | sed 's/\.\.\///g' | sort | uniq > /tmp/$USER/data/final.txt cat /tmp/$USER/data/final.txt | sed 's/'$webpage'//' >> /tmp/$USER/data/final2.txt cat /tmp/$USER/data/final2.txt | sort | uniq > /tmp/$USER/data/final2.txt Bash 15/11/2018 Perl open(FILE, $textfile); my @contents = (<FILE>); close(FILE); open(OUTFILE, ">file2.txt"); foreach $line(@contents) { if ($line =~ m/(<a href[^>]*>|<A HREF[^>]*>)/) $x = $1."\n"; if ( $x =~ m/(\"[^\"]*\")/ ) if ( $x =~ m/(\"http:\/\/$webpage[^\"]*\"|\"\.\/[^\"]*\"|\"\.\.\/[^\"]*\")/ ) $x =~ s/\"//g; $x =~ s/http:\/\///g; print OUTFILE $x; } }}} close(OUTFILE); open(OUTFILE, "file2.txt"); my @contents = (<OUTFILE>); if (!( $line =~ m/\.\/index\.html/ )) print OUTFILE $line; } } $line =~ s/^\.\.\//$webpage\//; $line =~ s/^\.\//$webpage\//; $line =~ s/\.\.\///g; } my %c_hash = (); foreach my $line (@contents) { $c_hash{$line} = 1; my @c_unique = keys(%c_hash); foreach $line(@c_unique) open(OUTFILE, ">>allpages.txt"); $line =~ s/$webpage//; open(OUTFILE, "allpages.txt"); open(OUTFILE, ">allpages.txt"); ΕΠΛ 371 - Προγραμματισμός Συστημάτων

Κυριωσ Προγραμμα Bash Perl 15/11/2018 while ($depth < $ARGV[1]) { $depth++; open(FILE, "allpages.txt"); my @contents = (<FILE>); close(FILE); unlink("allpages.txt"); foreach my $url (@contents) $name = "http://".$webpage.$url; getstore($name, $textfile) or die 'Unable to get page'; $contype = &contentType($textfile); if ($contype==1) &lexicon($textfile); &crawler($ARGV[0], $textfile); print VISITED $webpage.$url; } else print BROKEN $name; until [ $count -eq $depth ] do ((count=count+1)); cat final2.txt | sort | uniq > allurls.txt rm -r final2.txt while read url openSocket $url; kwdikosSelidas; value1=$? contentType; value2=$? if [[ $value1 == 1 && $value2 == 1 ]]; then crawler; lexicon; echo $webpage$url >> allvisited.txt fi closeSocket; done < allurls.txt cat allvisited.txt | sort | uniq -c > allvisited.txt done ΕΠΛ 371 - Προγραμματισμός Συστημάτων

ΣΥΜΠΕΡΑΣΜΑΤΑ 15/11/2018 Η Perl είναι μια γλώσσα προγραμματισμού με πολλές δυνατότητες Περισσότερος κώδικας σε Perl, όμως εύκολος να γραφτεί Ενσωμάτωση στον κώδικα μας εντολών που ήταν γνωστές σε εμάς από το bash Μισός χρόνος εκτέλεσης απ’ ότι στο Bash Πολύ εύκολο να βρεθούν και να διορθωθούν λάθη στον κώδικα  περισσότερες μεταβλητές πίνακες. Καμία ιδιομορφία στον κώδικα όπως έχει το Bash Πιο κοντά σε high-level γλώσσα. ΕΠΛ 371 - Προγραμματισμός Συστημάτων

ΒΙΒΛΙΟΓΡΑΦΙΑ Learning Perl, Randal L. Schwaartz, Third Edition 15/11/2018 Learning Perl, Randal L. Schwaartz, Third Edition http://www.perl.org/ http://el.wikipedia.org/wiki/Perl http://dide.flo.sch.gr/Plinet/Tutorials/Tutorials-Perl.html http://www.eeei.gr/programming/perl/index.html http://www.docstoc.com/docs/23978204/Programming-in-Perl-History- Advantages-of-Perl-Perl-Is http://www.answerbag.com/q_view/16515 http://www.tipstoremember.com/benefits-of-perl-programming- language/ http://www.geekinterview.com/question_details/58751 ΕΠΛ 371 - Προγραμματισμός Συστημάτων

Ευχαριστούμε για την προσοχή σας