diff --git a/content/blog/00_compiler_intro.md b/content/blog/00_compiler_intro.md index eceaf8a..18d3113 100644 --- a/content/blog/00_compiler_intro.md +++ b/content/blog/00_compiler_intro.md @@ -1,7 +1,7 @@ --- title: Compiling a Functional Language Using C++, Part 0 - Intro date: 2019-08-03T01:02:30-07:00 -tags: ["C and C++", "Functional Languages", "Compilers"] +tags: ["C", "C++", "Functional Languages", "Compilers"] series: "Compiling a Functional Language using C++" description: "In this first post of a larger series, we embark on a journey of developing a compiler for a lazily evaluated functional language." --- diff --git a/content/blog/01_compiler_tokenizing.md b/content/blog/01_compiler_tokenizing.md index a5ebce4..e2980db 100644 --- a/content/blog/01_compiler_tokenizing.md +++ b/content/blog/01_compiler_tokenizing.md @@ -1,7 +1,7 @@ --- title: Compiling a Functional Language Using C++, Part 1 - Tokenizing date: 2019-08-03T01:02:30-07:00 -tags: ["C and C++", "Functional Languages", "Compilers"] +tags: ["C++", "Functional Languages", "Compilers"] series: "Compiling a Functional Language using C++" description: "In this post, we tackle the first component of our compiler: tokenizing." --- diff --git a/content/blog/01_learning_emulation.md b/content/blog/01_learning_emulation.md index 1bc5974..5bcc927 100644 --- a/content/blog/01_learning_emulation.md +++ b/content/blog/01_learning_emulation.md @@ -1,7 +1,7 @@ --- title: Learning Emulation, Part 1 date: 2016-11-23 23:22:42.779811 -tags: ["C and C++", "Emulation"] +tags: ["Emulation"] --- I've decided that the purpose of a blog is to actually use it every once in a while. So, to fill up this blank space, I'll be documenting my own experience of starting to learn how emulation works. I'd like to say right now that my main goal was not to learn emulation. Rather, I needed to emulate to refresh my skills for a different subject area. However, emulation turned out fun enough to write about. diff --git a/content/blog/02_compiler_parsing.md b/content/blog/02_compiler_parsing.md index 6b0247c..9d13599 100644 --- a/content/blog/02_compiler_parsing.md +++ b/content/blog/02_compiler_parsing.md @@ -1,7 +1,7 @@ --- title: Compiling a Functional Language Using C++, Part 2 - Parsing date: 2019-08-03T01:02:30-07:00 -tags: ["C and C++", "Functional Languages", "Compilers"] +tags: ["C++", "Functional Languages", "Compilers"] series: "Compiling a Functional Language using C++" description: "In this post, we combine our compiler's tokenizer with a parser, allowing us to extract structure from input source code." --- diff --git a/content/blog/02_learning_emulation.md b/content/blog/02_learning_emulation.md index 70af90a..b27dc6c 100644 --- a/content/blog/02_learning_emulation.md +++ b/content/blog/02_learning_emulation.md @@ -1,7 +1,7 @@ --- title: Learning Emulation, Part 2 date: 2016-11-23 23:23:18.664038 -tags: ["C and C++", "Emulation"] +tags: ["C", "Emulation"] --- _This is the second post in a series I'm writing about Chip-8 emulation. If you want to see the first one, head [here]({{< relref "/blog/01_learning_emulation.md" >}})._ diff --git a/content/blog/03_compiler_typechecking.md b/content/blog/03_compiler_typechecking.md index 95c0659..49a5620 100644 --- a/content/blog/03_compiler_typechecking.md +++ b/content/blog/03_compiler_typechecking.md @@ -1,7 +1,7 @@ --- title: Compiling a Functional Language Using C++, Part 3 - Type Checking date: 2019-08-06T14:26:38-07:00 -tags: ["C and C++", "Functional Languages", "Compilers"] +tags: ["C++", "Functional Languages", "Compilers"] series: "Compiling a Functional Language using C++" description: "In this post, we allow our compiler to throw away invalid programs, detected using a monomorphic typechecking algorithm." --- diff --git a/content/blog/03_learning_emulation.md b/content/blog/03_learning_emulation.md index bbfe34c..c9a7faf 100644 --- a/content/blog/03_learning_emulation.md +++ b/content/blog/03_learning_emulation.md @@ -1,7 +1,7 @@ --- title: Learning Emulation, Part 2.5 - Implementation date: 2016-11-23 23:23:56.633942 -tags: ["C and C++", "Emulation"] +tags: ["C", "Emulation"] --- _This is the third post in a series I'm writing about Chip-8 emulation. If you want to see the first one, head [here]({{< relref "/blog/01_learning_emulation.md" >}})._ diff --git a/content/blog/04_compiler_improvements.md b/content/blog/04_compiler_improvements.md index 29b7616..bd75d7a 100644 --- a/content/blog/04_compiler_improvements.md +++ b/content/blog/04_compiler_improvements.md @@ -1,7 +1,7 @@ --- title: Compiling a Functional Language Using C++, Part 4 - Small Improvements date: 2019-08-06T14:26:38-07:00 -tags: ["C and C++", "Functional Languages", "Compilers"] +tags: ["C++", "Functional Languages", "Compilers"] series: "Compiling a Functional Language using C++" description: "In this post, we take a little break from pushing our compiler forward to make some improvements to the code we've written so far." --- diff --git a/content/blog/05_compiler_execution.md b/content/blog/05_compiler_execution.md index 94edb91..a443db0 100644 --- a/content/blog/05_compiler_execution.md +++ b/content/blog/05_compiler_execution.md @@ -1,7 +1,7 @@ --- title: Compiling a Functional Language Using C++, Part 5 - Execution date: 2019-08-06T14:26:38-07:00 -tags: ["C and C++", "Functional Languages", "Compilers"] +tags: ["Functional Languages", "Compilers"] series: "Compiling a Functional Language using C++" description: "In this post, we define the rules for a G-machine, the abstract machine that we will target with our compiler." --- diff --git a/content/blog/06_compiler_compilation.md b/content/blog/06_compiler_compilation.md index b1acdec..11ab2b6 100644 --- a/content/blog/06_compiler_compilation.md +++ b/content/blog/06_compiler_compilation.md @@ -1,7 +1,7 @@ --- title: Compiling a Functional Language Using C++, Part 6 - Compilation date: 2019-08-06T14:26:38-07:00 -tags: ["C and C++", "Functional Languages", "Compilers"] +tags: ["C++", "Functional Languages", "Compilers"] series: "Compiling a Functional Language using C++" description: "In this post, we enable our compiler to convert programs written in our functional language to G-machine instructions." --- diff --git a/content/blog/07_compiler_runtime.md b/content/blog/07_compiler_runtime.md index 053ebd7..211e6dc 100644 --- a/content/blog/07_compiler_runtime.md +++ b/content/blog/07_compiler_runtime.md @@ -1,7 +1,7 @@ --- title: Compiling a Functional Language Using C++, Part 7 - Runtime date: 2019-08-06T14:26:38-07:00 -tags: ["C and C++", "Functional Languages", "Compilers"] +tags: ["C", "C++", "Functional Languages", "Compilers"] series: "Compiling a Functional Language using C++" description: "In this post, we implement the supporting code that will be shared between all executables our compiler will create." --- diff --git a/content/blog/08_compiler_llvm.md b/content/blog/08_compiler_llvm.md index 9cd129f..67ed4bb 100644 --- a/content/blog/08_compiler_llvm.md +++ b/content/blog/08_compiler_llvm.md @@ -1,7 +1,7 @@ --- title: Compiling a Functional Language Using C++, Part 8 - LLVM date: 2019-10-30T22:16:22-07:00 -tags: ["C and C++", "Functional Languages", "Compilers"] +tags: ["C++", "Functional Languages", "Compilers"] series: "Compiling a Functional Language using C++" description: "In this post, we enable our compiler to convert G-machine instructions to LLVM IR, which finally allows us to generate working executables." --- diff --git a/content/blog/09_compiler_garbage_collection.md b/content/blog/09_compiler_garbage_collection.md index 78dae40..6e28405 100644 --- a/content/blog/09_compiler_garbage_collection.md +++ b/content/blog/09_compiler_garbage_collection.md @@ -1,7 +1,7 @@ --- title: Compiling a Functional Language Using C++, Part 9 - Garbage Collection date: 2020-02-10T19:22:41-08:00 -tags: ["C and C++", "Functional Languages", "Compilers"] +tags: ["C", "C++", "Functional Languages", "Compilers"] series: "Compiling a Functional Language using C++" description: "In this post, we implement a garbage collector that frees memory no longer used by the executables our compiler creates." --- diff --git a/content/blog/10_compiler_polymorphism.md b/content/blog/10_compiler_polymorphism.md index d861e64..51bf738 100644 --- a/content/blog/10_compiler_polymorphism.md +++ b/content/blog/10_compiler_polymorphism.md @@ -1,7 +1,7 @@ --- title: Compiling a Functional Language Using C++, Part 10 - Polymorphism date: 2020-03-25T17:14:20-07:00 -tags: ["C and C++", "Functional Languages", "Compilers"] +tags: ["C++", "Functional Languages", "Compilers"] series: "Compiling a Functional Language using C++" description: "In this post, we extend our compiler's typechecking algorithm to implement the Hindley-Milner type system, allowing for polymorphic functions." favorite: true diff --git a/content/blog/11_compiler_polymorphic_data_types.md b/content/blog/11_compiler_polymorphic_data_types.md index 0db7cab..f74e018 100644 --- a/content/blog/11_compiler_polymorphic_data_types.md +++ b/content/blog/11_compiler_polymorphic_data_types.md @@ -1,7 +1,7 @@ --- title: Compiling a Functional Language Using C++, Part 11 - Polymorphic Data Types date: 2020-04-14T19:05:42-07:00 -tags: ["C and C++", "Functional Languages", "Compilers"] +tags: ["C++", "Functional Languages", "Compilers"] series: "Compiling a Functional Language using C++" description: "In this post, we enable our compiler to understand polymorphic data types." --- diff --git a/content/blog/12_compiler_let_in_lambda/index.md b/content/blog/12_compiler_let_in_lambda/index.md index 35fdf5f..aa3374f 100644 --- a/content/blog/12_compiler_let_in_lambda/index.md +++ b/content/blog/12_compiler_let_in_lambda/index.md @@ -1,7 +1,7 @@ --- title: Compiling a Functional Language Using C++, Part 12 - Let/In and Lambdas date: 2020-06-21T00:50:07-07:00 -tags: ["C and C++", "Functional Languages", "Compilers"] +tags: ["C++", "Functional Languages", "Compilers"] series: "Compiling a Functional Language using C++" description: "In this post, we extend our language with let/in expressions and lambda functions." --- diff --git a/content/blog/13_compiler_cleanup/index.md b/content/blog/13_compiler_cleanup/index.md index fd640bb..c23dfad 100644 --- a/content/blog/13_compiler_cleanup/index.md +++ b/content/blog/13_compiler_cleanup/index.md @@ -1,7 +1,7 @@ --- title: Compiling a Functional Language Using C++, Part 13 - Cleanup date: 2020-09-19T16:14:13-07:00 -tags: ["C and C++", "Functional Languages", "Compilers"] +tags: ["C++", "Functional Languages", "Compilers"] series: "Compiling a Functional Language using C++" description: "In this post, we clean up our compiler." --- diff --git a/content/blog/boolean_values.md b/content/blog/boolean_values.md index aaad9ef..ff4dee3 100644 --- a/content/blog/boolean_values.md +++ b/content/blog/boolean_values.md @@ -1,7 +1,7 @@ --- title: "How Many Values Does a Boolean Have?" date: 2020-08-21T23:05:55-07:00 -tags: ["Java", "Haskell", "C and C++"] +tags: ["Java", "Haskell", "C", "C++"] favorite: true --- diff --git a/content/blog/dyno_alloy/index.md b/content/blog/dyno_alloy/index.md index 283ca60..f86d2bc 100644 --- a/content/blog/dyno_alloy/index.md +++ b/content/blog/dyno_alloy/index.md @@ -1,7 +1,7 @@ --- title: "Proving My Compiler Code Incorrect With Alloy" date: 2023-06-04T21:56:00-07:00 -tags: ["Chapel", "Compilers", "Alloy"] +tags: ["Chapel", "Compilers", "C++", "Alloy"] description: "In this post, I apply Alloy to a piece of code in the Chapel compiler to find a bug." --- diff --git a/content/blog/jos_local.md b/content/blog/jos_local.md index 22a4cf7..9f6bf17 100644 --- a/content/blog/jos_local.md +++ b/content/blog/jos_local.md @@ -1,7 +1,7 @@ --- title: Local Development Environment for JOS and CS 444 date: 2019-04-07 06:01:00.282 -tags: ["C and C++", "OS Dev"] +tags: ["C", "OS Dev"] --- Working with the instructor's dotfiles on the server is great and all, but there's a few things you can do loccally that you can't do on the school server: