Added drafts folder including some upcoming articles
Signed-off-by: Collin J. Doering <collin.doering@rekahsoft.ca>
This commit is contained in:
parent
ac168aa1af
commit
9976b7a719
13
drafts/church-encoding-in-javascript.markdown
Normal file
13
drafts/church-encoding-in-javascript.markdown
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
title: Church Encoding in JS
|
||||
author: Collin J. Doering
|
||||
date: Jun 19, 2015
|
||||
description: Encoding various types using only variables and functions
|
||||
tags: general
|
||||
---
|
||||
|
||||
TODO
|
||||
|
||||
<!--more-->
|
||||
|
||||
TODO
|
33
drafts/computer-from-scratch.markdown
Normal file
33
drafts/computer-from-scratch.markdown
Normal file
@ -0,0 +1,33 @@
|
||||
---
|
||||
title: Computer From Scratch
|
||||
author: Collin J. Doering
|
||||
date: Jun 19, 2015
|
||||
description: Building a computer from scratch using VHDL
|
||||
tags: general, programming, hardware, nand-to-tetris
|
||||
---
|
||||
|
||||
Recently I have had the pleasure of completing the course *Nand to Tetris* on
|
||||
[Coursea](http://coursera.org). Firstly, I'd like to highly recommend it to anyone! I never
|
||||
thought it would be possible for me to understand computers all the way down to the hardware
|
||||
level (past assembly that is); *Nand to Tetris* has shown me otherwise! It has also inspired me
|
||||
to pursue learning a real world hardware description language and attempt to implement the
|
||||
*Hack* system on an FPGA. In this article I will describe how the process is coming and the
|
||||
what remains to be completed.
|
||||
|
||||
<!--more-->
|
||||
|
||||
After implementing the *Hack Computer System* in the hardware description language described by
|
||||
the course, I went on to implement everything in [VHDL](https://en.wikipedia.org/wiki/VHDL),
|
||||
with the end goal of being able to realize the design on a
|
||||
[FPGA](https://en.wikipedia.org/wiki/Field-programmable_gate_array) (Field Programmable Gate
|
||||
Array). I also needed a set of test benches to verify correctness of the design through
|
||||
simulation. Initially I set out to find a completely open source solution. To my dismay, I
|
||||
found that FPGA's are incredibly proprietary. Namely, the process of *synthesis* cannot be done
|
||||
using open source tools, though there exists a few projects which are reverse engineering the
|
||||
bit file format of various FPGA's in order to develop a open solution to synthesis, they are
|
||||
not yet ready for use. So, synthesis needs to be done with proprietary tools.
|
||||
|
||||
|
||||
which is
|
||||
taking the hardware description (either VHDL or Verilog) and convert it to a bit file (a format
|
||||
the FPGA can use).
|
13
drafts/dfa-simulator.markdown
Normal file
13
drafts/dfa-simulator.markdown
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
title: DFA Simulator
|
||||
author: Collin J. Doering
|
||||
date: Feb 21, 2015
|
||||
description: Deterministic Finite State Machines implemented using functions in haskell and racket
|
||||
tags: general, programming
|
||||
---
|
||||
|
||||
TODO
|
||||
|
||||
<!--more-->
|
||||
|
||||
TODO
|
67
drafts/quines.markdown
Normal file
67
drafts/quines.markdown
Normal file
@ -0,0 +1,67 @@
|
||||
---
|
||||
title: Fun with Quines
|
||||
author: Collin J. Doering
|
||||
date: Feb 21, 2015
|
||||
description: Self replicating programs
|
||||
tags: programming
|
||||
---
|
||||
|
||||
Quines are cute.
|
||||
|
||||
>"Yields falsehood when preceded by its quotation" yields falsehood when preceded by its quotation.
|
||||
|
||||
See wikipedia on quines: <http://en.wikipedia.org/wiki/Quine_(computing)>
|
||||
|
||||
<!--more-->
|
||||
|
||||
``` {.haskell .code-term .numberLines}
|
||||
a = "main = putStrLn $ \"a = \" ++ show a ++ \"\\n\" ++ a"
|
||||
main = putStrLn $ "a = " ++ show a ++ "\n" ++ a
|
||||
```
|
||||
|
||||
``` {.haskell .code-term .numberLines}
|
||||
-- (C) Copyright Collin Doering 2013
|
||||
--
|
||||
-- This program is free software: you can redistribute it and/or modify
|
||||
-- it under the terms of the GNU General Public License as published by
|
||||
-- the Free Software Foundation, either version 3 of the License, or
|
||||
-- (at your option) any later version.
|
||||
--
|
||||
-- This program is distributed in the hope that it will be useful,
|
||||
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
-- GNU General Public License for more details.
|
||||
--
|
||||
-- You should have received a copy of the GNU General Public License
|
||||
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
-- File: Quine.hs
|
||||
-- Author: Collin J. Doering <rekahsoft@gmail.com>
|
||||
-- Date: Apr 14, 2013
|
||||
|
||||
import Data.List (intercalate)
|
||||
|
||||
header = [ "-- (C) Copyright Collin Doering 2013"
|
||||
, "-- "
|
||||
, "-- This program is free software: you can redistribute it and/or modify"
|
||||
, "-- it under the terms of the GNU General Public License as published by"
|
||||
, "-- the Free Software Foundation, either version 3 of the License, or"
|
||||
, "-- (at your option) any later version."
|
||||
, "-- "
|
||||
, "-- This program is distributed in the hope that it will be useful,"
|
||||
, "-- but WITHOUT ANY WARRANTY; without even the implied warranty of"
|
||||
, "-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the"
|
||||
, "-- GNU General Public License for more details."
|
||||
, "-- "
|
||||
, "-- You should have received a copy of the GNU General Public License"
|
||||
, "-- along with this program. If not, see <http://www.gnu.org/licenses/>."
|
||||
, ""
|
||||
, "-- File: haskell-quine.hs"
|
||||
, "-- Author: Collin J. Doering <rekahsoft@gmail.com>"
|
||||
, "-- Date: Apr 14, 2013"
|
||||
, ""
|
||||
, "import Data.List (intercalate)"]
|
||||
|
||||
dta = "main = putStrLn $ intercalate \"\\n\" header ++ \"\\n\\nheader = \" ++ \"[ \\\"\" ++ intercalate \"\\\"\\n , \\\"\" header ++ \"\\\"]\" ++ \"\\n\\ndta = \" ++ show dta ++ \"\\n\" ++ dta"
|
||||
main = putStrLn $ intercalate "\n" header ++ "\n\nheader = " ++ "[ \"" ++ intercalate "\"\n , \"" header ++ "\"]" ++ "\n\ndta = " ++ show dta ++ "\n" ++ dta
|
||||
```
|
13
drafts/simple-assembler.markdown
Normal file
13
drafts/simple-assembler.markdown
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
title: Simple Assembler
|
||||
author: Collin J. Doering
|
||||
date: Feb 21, 2015
|
||||
description: Building a simple assembler for the Hack platform
|
||||
tags: general, computers, programming, haskell, nand-to-tetris
|
||||
---
|
||||
|
||||
TODO
|
||||
|
||||
<!--more-->
|
||||
|
||||
TODO
|
Loading…
Reference in New Issue
Block a user