Languages Features Creators CSV Resources Challenges Add Language
GitHub icon

cooC

cooC - Programming language

< >

cooC is a programming language created in 2000.

#3064on PLDB 23Years Old 0Books
0Papers


Language features

Feature Supported Token Example
Conditionals โœ“
Switch Statements โœ“
Constants โœ“
While Loops โœ“
MultiLine Comments โœ“
/* A comment
*/
Print() Debugging โœ“
Comments โœ“
// A comment
Message Passing โœ“
Line Comments โœ“
// A comment
Interfaces โœ“
@protocol Printing
   -(void) print;
@end
File Imports โœ“
// #import ensures that a file is only ever included once so that you never have a problem with recursive includes.
#import 
#include 
#include 
Constructors โœ“
Pointers โœ“
Single Dispatch โœ“
Strings โœ“
"hello world"
Scientific Notation โœ“
Case Sensitivity โœ“
Assignment โœ“
Increment and decrement operators โœ“
Zero-based numbering โœ“
Variadic Functions โœ“
double average(int count, ...)
{
 //
}
Manual Memory Management โœ“
#include 
#include 
int main(void)
{
  int *poin = malloc(4);
  free(poin);
}
Macros โœ“
// https://learn.microsoft.com/en-us/cpp/preprocessor/macros-c-cpp?redirectedfrom=MSDN&view=msvc-170
// https://gcc.gnu.org/onlinedocs/cpp/Macro-Arguments.html
#define min(X, Y)  ((X) < (Y) ? (X) : (Y))
  x = min(a, b);          โ†’  x = ((a) < (b) ? (a) : (b));
  y = min(1, 2);          โ†’  y = ((1) < (2) ? (1) : (2));
  z = min(a + 28, *p);    โ†’  z = ((a + 28) < (*p) ? (a + 28) : (*p));
Integers โœ“
int pldb = 80766866;
Type Casting โœ“
double da = 3.3;
double db = 3.3;
double dc = 3.4;
int result = (int)da + (int)db + (int)dc; //result == 9
Directives โœ“
#include 
#define height 10
#ifdef
#endif
#if
#else
#ifndef
#undef
#pragma
Gotos โœ“
// C/C++ program to check if a number is 
// even or not using goto statement 
#include  
using namespace std; 
  
// function to check even or not 
void checkEvenOrNot(int num) 
{ 
    if (num % 2 == 0) 
        goto even; // jump to even 
    else
        goto odd; // jump to odd 
  
even: 
    cout << num << " is evenn"; 
    return; // return if even 
odd: 
    cout << num << " is oddn"; 
} 
  
// Driver program to test above function 
int main() 
{ 
    int num = 26; 
    checkEvenOrNot(num); 
    return 0; 
}
Structs โœ“
struct account {
  int account_number;
  char *first_name;
  char *last_name;
  float balance;
};
Symbol Tables โœ“
// Declare an external function
extern double bar(double x);

// Define a public function
double foo(int count)
{
    double  sum = 0.0;

    // Sum all the values bar(1) to bar(count)
    for (int i = 1;  i <= count;  i++)
        sum += bar((double) i);
    return sum;
}
// Symbol Table:
// Symbol name|Type|Scope
// bar|function, double|extern
// x|double|function parameter
// foo|function, double|global
// count|int|function parameter
// sum|double|block local
// i|int|for-loop statement
Bitwise Operators โœ“
int i = 4; /* bit pattern equivalent is binary 100 */
int j = i << 2; /* makes it binary 10000, which multiplies the original number by 4 i.e. 16 */
Assert Statements โœ“
#include 
int i, a[10];
for (i = 0; i < 10; ++i)
  {
  assert(0 <= i && i < 10);
  a[i] = 10-i;
  }
for (i = 0; i < 10; ++i)
  {
  assert(0 <= i && i < 10);
  assert(0 <= a[i] && a[i] < 10);
  a[a[i]] = a[i];
  }
Ternary operators โœ“
#include 
int main(void) { printf("%d", 1 ? 1 : 0); }
Characters โœ“
char character = 'P';
Booleans โœ“
Enums โœ“
enum Gender {
  Male,
  Female,
};
Case Insensitive Identifiers X
Semantic Indentation X
Operator Overloading X
Garbage Collection X
Fixed Point Numbers X
Exceptions X
Classes X
Access Modifiers X
Templates X
Multiple Inheritance X
Namespaces X
Regular Expression Syntax Sugar X
Variable Substitution Syntax X
commen.html ยท cooc.html ยท dts.html

View source

- Build the next great programming language ยท Search ยท Day 212 ยท About ยท Blog ยท Acknowledgements ยท Traffic ยท Traffic Today ยท GitHub ยท feedback@pldb.com