
    

    <?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://ocw.cs.pub.ro/courses/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://ocw.cs.pub.ro/courses/feed.php">
        <title>CS Open CourseWare cpl:labs-2015</title>
        <description></description>
        <link>http://ocw.cs.pub.ro/courses/</link>
        <image rdf:resource="http://ocw.cs.pub.ro/courses/lib/tpl/arctic/images/favicon.ico" />
       <dc:date>2026-04-16T08:34:14+03:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/cpl/labs-2015/04?rev=1475555449&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/cpl/labs-2015/05?rev=1475555557&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/cpl/labs-2015/06?rev=1475555574&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/cpl/labs-2015/07?rev=1475555605&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/cpl/labs-2015/08?rev=1475555623&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/cpl/labs-2015/09?rev=1475555648&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/cpl/labs-2015/10?rev=1482184553&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/cpl/labs-2015/11?rev=1475555701&amp;do=diff"/>
                <rdf:li rdf:resource="http://ocw.cs.pub.ro/courses/cpl/labs-2015/12?rev=1475555721&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://ocw.cs.pub.ro/courses/lib/tpl/arctic/images/favicon.ico">
        <title>CS Open CourseWare</title>
        <link>http://ocw.cs.pub.ro/courses/</link>
        <url>http://ocw.cs.pub.ro/courses/lib/tpl/arctic/images/favicon.ico</url>
    </image>
    <item rdf:about="http://ocw.cs.pub.ro/courses/cpl/labs-2015/04?rev=1475555449&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-10-04T07:30:49+03:00</dc:date>
        <title>04. Introduction to LLVM</title>
        <link>http://ocw.cs.pub.ro/courses/cpl/labs-2015/04?rev=1475555449&amp;do=diff</link>
        <description>04. Introduction to LLVM

LLVM conține o serie de biblioteci și utilitare care pot fi folosite pentru a construi compilatoare, interpretoare și alte tool-uri similare. Găsiți aici o introducere și câteva exemple interesante de utilizare a LLVM-ului. Pentru și mai multe exemple, există o pagină cu proiecte care folosesc LLVM.</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/cpl/labs-2015/05?rev=1475555557&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-10-04T07:32:37+03:00</dc:date>
        <title>05. LLVM IR - C++ API</title>
        <link>http://ocw.cs.pub.ro/courses/cpl/labs-2015/05?rev=1475555557&amp;do=diff</link>
        <description>05. LLVM IR - C++ API

În laboratorul trecut ne-am folosit de reprezentarea textuală a codului intermediar LLVM pentru a înțelege mai bine forma și structura acestuia. Laboratorul curent își propune să vă familiarizeze cu API-ul C++ cu care lucrează bibliotecile LLVM-ului pentru a reprezenta în memorie instrucțiuni.</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/cpl/labs-2015/06?rev=1475555574&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-10-04T07:32:54+03:00</dc:date>
        <title>06. Reprezentarea datelor</title>
        <link>http://ocw.cs.pub.ro/courses/cpl/labs-2015/06?rev=1475555574&amp;do=diff</link>
        <description>În urma compilării și linkării unui program rezultă un fişier binar care, indiferent de formatul lui, este reprezentarea programului în memoria procesorului pentru care a fost compilat. Aceasta reprezentare conține în mod uzual mai multe secțiuni implicite, secțiuni care în funcție de format au diverse denumiri, dar scopul lor este asemănător.</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/cpl/labs-2015/07?rev=1475555605&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-10-04T07:33:25+03:00</dc:date>
        <title>07. LLVM backend (new architectures)</title>
        <link>http://ocw.cs.pub.ro/courses/cpl/labs-2015/07?rev=1475555605&amp;do=diff</link>
        <description>07. LLVM backend (new architectures)

Nice to read

	*  The LLVM Target-Independent Code Generator
	*  Building an LLVM backend
	*  Building a 
backend in 24 hours
	*  Creating an LLVM Backend for the Cpu0 Architecture
	*  TableGen

Introducere

Backend-ul de LLVM primește cod scris în limbajul intermediar și generează asamblare.
Binarul este llc.</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/cpl/labs-2015/08?rev=1475555623&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-10-04T07:33:43+03:00</dc:date>
        <title>08. Control Flow Analysis</title>
        <link>http://ocw.cs.pub.ro/courses/cpl/labs-2015/08?rev=1475555623&amp;do=diff</link>
        <description>Înainte de a putea optimiza un program, unui compilator îi sunt necesare componente care sa îl ajute sa “înțeleagă” cum folosește programul respectiv resursele disponibile.

Astfel, compilatorul trebuie sa fie capabil sa descrie:

	*  caracteristicile fluxului de control al programelor
	*  cum sunt manipulate datele</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/cpl/labs-2015/09?rev=1475555648&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-10-04T07:34:08+03:00</dc:date>
        <title>09. Data Flow Analysis</title>
        <link>http://ocw.cs.pub.ro/courses/cpl/labs-2015/09?rev=1475555648&amp;do=diff</link>
        <description>Analiza fluxului de date oferă informație globală despre modul în care o procedură sau, în general, un segment de program manipulează datele.

Un exemplu de optimizare ce se poate realiza cu o analiză a fluxului de date este propagarea constantelor:</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/cpl/labs-2015/10?rev=1482184553&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-19T23:55:53+03:00</dc:date>
        <title>10. LLVM - transformări de cod</title>
        <link>http://ocw.cs.pub.ro/courses/cpl/labs-2015/10?rev=1482184553&amp;do=diff</link>
        <description>10. LLVM - transformări de cod

Introducere

În LLVM optimizările sunt implementate sub formă de Pass-uri care traversează programul pentru a-l analiza și a-l transforma. Obținerea de informații despre program prin analiza fluxului de date sau de control constituie un pas important în implementarea optimizărilor.</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/cpl/labs-2015/11?rev=1475555701&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-10-04T07:35:01+03:00</dc:date>
        <title>11. Linkers and Loaders</title>
        <link>http://ocw.cs.pub.ro/courses/cpl/labs-2015/11?rev=1475555701&amp;do=diff</link>
        <description>Nice to read

	*  Linkers and Loaders,  John R. Levine


linkăreloadăre


Prezentare teoretică

Linkerele unesc mai multe fișiere compilate (obiect) pentru a genera un singur fișier executabil.

Loaderele încarcă un program executabil la o anumită adresă în memorie.</description>
    </item>
    <item rdf:about="http://ocw.cs.pub.ro/courses/cpl/labs-2015/12?rev=1475555721&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-10-04T07:35:21+03:00</dc:date>
        <title>12. Garbage Collection</title>
        <link>http://ocw.cs.pub.ro/courses/cpl/labs-2015/12?rev=1475555721&amp;do=diff</link>
        <description>Termenul de Garbage Collection (gc) se referă la algoritmii de eliberare implicită a memoriei dinamice sau, altfel
spus, de colectare a zonelor de memorie devenite inaccesibile.

Zonele care pot să fie eliberate (garbage) sunt zone de memorie la care nu se mai poate ajunge prin intermediul unui pointer sau eventual a unei succesiuni de pointeri accesibili. Despre aceste zone se spune că sunt inaccesibile spre deosebire de zonele care sunt accesibile şi despre care se spune că sunt în viaţă.…</description>
    </item>
</rdf:RDF>
