From cbbac18e15ade5dc32bd0af1204143e02fb71253 Mon Sep 17 00:00:00 2001 From: Christoph Kirsch Date: Thu, 16 Nov 2023 18:51:02 +0100 Subject: [PATCH] Removing http and https --- Makefile | 2 +- README.md | 44 ++++++++++++++++++++++---------------------- docs/index.md | 2 +- grader/README.md | 22 +++++++++++----------- grader/lib/cli.py | 2 +- grader/self.py | 2 +- grammar.md | 2 +- riscu.md | 2 +- selfie.c | 8 ++++---- semantics.md | 2 +- tools/babysat.c | 2 +- tools/beator.c | 2 +- tools/boehm-gc.c | 2 +- tools/buzzr.c | 2 +- tools/monster.c | 2 +- 15 files changed, 49 insertions(+), 49 deletions(-) diff --git a/Makefile b/Makefile index 1523ba4d..c33176cf 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ # Computer Sciences of the University of Salzburg in Austria. For further # information and code please refer to: -# http://selfie.cs.uni-salzburg.at +# selfie.cs.uni-salzburg.at # This is the Makefile of the selfie system. diff --git a/README.md b/README.md index 99865e56..b8392b82 100644 --- a/README.md +++ b/README.md @@ -1,52 +1,52 @@ -# Selfie [![selfie](https://github.com/cksystemsteaching/selfie/actions/workflows/selfie.yml/badge.svg)](https://github.com/cksystemsteaching/selfie/actions) [![Run on Repl.it](https://replit.com/badge/github/cksystemsteaching/selfie)](https://replit.com/new/github/cksystemsteaching/selfie) +# Selfie [![selfie](github.com/cksystemsteaching/selfie/actions/workflows/selfie.yml/badge.svg)](github.com/cksystemsteaching/selfie/actions) [![Run on Repl.it](replit.com/badge/github/cksystemsteaching/selfie)](replit.com/new/github/cksystemsteaching/selfie) -Selfie is a project of the [Computational Systems Group](http://www.cs.uni-salzburg.at/~ck) at the Department of Computer Sciences of the University of Salzburg in Austria. +Selfie is a project of the [Computational Systems Group](cs.uni-salzburg.at/~ck) at the Department of Computer Sciences of the University of Salzburg in Austria. The Selfie Project provides an educational platform for teaching undergraduate and graduate students the design and implementation of programming languages and runtime systems. The focus is on the construction of compilers, libraries, operating systems, and virtual machine monitors. The common theme is to identify and resolve self-reference in systems code which is seen as the key challenge when teaching systems engineering, hence the name. Selfie is a self-contained 64-bit, 12KLOC C implementation of: -1. a self-compiling compiler called starc that compiles a tiny but still fast [subset of C](https://github.com/cksystemsteaching/selfie/blob/main/semantics.md) called C Star ([C\*](https://github.com/cksystemsteaching/selfie/blob/main/grammar.md)) to a tiny and easy-to-teach subset of RISC-V called [RISC-U](https://github.com/cksystemsteaching/selfie/blob/main/riscu.md), +1. a self-compiling compiler called starc that compiles a tiny but still fast [subset of C](github.com/cksystemsteaching/selfie/blob/main/semantics.md) called C Star ([C\*](github.com/cksystemsteaching/selfie/blob/main/grammar.md)) to a tiny and easy-to-teach subset of RISC-V called [RISC-U](github.com/cksystemsteaching/selfie/blob/main/riscu.md), 2. a self-executing emulator called mipster that executes RISC-U code including itself when compiled with starc, 3. a self-hosting hypervisor called hypster that provides RISC-U virtual machines that can host all of selfie, that is, starc, mipster, and hypster itself, and 4. a tiny C\* library called libcstar utilized by selfie. Selfie is implemented in a single (!) file and kept minimal for simplicity. There is also a simple in-memory linker, a RISC-U disassembler, a garbage collector, L1 instruction and data caches, a profiler, and a debugger with replay as well as minimal operating system support in the form of RISC-V system calls built into the emulator and hypervisor. The garbage collector is conservative and even self-collecting. It may operate as library in the same address space as the mutator and/or as part of the emulator in the address space of the kernel. -Selfie generates ELF binaries that run on real [RISC-V hardware](https://www.sifive.com/boards) as well as on [QEMU](https://www.qemu.org) and are compatible with the official [RISC-V](https://riscv.org) toolchain, in particular the [spike emulator](https://github.com/riscv/riscv-isa-sim) and the [pk kernel](https://github.com/riscv/riscv-pk). +Selfie generates ELF binaries that run on real [RISC-V hardware](www.sifive.com/boards) as well as on [QEMU](www.qemu.org) and are compatible with the official [RISC-V](riscv.org) toolchain, in particular the [spike emulator](github.com/riscv/riscv-isa-sim) and the [pk kernel](github.com/riscv/riscv-pk). Selfie is designed as 64-bit system and requires as such a 64-bit system to run (LP64 data model). However, selfie also compiles on systems that support compiling and executing 32-bit binaries (ILP32 data model). In that case, selfie becomes a 32-bit system that generates and executes 32-bit binaries out-of-the-box. This is possible because the implementation of selfie carefully avoids 32-bit overflows throughout the system. ## Support -1. Slack: Join the conversation in the #selfie channel at [cksystemsteaching.slack.com](https://join.slack.com/t/cksystemsteaching/shared_invite/zt-cp3kb9uq-ACUnAuI8DBdmULQXIjW15A) -2. Slides: There are classroom [slides](http://selfie.cs.uni-salzburg.at/slides) that provide a comprehensive introduction to the design and implementation of selfie. -3. Autograder: There is an [autograder](https://github.com/cksystemsteaching/selfie/blob/main/grader/README.md) with compiler and operating systems assignments. -4. Paper: There is an [Onward! 2017 paper](https://dl.acm.org/doi/10.1145/3133850.3133857) featuring selfie. -5. Book: There is a free book in early draft form based on selfie called [Elementary Computer Science: From Bits and Bytes to the Universality of Computing](https://github.com/ckirsch/book) reaching out to everyone with an interest in learning about computer science. -6. Code: The selfie code is open source and available at [github.com/cksystemsteaching/selfie](https://github.com/cksystemsteaching/selfie) -7. Twitter: Follow us at [twitter.com/christophkirsch](https://twitter.com/christophkirsch) -8. Web: The selfie homepage is at [selfie.cs.uni-salzburg.at](http://selfie.cs.uni-salzburg.at) +1. Slack: Join the conversation in the #selfie channel at [cksystemsteaching.slack.com](join.slack.com/t/cksystemsteaching/shared_invite/zt-cp3kb9uq-ACUnAuI8DBdmULQXIjW15A) +2. Slides: There are classroom [slides](selfie.cs.uni-salzburg.at/slides) that provide a comprehensive introduction to the design and implementation of selfie. +3. Autograder: There is an [autograder](github.com/cksystemsteaching/selfie/blob/main/grader/README.md) with compiler and operating systems assignments. +4. Paper: There is an [Onward! 2017 paper](dl.acm.org/doi/10.1145/3133850.3133857) featuring selfie. +5. Book: There is a free book in early draft form based on selfie called [Elementary Computer Science: From Bits and Bytes to the Universality of Computing](github.com/ckirsch/book) reaching out to everyone with an interest in learning about computer science. +6. Code: The selfie code is open source and available at [github.com/cksystemsteaching/selfie](github.com/cksystemsteaching/selfie) +7. X: Follow us at [x.com/christophkirsch](twitter.com/christophkirsch) +8. Web: The selfie homepage is at [selfie.cs.uni-salzburg.at](selfie.cs.uni-salzburg.at) ## Extras -1. Garbage collection: In addition to the conservative but O(n^2) garbage collector in selfie, there is an implementation of an O(n) [Boehm](https://github.com/cksystemsteaching/selfie/blob/main/tools/boehm-gc.c) garbage collector for small memory blocks with fall-back to the garbage collector in selfie for large memory blocks. -2. Fuzzing: There is a simple but self-fuzzing fuzzer called [buzzr](https://github.com/cksystemsteaching/selfie/blob/main/tools/buzzr.c) based on selfie that fuzzes RISC-U code including all of selfie and itself. -3. Symbolic execution: There is a self-executing symbolic execution engine called [monster](https://github.com/cksystemsteaching/selfie/blob/main/tools/monster.c) based on selfie that translates RISC-U code including all of selfie and itself to SMT-LIB formulae that are satisfiable if and only if there is input to the code such that the code exits with non-zero exit codes or performs division by zero within a given number of machine instructions. -4. Bounded model checking: There is a self-translating modeling engine called [BEATOR](https://github.com/cksystemsteaching/selfie/blob/main/tools/beator.c) based on selfie that translates RISC-U code including all of selfie and itself to BTOR2 formulae that are satisfiable if and only if there is input to the code such that the code exits with non-zero exit codes, performs division by zero, or accesses memory outside of allocated memory blocks. -5. BTOR2 visualization: There is a visualization tool called [beatle](https://github.com/cksystemsgroup/beator-visualizer) that displays BTOR2 formulae generated from RISC-U binaries as directed acyclic graphs. -6. SAT solving: There is a bruteforce SAT solver called [babysat](https://github.com/cksystemsteaching/selfie/blob/main/tools/babysat.c) based on selfie that computes satisfiability of SAT formulae in DIMACS CNF. -7. Binary translation: There is a self-translating [binary translator](https://github.com/cksystemsteaching/selfie/blob/riscv-2-x86-unsupported/tools/riscv-2-x86.c) based on selfie that translates RISC-U code including all of selfie and itself to x86 binary code. +1. Garbage collection: In addition to the conservative but O(n^2) garbage collector in selfie, there is an implementation of an O(n) [Boehm](github.com/cksystemsteaching/selfie/blob/main/tools/boehm-gc.c) garbage collector for small memory blocks with fall-back to the garbage collector in selfie for large memory blocks. +2. Fuzzing: There is a simple but self-fuzzing fuzzer called [buzzr](github.com/cksystemsteaching/selfie/blob/main/tools/buzzr.c) based on selfie that fuzzes RISC-U code including all of selfie and itself. +3. Symbolic execution: There is a self-executing symbolic execution engine called [monster](github.com/cksystemsteaching/selfie/blob/main/tools/monster.c) based on selfie that translates RISC-U code including all of selfie and itself to SMT-LIB formulae that are satisfiable if and only if there is input to the code such that the code exits with non-zero exit codes or performs division by zero within a given number of machine instructions. +4. Bounded model checking: There is a self-translating modeling engine called [BEATOR](github.com/cksystemsteaching/selfie/blob/main/tools/beator.c) based on selfie that translates RISC-U code including all of selfie and itself to BTOR2 formulae that are satisfiable if and only if there is input to the code such that the code exits with non-zero exit codes, performs division by zero, or accesses memory outside of allocated memory blocks. +5. BTOR2 visualization: There is a visualization tool called [beatle](github.com/cksystemsgroup/beator-visualizer) that displays BTOR2 formulae generated from RISC-U binaries as directed acyclic graphs. +6. SAT solving: There is a bruteforce SAT solver called [babysat](github.com/cksystemsteaching/selfie/blob/main/tools/babysat.c) based on selfie that computes satisfiability of SAT formulae in DIMACS CNF. +7. Binary translation: There is a self-translating [binary translator](github.com/cksystemsteaching/selfie/blob/riscv-2-x86-unsupported/tools/riscv-2-x86.c) based on selfie that translates RISC-U code including all of selfie and itself to x86 binary code. ## Installing Selfie Selfie runs natively on Linux, macOS, and Windows machines and possibly other systems that have a terminal and a C compiler installed. However, even without a C compiler installed on your machine, or if you only have access to a web browser you can run selfie. There are at least three ways to install and run selfie: -1. Natively on your machine (recommended): download and unzip [selfie](https://github.com/cksystemsteaching/selfie/archive/main.zip). Then, open a terminal to run selfie, see further below. For this to work, you need to have a C compiler installed on your machine. We recommend using [clang](https://clang.llvm.org) or [gcc](https://gcc.gnu.org) (with [cygwin](https://www.cygwin.com) on Windows). +1. Natively on your machine (recommended): download and unzip [selfie](github.com/cksystemsteaching/selfie/archive/main.zip). Then, open a terminal to run selfie, see further below. For this to work, you need to have a C compiler installed on your machine. We recommend using [clang](clang.llvm.org) or [gcc](gcc.gnu.org) (with [cygwin](www.cygwin.com) on Windows). -2. In docker on your machine (advanced): download and install [docker](https://docker.com). Then, open a terminal and type `docker run -it cksystemsteaching/selfie`. The advantage of using docker is that you can run selfie out of the box on your machine without installing any tools such as a C compiler. All necessary and even optional tools are pre-installed in the [selfie docker image](https://hub.docker.com/r/cksystemsteaching/selfie). However, you need to know how to use docker. +2. In docker on your machine (advanced): download and install [docker](docker.com). Then, open a terminal and type `docker run -it cksystemsteaching/selfie`. The advantage of using docker is that you can run selfie out of the box on your machine without installing any tools such as a C compiler. All necessary and even optional tools are pre-installed in the [selfie docker image](hub.docker.com/r/cksystemsteaching/selfie). However, you need to know how to use docker. -1. In the cloud (easy but requires Internet connectivity): if you only have access to a web browser, just click [here](https://replit.com/new/github/cksystemsteaching/selfie). Alternatively, create a [github](https://github.com) account, unless you already have one, and fork [selfie](https://github.com/cksystemsteaching/selfie) into your github account. Then, create a [cloud9](https://c9.io) student account, connect it to your github account, verify your email address and set a password (important!), and finally clone your fork of selfie into a new cloud9 workspace. +1. In the cloud (easy but requires Internet connectivity): if you only have access to a web browser, just click [here](replit.com/new/github/cksystemsteaching/selfie). Alternatively, create a [github](github.com) account, unless you already have one, and fork [selfie](github.com/cksystemsteaching/selfie) into your github account. Then, create a [cloud9](c9.io) student account, connect it to your github account, verify your email address and set a password (important!), and finally clone your fork of selfie into a new cloud9 workspace. At this point we assume that you have a system that supports running selfie. Below we use the `make` command assuming it is installed on your system which is usually the case. However, we also show the command invoked by `make` so that you can always invoke that command manually if your system does not have `make` installed. diff --git a/docs/index.md b/docs/index.md index 20929a8e..e76962a5 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,4 +1,4 @@ -Selfie is a project of the [Computational Systems Group](http://www.cs.uni-salzburg.at/~ck) at the Department of Computer Sciences of the University of Salzburg in Austria. +Selfie is a project of the [Computational Systems Group](cs.uni-salzburg.at/~ck) at the Department of Computer Sciences of the University of Salzburg in Austria. The Selfie Project provides an educational platform for teaching undergraduate and graduate students the design and implementation of programming languages and runtime systems. The focus is on the construction of compilers, libraries, operating systems, and even virtual machine monitors. The common theme is to identify and resolve self-reference in systems code which is seen as the key challenge when teaching systems engineering, hence the name. diff --git a/grader/README.md b/grader/README.md index ed82b406..d8e5678c 100644 --- a/grader/README.md +++ b/grader/README.md @@ -1,6 +1,6 @@ # The Selfie Autograder -[Selfie](http://selfie.cs.uni-salzburg.at) comes with an [autograder](self.py) implemented in Python that features [compiler](../assignments/compiler-assignments.md) and [systems](../assignments/systems-assignments.md) assignments, located in the [assignments](assignments) subdirectory. The autograder is publicly available and meant to be used by students for self-grading before submitting solutions of assignments. +[Selfie](selfie.cs.uni-salzburg.at) comes with an [autograder](self.py) implemented in Python that features [compiler](../assignments/compiler-assignments.md) and [systems](../assignments/systems-assignments.md) assignments, located in the [assignments](assignments) subdirectory. The autograder is publicly available and meant to be used by students for self-grading before submitting solutions of assignments. In order to use the autograder [install](../README.md) selfie first. @@ -39,7 +39,7 @@ If you subsequently invoke the autograder in bulk mode on `student-repos` again, ## Submitting Solutions for Grading -Solutions of assignments must be submitted as git commit links to a private clone of the selfie repository hosted on GitHub and exclusively shared with your teacher such as the GitHub user [ckirsch](https://github.com/ckirsch) and the teaching assistant. +Solutions of assignments must be submitted as git commit links to a private clone of the selfie repository hosted on GitHub and exclusively shared with your teacher such as the GitHub user [ckirsch](github.com/ckirsch) and the teaching assistant. ### Creating a private clone of selfie @@ -47,17 +47,17 @@ First [install](../README.md) selfie either in the cloud or locally on your mach Then, on the web: -1. Create an account on [github.com](https://github.com) unless you already have one. -2. [Set up SSH-key authentication for GitHub](https://docs.github.com/en/authentication/connecting-to-github-with-ssh) if you haven't done it yet. -3. Create a [new](https://github.com/new), empty repository, name it `myselfie`, and set it to private. -4. Invite your teacher, for example, the GitHub user [ckirsch](https://github.com/ckirsch), to the repository as your only collaborator. +1. Create an account on [github.com](github.com) unless you already have one. +2. [Set up SSH-key authentication for GitHub](docs.github.com/en/authentication/connecting-to-github-with-ssh) if you haven't done it yet. +3. Create a [new](github.com/new), empty repository, name it `myselfie`, and set it to private. +4. Invite your teacher, for example, the GitHub user [ckirsch](github.com/ckirsch), to the repository as your only collaborator. And then, in a terminal where your selfie installation is: -1. Change directory to the root directory of your selfie installation (from https://github.com/cksystemsteaching/selfie). +1. Change directory to the root directory of your selfie installation (from github.com/cksystemsteaching/selfie). 2. Change the `origin` remote name to `upstream`: `git remote rename origin upstream` 3. Add your `myselfie` repository on GitHub as `origin`: `git remote add origin git@github.com:/myselfie.git` -4. Update your installation from `upstream`: `git fetch upstream` (or, initially `git fetch --unshallow upstream` if you are on [repl.it](https://repl.it)) +4. Update your installation from `upstream`: `git fetch upstream` (or, initially `git fetch --unshallow upstream` if you are on [repl.it](repl.it)) 5. Mirror your installation to your `myselfie` repository on GitHub: `git push --mirror origin` 6. Set up the main branch of your installation to push to your `myselfie` repository: `git branch --set-upstream-to=origin/main main` @@ -68,7 +68,7 @@ Your selfie installation as well as your `myselfie` repository on GitHub are suc Update your selfie installation to the latest version of the official selfie repository: 1. Change directory to the root directory of your selfie installation. -2. Make sure that the official selfie repository is set as `upstream`: `git remote add upstream https://github.com/cksystemsteaching/selfie.git` +2. Make sure that the official selfie repository is set as `upstream`: `git remote add upstream github.com/cksystemsteaching/selfie.git` 3. Fetch the latest commits from the official selfie repository (`upstream`): `git fetch upstream main` 4. Make sure the main branch of your selfie installation is checked out: `git checkout main` 5. Merge the updated main branch of the official selfie repository into your main branch: `git merge upstream/main` @@ -87,7 +87,7 @@ Create a development branch in your selfie installation and work on your solutio 2. Make sure the main branch in your selfie installation is checked out: `git checkout main` 3. Create the development branch off the main branch and check it out: `git checkout -b ` 4. Work on your solution and use the autograder for feedback. Do not change the autograder in any way! If you discover a bug, please report it to your teacher. -5. Commit your changes regularly using `git add` and `git commit` with the commit messages formatted as `"message [assignment]"` which triggers the autograder on the `` as [GitHub Action](https://github.com/cksystemsteaching/selfie/actions) on the next push. +5. Commit your changes regularly using `git add` and `git commit` with the commit messages formatted as `"message [assignment]"` which triggers the autograder on the `` as [GitHub Action](github.com/cksystemsteaching/selfie/actions) on the next push. 6. Push your changes to your `myselfie` repository on GitHub for backup: `git push -u origin ` 7. Update your selfie installation to the latest version of the official selfie repository regularly using the above instructions. 8. If you fetched and merged updates go back to the ``: `git checkout ` @@ -110,7 +110,7 @@ Finally, on the web: With your solution committed into the main branch of your `myselfie` repository on GibHub in accordance to the above instructions: 1. Go to your `myselfie` repository on GitHub in a browser and click on the `Latest commit` link. -2. Copy the link and make sure that the link is in the form `https://github.com//myselfie/commit/`. +2. Copy the link and make sure that the link is in the form `github.com//myselfie/commit/`. 3. Submit the link along with the grade reported by the autograder to your teacher as discussed in class. If the autograder reports grade 2, you may submit grade 1 provided that, in a code review, you are able to demonstrate that your code matches the code quality and conventions of selfie. diff --git a/grader/lib/cli.py b/grader/lib/cli.py index 3279c3c7..c69595e3 100644 --- a/grader/lib/cli.py +++ b/grader/lib/cli.py @@ -25,7 +25,7 @@ The autograder is part of the Selfie Project of the Computational Systems Group at the Department of Computer Sciences of the University of Salzburg in Austria, -http://selfie.cs.uni-salzburg.at +selfie.cs.uni-salzburg.at For more detailed information about its usage, please consult the README. ''' diff --git a/grader/self.py b/grader/self.py index ec8dcb3f..23c89d97 100755 --- a/grader/self.py +++ b/grader/self.py @@ -8,7 +8,7 @@ Computer Sciences of the University of Salzburg in Austria. For further information and code please refer to: -http://selfie.cs.uni-salzburg.at +selfie.cs.uni-salzburg.at This is the automatic grader of the selfie system. """ diff --git a/grammar.md b/grammar.md index 8d12015a..a44e6242 100644 --- a/grammar.md +++ b/grammar.md @@ -2,7 +2,7 @@ Copyright (c) the Selfie Project authors. All rights reserved. Please see the AU Selfie is a project of the Computational Systems Group at the Department of Computer Sciences of the University of Salzburg in Austria. For further information and code please refer to: -http://selfie.cs.uni-salzburg.at +selfie.cs.uni-salzburg.at This is the grammar of the C Star (C\*) programming language. diff --git a/riscu.md b/riscu.md index c5322708..50ef1bdf 100644 --- a/riscu.md +++ b/riscu.md @@ -2,7 +2,7 @@ Copyright (c) the Selfie Project authors. All rights reserved. Please see the AU Selfie is a project of the Computational Systems Group at the Department of Computer Sciences of the University of Salzburg in Austria. For further information and code please refer to: -http://selfie.cs.uni-salzburg.at +selfie.cs.uni-salzburg.at This document provides an overview of the RISC-U instruction set. RISC-U is a tiny subset of the 64-bit [RISC-V](https://en.wikipedia.org/wiki/RISC-V) instruction set. The selfie system implements a compiler that targets RISC-U as well as a RISC-U emulator that interprets RISC-U code. RISC-U consists of just 14 instructions listed below. For details on the exact encoding, decoding, and semantics of RISC-U code see the selfie implementation. diff --git a/selfie.c b/selfie.c index a7d01ff0..4c7c64fa 100644 --- a/selfie.c +++ b/selfie.c @@ -7,7 +7,7 @@ Selfie is a project of the Computational Systems Group at the Department of Computer Sciences of the University of Salzburg in Austria. For further information please refer to: -http://selfie.cs.uni-salzburg.at +selfie.cs.uni-salzburg.at The Selfie Project provides an educational platform for teaching undergraduate and graduate students the design and implementation @@ -80,7 +80,7 @@ is inspired by the conservative garbage collector of Hans Boehm. All of selfie including its source code is available at: -https://github.com/cksystemsteaching/selfie +github.com/cksystemsteaching/selfie */ @@ -2184,7 +2184,7 @@ void gc_init(uint64_t* context); // this function performs first-fit retrieval of free memory in O(n) where n is memory size // improvement: push O(n) down to O(1), e.g. using Boehm's chunk allocator, or even compact-fit -// see https://github.com/cksystemsgroup/compact-fit +// see github.com/cksystemsgroup/compact-fit uint64_t* retrieve_from_free_list(uint64_t* context, uint64_t size); uint64_t gc_load_memory(uint64_t* context, uint64_t address); @@ -7925,7 +7925,7 @@ void implement_brk(uint64_t* context) { uint64_t is_boot_level_zero() { // C99 malloc(0) returns either a null pointer or a unique pointer, - // see http://pubs.opengroup.org/onlinepubs/9699919799 + // see pubs.opengroup.org/onlinepubs/9699919799 // in contrast, selfie's malloc(0) returns the same not null address, // if malloc(0) is called consecutively. uint64_t first_malloc; diff --git a/semantics.md b/semantics.md index 34a834e0..e4baea8a 100644 --- a/semantics.md +++ b/semantics.md @@ -2,7 +2,7 @@ Copyright (c) the Selfie Project authors. All rights reserved. Please see the AU Selfie is a project of the Computational Systems Group at the Department of Computer Sciences of the University of Salzburg in Austria. For further information and code please refer to: -http://selfie.cs.uni-salzburg.at +selfie.cs.uni-salzburg.at This document provides an overview of the differences in semantics between the programming language C\* in which selfie is written and the programming language C. Syntactically, C\* is a strict subset of C. Semantically, however, C\* differs from C in, for example, how integer literals and strings are handled. Note that the results presented here were obtained with tools that implement [C11](https://en.wikipedia.org/wiki/C11_(C_standard_revision)) semantics. diff --git a/tools/babysat.c b/tools/babysat.c index 3720009c..5c053849 100644 --- a/tools/babysat.c +++ b/tools/babysat.c @@ -7,7 +7,7 @@ Selfie is a project of the Computational Systems Group at the Department of Computer Sciences of the University of Salzburg in Austria. For further information and code please refer to: -http://selfie.cs.uni-salzburg.at +selfie.cs.uni-salzburg.at Babysat is a naive implementation of a SAT solver for educational purposes. It is arguably even more naive than Donald Knuth's sat0. diff --git a/tools/beator.c b/tools/beator.c index a1bfa3f7..569e83b7 100644 --- a/tools/beator.c +++ b/tools/beator.c @@ -7,7 +7,7 @@ Selfie is a project of the Computational Systems Group at the Department of Computer Sciences of the University of Salzburg in Austria. For further information and code please refer to: -http://selfie.cs.uni-salzburg.at +selfie.cs.uni-salzburg.at BEATOR is a binary translator for bounded model checking that implements a sound and complete translation of RISC-U code to BTOR2 diff --git a/tools/boehm-gc.c b/tools/boehm-gc.c index fbf0ecad..c623b654 100644 --- a/tools/boehm-gc.c +++ b/tools/boehm-gc.c @@ -7,7 +7,7 @@ Selfie is a project of the Computational Systems Group at the Department of Computer Sciences of the University of Salzburg in Austria. For further information and code please refer to: -http://selfie.cs.uni-salzburg.at +selfie.cs.uni-salzburg.at Boehm GC is a selfie implementation of a conservative mark-and-sweep garbage collector developed by Hans Boehm, Alan Demers, and Mark Weiser. diff --git a/tools/buzzr.c b/tools/buzzr.c index 28c06ae7..7dcbd20f 100644 --- a/tools/buzzr.c +++ b/tools/buzzr.c @@ -7,7 +7,7 @@ Selfie is a project of the Computational Systems Group at the Department of Computer Sciences of the University of Salzburg in Austria. For further information and code please refer to: -http://selfie.cs.uni-salzburg.at +selfie.cs.uni-salzburg.at Buzzr is a fuzzer for selfie ... diff --git a/tools/monster.c b/tools/monster.c index 0eae42c8..cfa37ae5 100644 --- a/tools/monster.c +++ b/tools/monster.c @@ -7,7 +7,7 @@ Selfie is a project of the Computational Systems Group at the Department of Computer Sciences of the University of Salzburg in Austria. For further information and code please refer to: -http://selfie.cs.uni-salzburg.at +selfie.cs.uni-salzburg.at Monster is a hybrid symbolic execution and bounded model checking engine that implements a sound and (up to a given bound) complete