C Projects by @dezashibi (Navid Dezashibi)
Hey all 👋 This organization is dedicated to showcasing my skills in C programming and serving as an educational resource for those interested in learning C.
I am Navid Dezashibi, a passionate C programmer. This organization contains a collection of my C projects, demonstrating a range of programming concepts, from basic syntax to advanced algorithms and data structures. Each project is well-documented and includes examples and explanations to aid understanding.
I would be glad to hear your opinions and also cooperate in your company project if you need help, don't hesitate to contact me.
- Skill Demonstration: Highlight my proficiency in C programming through various projects. Also demonstrations of repository management, problem solving, patches, etc by simulating real-life situations. Most of these also have been reflected in the readme files of the repos to show knowledge management and keeping lesson learned materials.
- Educational Resource: Provide a comprehensive code base for beginners and enthusiasts to learn and reference.
- Collaboration: Encourage contributions and collaboration from other C developers and learners.
👉 You can find out about my coding style here.
When browsing repositories here you can follow these conventions to understand the category of the repository:
b-...
means the portfolio project demonstrates beginner friendly concepts, the goal is to use most aspect ofC
programming as much as possible.i-...
means the portfolio project demonstrates intermediate level of programming, might be a toy project or just code examples, these codes are mostly focused on algorithms.a-...
means the portfolio project is an advanced topic, might be a fully working project or just some code examples.<no prefix>...
projects without prefixes are personal projects and code bases that I might work on for the sake of learning, re-implementing, creativity and/or my needs.
- Hello World: Getting started with
C
programming and learn all the basics. - Calculator in C: A cli based calulator with ability to load data from file.
- Prime Number and Palindrome String Checker: checks if a given string is a palindrome then if the string is also an integer number will checks if the given number is a prime number, too.
- Matrix Multiplication: reads matrices data from the given file and prints the result of multiplying them after checking the multiplication possibility.
- Task Manager (todo list) using Linked List: This application will manage a list of tasks, allowing users to add, remove, display, save, and load tasks from a file.
- Conway's Game of Life in
C
: It is designed to be as simple as it can and works on Windows and Linux/Mac without problem. - Directory Search: Using Multi-threading and directory traversing in a cross platform way.
- Portable Binary File Serialization in C: Ensuring Cross-Platform Data Integrity: A simple guide and example code for creating portable binary files in C, addressing architecture-specific challenges like endianness and data alignment.
- Understanding SIMD: A Boost for C Programs: Brief description of what this project entails.
- Producer/Consumer vs. Publisher/Subscriber in C: An examination of the producer-consumer and publish-subscribe patterns, their implementations using in C, and their key differences and applications.
- Lexical Analysis in C with Graphs and Matrices: Using graphs and adjacency matrices in C programming to efficiently implement finite state machines for lexical analysis and parsing.
- clox bytecode vm from Crafting Interpreters Book: This is a follow up/re-implementation of
clox
programming language from Crafting Interpreters Book. - Dang based on Monkey lang: Dezashibi lANGuage - based on the Interpreter in Go book by Thorsten Ball which I rewrote in C using my own DCommon library and with some modifications in approaches.
- Using CMake aka. CMake template: A very beginner friendly cmake template for c projects with unit testing.
- Dezashibi Common Library aka.
dcommon
lib: My commonly used utilities, headers, scripts, etc. - Easy Cross-Platform File Mapping with a Single-Header C Library: A simple and efficient single-header C library for memory-mapped file access, supporting Windows, Linux, and macOS through a unified interface.
- Cross platform multi threading library: Cross platform multi threading library with maximum possible familiarity of pthreads and using native api for windows.
👉 Each repository provides information about its license
This very repo however is licensed under Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)
Copyright (c) 2024 Navid Dezashibi [email protected]. All rights reserved.
By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-NonCommercial 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions.
You are free to:
- Share — copy and redistribute the material in any medium or format
- Adapt — remix, transform, and build upon the material
Under the following terms:
- Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- NonCommercial — You may not use the material for commercial purposes.
No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.
Full license: https://creativecommons.org/licenses/by-nc/4.0/
- GitHub: @dezashibi
Don't hesitate to contact me to share or discuss personal projects or for commercial cooperations. 👋