michaelnoguera / 537-proj3 Goto Github PK
View Code? Open in Web Editor NEW"537Make", CS 537 Programming Assignment 3 (Fall 2020). A clone of the `make` utility.
License: MIT License
"537Make", CS 537 Programming Assignment 3 (Fall 2020). A clone of the `make` utility.
License: MIT License
CS 537 Programming Assignment 3 (Fall 2020) Michael Noguera ([email protected]) and Julien de Castelnau ([email protected]) due Nov 5 at 12:30pm == BUILDING == To build, run "make" at the root of this directory. If you specify the DEBUG environment variable as "true" or use "make DEBUG=true", debug symbols will be included in the executable as well. You can also run the scan-build target to build with the Clang static analyzer, and scan-view to view the generated output in a web browser. Use "make clean" to get rid of object files and executables. == USAGE == Valid usages are: - `./537make` - `./537make TARGET` - `./537make -f MAKEFILE` - `./537make -f MAKEFILE TARGET` I/O redirection is supported. == PROJECT STRUCTURE: MODULES == - main: (of course), gets arguments and sorchestrates program operation - makefileparser: macro-scale makefile parser, given a file pointer outputs a directed graph of rules uses pthreads to read, process, and output in a synchronized fashion - makefilerule: interprets individual rules' commands, and handles I/O detection - graph: DAG (errors upon cycle detection), specifically constructed to hold makefile Rules. Topological sorting is handled here. - exec: forks and runs each process as detailed by topologically ordered list. - VARIOUS ADTs: void*s make these fully generic: - linkedlist: linkedlist of void*s - queue: thread-safe circular buffer of void*s (used for synchronization in makefileparser) - bintree: binary tree implementation with string keys and void* values
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.