<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://www.skenz.it/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="https://www.skenz.it/feed.php">
        <title>Skenz - How To Wiki - compilers</title>
        <description></description>
        <link>https://www.skenz.it/</link>
        <image rdf:resource="https://www.skenz.it/_media/logo.png" />
       <dc:date>2026-11-03T17:46:19+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/assignments20192020?rev=1712608496&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/assignments20202021?rev=1712608497&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/assignments20212022?rev=1712608497&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/assignments20222023?rev=1712608496&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/erlang_to_llvm?rev=1712608497&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/exam_20150903?rev=1712608497&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/flex_bison_examples?rev=1712608497&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/flex_bison?rev=1712608497&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/go_to_llvm?rev=1712608497&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/haskell_to_llvm?rev=1712608496&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/install_linux_bash?rev=1712608497&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/install_macos?rev=1712608497&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/install_windows?rev=1712608497&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/install_windows2?rev=1712608497&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/julia_to_llvm?rev=1712608497&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/lisp_to_llvm?rev=1712608497&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/llvm?rev=1712608497&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/lua_to_llvm?rev=1712608497&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/matlab_to_llvm?rev=1712608497&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/nlp_discourse_processing?rev=1712608497&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/nlp_sentiment_analysis?rev=1712608497&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/ply_examples?rev=1712608497&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/ply?rev=1712608496&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.skenz.it/compilers/swift_to_llvm?rev=1712608496&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://www.skenz.it/_media/logo.png">
        <title>Skenz - How To Wiki</title>
        <link>https://www.skenz.it/</link>
        <url>https://www.skenz.it/_media/logo.png</url>
    </image>
    <item rdf:about="https://www.skenz.it/compilers/assignments20192020?rev=1712608496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>assignments20192020</title>
        <link>https://www.skenz.it/compilers/assignments20192020?rev=1712608496&amp;do=diff</link>
        <description>Assignments 2019/2020 (Formal Languages and Compilers course)

Rules

The programming part of the exam can be performed by doing an assignment.

	*  A maximum of 5 assignments will be allocated
	*  Assignments are reserved only for students attending the course the first time this semester</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/assignments20202021?rev=1712608497&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>assignments20202021</title>
        <link>https://www.skenz.it/compilers/assignments20202021?rev=1712608497&amp;do=diff</link>
        <description>Assignments 2020/2021 (Formal Languages and Compilers course)

Rules

The programming part of the exam can be performed by doing an assignment.

	*  A maximum of 5 assignments will be allocated
	*  Assignments are reserved only for students attending the course the first time this semester</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/assignments20212022?rev=1712608497&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>assignments20212022</title>
        <link>https://www.skenz.it/compilers/assignments20212022?rev=1712608497&amp;do=diff</link>
        <description>Assignments 2021/2022 (Formal Languages and Compilers course)

Rules

The programming part of the exam can be performed by doing an assignment.

	*  Assignments are reserved only for students attending the course the first time this semester

Students have to send an application for the assignment to riccardo.sisto [at] polito.it and stefano.scanzio [at] polito.it within</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/assignments20222023?rev=1712608496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>assignments20222023</title>
        <link>https://www.skenz.it/compilers/assignments20222023?rev=1712608496&amp;do=diff</link>
        <description>Assignments 2022/2023 (Formal Languages and Compilers course)

Rules

The programming part of the exam can be performed by doing an assignment.

	*  Assignments are reserved only for students attending the course the first time this semester

Students have to send an application for the assignment to riccardo.sisto [at] polito.it and stefano.scanzio [at] polito.it within</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/erlang_to_llvm?rev=1712608497&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>erlang_to_llvm</title>
        <link>https://www.skenz.it/compilers/erlang_to_llvm?rev=1712608497&amp;do=diff</link>
        <description>From Erlang to LLVM

Abstract

The project goal was to develop a compiler for a subset of Erlang (miniErlang) that generates LLVM IR in human-readable format, built using JFlex and CUP.

