Code Monkey home page Code Monkey logo

coop's Introduction

COOP stands for C Object Oriented Programming framework, developed by FineALGs (www.FineAlgs.com) with real time embedded systems in mind, along with our students from the Codalleh program (www.Codalleh.org)

COOP features Classes , Inheritance (including virtual functions), Exceptions (that call d'tors), Memory management, our own Unit Testing Framework for C, and more. All of this while maintaining type safety and (many parts of the) intellisense!

It was tested both on Windows (Visual Studio, MSBuild) and Linux (GCC).

COOP aims to give lightweight syntax and minimal performance overhead for achieving efficient and safe embedded code. All you have to do is to copy the COOP folder to you project and:

#include "COOP.h"

You can find a quick usage cheat sheet in the "The COOP Cheat Sheet.docx" file, and by going over the unit tests!

Have fun!

coop's People

Contributors

chava-liberman avatar hannabonert avatar malkysh7668 avatar ronencode avatar sara188171 avatar shmuelfine avatar smartprogramerm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

coop's Issues

problem with adding catch2 test to the project

We look for an information aboat start using with catch2 , we found in this link (https://github.com/catchorg/Catch2/blob/devel/docs/tutorial.md)
we saw there that we can use catch2 with cmake or without cmake, we chose to do it without cmake
(Is it good? Is there a preference to use cmake?)
We look for a link to download the package of catch2 and we found this link, (https://marketplace.visualstudio.com/items?itemName=JohnnyHendriks.ext01&ssr=false#overview)
we found in stackoverflow instructions to start using with catch2 after the download (https://stackoverflow.com/questions/59645381/best-practices-for-unit-testing-with-catch2-in-visual-studio)
we start act according to the instruction and we had a problem in the third step
#include "path_to_catch2/catch.hpp"
we dont know the path_to_catch2
we found a link that explain how to find a location of installed package , (https://askubuntu.com/questions/423355/how-do-i-check-if-a-package-is-installed-on-my-server)
We tried to do what is written there :
//Show the location where the package is installed. The -S (capital S) stands for "search"
sudo dpkg -S {VSTestAdapterCatch2 }
sudo dpkg -S skype
but we got that errore :
M:> dpkg -S VSTestAdapterCatch2
'dpkg' is not recognized as an internal or external command,
operable program or batch file.
how yoperable program or batch file.
we will be happy to get help
thanks

1. Re-test with visual studio

this code was not touched for two years. so I don't really know what is its state right now. check it out:

  1. Make it run and make sure all unit tests pass
  2. Then, instead of using google tests, use Catch2
  3. How can you get rid of the "Proxy" ?

Get to know GObject

(GObject)[https://en.wikipedia.org/wiki/GObject] is based on Glib, which is a separate task of someone in your team. so you can collaborate on figuring out things.
Your task is:

  1. Read its documentation
  2. Download the code and try to build it on Windows (don't get stuck if it doesn't work)
  3. Understand how it implements constructors and destructors
  4. Understand how it implements inheritance

Get to know OOC

The OOC library is trying to do something similar to what we want.
Your task is to:

  1. Read its documentation
  2. Download the code and try to build it on Windows (don't get stuck if it doesn't work)
  3. Understand how it implements constructors and destructors
  4. Understand how it implements inheritance

Get to know MinGW, Cygwin

MinGW and Cygwin are tools with which you can build on Windows code that was written for Linux.
You need to find a tutorial about them and learn how to use them, for helping others to do so as well.
This task will be graded with success when you'll help your team members to build and debug OOC or Glib libraries in that way. (OOC and Glib are explained in other tasks of this team)

How does this compare with ooc kit?

Hi! Could you answer couple of architecture questions?

  1. I've seen in "Projects", you reviewed existing frameworks prior to create this one. What features were missed? For, example, if compare with known http://ooc-coding.sourceforge.net/.
  2. You have note in readme Since C and C++ are compiled differently, there are parts of the COOP infrastructure that can’t be used form within a C++ project.. What limits does it means? I prefer use cpp when available. What limits should i know about? Are those specific for this framework only?

6. Add matrix class

Add a Mat class to COOP - representing a matrix (=single channel image).
Add all the operations of GrayImage to this class.

Does COOP work with GCC?

I see MSVC project files all the way so I'm a bit afraid. Does COOP MSVC only? If it's not then how to use COOP with GCC? Thanks.

Get to know Glib

Glib is a base library for object-oriented programming in C which does something similar to what we want.
Your task is to:

  1. Read its documentation
  2. Download the code and try to build it on Windows (don't get stuck if it doesn't work)
  3. Understand how it implements constructors and destructors
  4. Understand how it implements inheritance

5. Make memory management without pre allocated blocks

Currently, the memory management statically pre-allocates a certain amount of "blocks"
Which is not efficient - we might need much less, or much more, and using a hard coded number does not make sense.
you can make a memory management mechanism without it.
try to find out how does the malloc and free functions work in C for inspiration.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.