Results achieved

	*  Implementation of a mini virtual machine (Erlang is based on the</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/exam_20150903?rev=1712608497&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>exam_20150903</title>
        <link>https://www.skenz.it/compilers/exam_20150903?rev=1712608497&amp;do=diff</link>
        <description>Jflex &amp; Cup: Exam 2015/09/03

Text

Using the Jflex lexer generator and the Cup parser generator, realize a java program capable of recognizing and executing the language described here:20150903.pdf

Commented Solution



Scanner


import java_cup.runtime.*;

%%

%unicode
%cup
%line
%column

%{
	private Symbol sym(int type) {
		return new Symbol(type, yyline, yycolumn);
	}
	
	private Symbol sym(int type, Object value) {
		return new Symbol(type, yyline, yycolumn, value);
	}
	
%}

/* TOKEN1 regul…</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/flex_bison_examples?rev=1712608497&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>flex_bison_examples</title>
        <link>https://www.skenz.it/compilers/flex_bison_examples?rev=1712608497&amp;do=diff</link>
        <description>Flex Bison Examples

Introduction

The following page contains solutions of examples, laboratories and exams presented during the entire course, implemented with the couple Flex/Bison.

You can download the entire collection of examples at the following link:</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/flex_bison?rev=1712608497&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>flex_bison</title>
        <link>https://www.skenz.it/compilers/flex_bison?rev=1712608497&amp;do=diff</link>
        <description>Flex Bison

Flex and Bison are tools for building programs that handle structured input. They were originally used to developing compilers, but they have proven to be useful in many other areas. They are modern replacements for the classic Lex and Yacc.</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/go_to_llvm?rev=1712608497&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>go_to_llvm</title>
        <link>https://www.skenz.it/compilers/go_to_llvm?rev=1712608497&amp;do=diff</link>
        <description>From Go to LLVM

Background

This page shows the implementation of a compiler which recognizes and translates part of the Go programming language into the LLVM IR syntax (more information about LLVM can be found here).

The LLVM Intermediate Representation (IR) is placed between the source code in a given programming language and the machine code for a specific architecture. It is independent from both the programming language and the architecture.</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/haskell_to_llvm?rev=1712608496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>haskell_to_llvm</title>
        <link>https://www.skenz.it/compilers/haskell_to_llvm?rev=1712608496&amp;do=diff</link>
        <description>From Haskell to LLVM

Introduction

In this presentation, we illustrate the LHC (Little Haskell Compiler), which can recognize a strict subset of the Haskell Programming Language, build it and produce LLVM code as output. 
In the last section, you can find how to install and use the tool.</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/install_linux_bash?rev=1712608497&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>install_linux_bash</title>
        <link>https://www.skenz.it/compilers/install_linux_bash?rev=1712608497&amp;do=diff</link>
        <description>Install Jflex, CUP and Java in Linux Bash Shell

Guide on how to install Java, Jflex and CUP in the Linux operating systems and using bash shell.

Jflex

To install Jflex on Ubuntu linux you can use apt tool, running in the shell the following command:</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/install_macos?rev=1712608497&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>install_macos</title>
        <link>https://www.skenz.it/compilers/install_macos?rev=1712608497&amp;do=diff</link>
        <description>Install Jflex, CUP and Java in macOS

Guide on how to install Java, Jflex and CUP in the macOS operating system.

 THIS GUIDE FOR NOW WAS CHECKED ONLY BY ONE STUDENT, AS A CONSEQUENCE IF YOU FOUND ERRORS OR SOME PASSAGES THAT CAN BE SIMPLIFIED, PLEASE LET ME KNOW BY SENDING AND EMAIL.</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/install_windows?rev=1712608497&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>install_windows</title>
        <link>https://www.skenz.it/compilers/install_windows?rev=1712608497&amp;do=diff</link>
        <description>Install Jflex, CUP and Java in Windows

Guide on how to install Java, Jflex and CUP in the Windows operating system.



Java

The Oracle JDK can be downloaded at the following address &lt;https://www.oracle.com/java/technologies/javase-downloads.html&gt;, choosing the one marked as Windows x64 Installer (at the moment of this guide the recommended version to download is</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/install_windows2?rev=1712608497&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>install_windows2</title>
        <link>https://www.skenz.it/compilers/install_windows2?rev=1712608497&amp;do=diff</link>
        <description>Install Jflex, CUP and Java in Windows

Guide on how to install Java, Jflex and CUP in the Windows operating system.

Java

The Oracle JDK can be downloaded at the following address &lt;https://www.oracle.com/java/technologies/javase-jdk14-downloads.html&gt;, choosing the one marked as Windows x64 Installer (at the moment of this guide the recommended version to download is</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/julia_to_llvm?rev=1712608497&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>julia_to_llvm</title>
        <link>https://www.skenz.it/compilers/julia_to_llvm?rev=1712608497&amp;do=diff</link>
        <description>From Julia to LLVM

Background

This page shows the implementation of a compiler which recognizes and translates part of the Julia programming language into the LLVM IR syntax (more information about LLVM can be found here).

Implemented parts

List of Julia parts supported:</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/lisp_to_llvm?rev=1712608497&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>lisp_to_llvm</title>
        <link>https://www.skenz.it/compilers/lisp_to_llvm?rev=1712608497&amp;do=diff</link>
        <description>From Lisp to LLVM

Background

This page shows the implementation of a compiler which recognizes and translates part of the LISP programming language into the LLVM IR syntax (more information about LLVM can be found here).

The LLVM Intermediate Representation (IR) is placed between the source code in a given programming language and the machine code for a specific architecture. It is independent from both the programming language and the architecture.</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/llvm?rev=1712608497&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>llvm</title>
        <link>https://www.skenz.it/compilers/llvm?rev=1712608497&amp;do=diff</link>
        <description>LLVM

LLVM is a compiler and a toolkit for building compilers, which are programs that convert instructions into a machine language, so that it can be read and executed by a computer.

Installation: it can be simply installed by opening the terminal and entering the following line:</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/lua_to_llvm?rev=1712608497&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>lua_to_llvm</title>
        <link>https://www.skenz.it/compilers/lua_to_llvm?rev=1712608497&amp;do=diff</link>
        <description>From Lua to LLVM

Background

This page shows the implementation of a compiler that recognizes and translates part of the Lua programming language into the LLVM IR syntax (more information about LLVM can be found here).

The LLVM Intermediate Representation (IR) is placed between the source code in a given programming language and the machine code for a specific architecture. It is independent of both the programming language and the architecture.</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/matlab_to_llvm?rev=1712608497&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>matlab_to_llvm</title>
        <link>https://www.skenz.it/compilers/matlab_to_llvm?rev=1712608497&amp;do=diff</link>
        <description>From Matlab to LLVM

Background

This page shows the implementation of a compiler that recognizes and translates part of the Matlab programming language into the LLVM IR syntax (more information about LLVM can be found here). 

Implemented features

List of the Matlab features Implemented</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/nlp_discourse_processing?rev=1712608497&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>nlp_discourse_processing</title>
        <link>https://www.skenz.it/compilers/nlp_discourse_processing?rev=1712608497&amp;do=diff</link>
        <description>Natural Language Processing - Discourse Processing

Intro: Basic Notions

A Discourse is not just a set of sentences, it is primarily intended to convey information about something to the listener or reader so that both parties can understand each other.</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/nlp_sentiment_analysis?rev=1712608497&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>nlp_sentiment_analysis</title>
        <link>https://www.skenz.it/compilers/nlp_sentiment_analysis?rev=1712608497&amp;do=diff</link>
        <description>Natural Languages Processing - Sentiment Analysis

Introduction

This page shows an introduction to one of the various techniques of Natural Languages Processing: Sentiment Analysis.

The goals of this assignment are:

	*  Providing an overview of this field</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/ply_examples?rev=1712608497&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ply_examples</title>
        <link>https://www.skenz.it/compilers/ply_examples?rev=1712608497&amp;do=diff</link>
        <description>Ply Examples

Introduction

In the following page you will find some utilities to let you understand better the PLY parser and its mechanisms.
You&#039;ll find:

	*  some introductory examples to familiarize yourself with the ply lexer and parser modules.</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/ply?rev=1712608496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ply</title>
        <link>https://www.skenz.it/compilers/ply?rev=1712608496&amp;do=diff</link>
        <description>Ply

PLY is a parsing tool written purely in Python. It is a re-implementation of Lex and Yacc 
originally in C-language. PLY uses the same LALR parsing technique as Lex and Yacc. 
It includes support for empty productions, precedence rules, error recovery, and ambiguous 
grammars.</description>
    </item>
    <item rdf:about="https://www.skenz.it/compilers/swift_to_llvm?rev=1712608496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-08T20:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>swift_to_llvm</title>
        <link>https://www.skenz.it/compilers/swift_to_llvm?rev=1712608496&amp;do=diff</link>
        <description>From Swift to LLVM

Background

This report analyzes some details of a compiler built to recognize some of the features of the Swift programming language and create some LLVM IR code, this intermediate rappresentation is between the source code and machine code, it is used by the backend, in our case LLVM, to generate code independent from the machine used.</description>
    </item>
</rdf:RDF>
