A list of 64 features found in programming languages.
Below are features with at least 10 measurements (you can also view all).
We also have a page of all keywords and all file extensions.
| title | pseudoExample | yes | no | percentage |
|---|---|---|---|---|
| Comments | # Hello PLDB | 640 | 4 | 99% |
| Line Comments | # Hello PLDB | 541 | 22 | 96% |
| Strings | Hello PLDB | 380 | 2 | 99% |
| Print() Debugging | print "Hello PLDB" | 323 | 1 | 100% |
| MultiLine Comments | /* Hello PLDB */ | 229 | 25 | 90% |
| Integers | 80766866 | 175 | 1 | 99% |
| Floats | 80766866 | 150 | 0 | 100% |
| Booleans | pldb = true | 124 | 8 | 94% |
| Hexadecimals | 80766866 | 111 | 2 | 98% |
| Conditionals | if (isTrue) printPldb() | 80 | 4 | 95% |
| Semantic Indentation | line0 if true line1 print "Hello PLDB" | 74 | 528 | 12% |
| Assignment | name = "PLDB" | 58 | 1 | 98% |
| Octals | 80766866 | 55 | 4 | 93% |
| File Imports | import pldb | 54 | 3 | 95% |
| Functions | function computePLDBRanks() {} | 54 | 2 | 96% |
| While Loops | while (pldb.pop()) loop() | 51 | 5 | 91% |
| Binary Literals | 80766866 | 50 | 1 | 98% |
| Standard Library | print("print is part of stdlib") | 43 | 5 | 90% |
| Operator Overloading | def __add__(): doSomethingDifferent() | 36 | 14 | 72% |
| Classes | class PLDBFile {} | 32 | 6 | 84% |
| Type Inference | imAString = "pldb" | 31 | 1 | 97% |
| Constants | const name = "PLDB" | 30 | 2 | 94% |
| Macros | #define pldbItems 4000 | 28 | 10 | 74% |
| Lists | [2, 3, 10] | 28 | 2 | 93% |
| Switch Statements | switch animal: case dog-buy; case cat-sell; | 27 | 2 | 93% |
| Exceptions | throw new Error("PLDB uh oh") | 25 | 3 | 89% |
| Static Typing | int pldbRank = 100 | 24 | 2 | 92% |
| Case Insensitive Identifiers | pLdB = "PLDB" | 24 | 57 | 30% |
| Garbage Collection | var iDontNeedToFreeThis | 23 | 8 | 74% |
| Case Sensitivity | pldb != PLDB | 22 | 9 | 71% |
| Inheritance | class PLDBFile extends File | 22 | 2 | 92% |
| Pointers | int *pldb | 21 | 5 | 81% |
| Directives | use strict; | 21 | 3 | 88% |
| Access Modifiers | class PLDBFile { public title } | 20 | 3 | 87% |
| Constructors | PLDBFile { constructor() {} } | 17 | 4 | 81% |
| Scientific Notation | 80766866 | 16 | 1 | - |
| Pattern Matching | fib 0 = 1; fib 1 = 1 | 16 | 2 | - |
| Multiline Strings | hello = """Hello\nPLDB""" | 15 | 1 | - |
| Module Pattern | module PLDB {} | 15 | 0 | - |
| Multiple Inheritance | extends parentWhichExtendsSomethingElse | 14 | 6 | 70% |
| Bitwise Operators | 3 == (2 | 1) | 14 | 1 | - |
| Message Passing | get pldb | 13 | 1 | - |
| Structs | struct pldbFile { int rank; char *title; }; | 12 | 0 | - |
| Enums | colorsEnum { "red", "white", "blue"} | 12 | 5 | - |
| Infix Notation | 1 + 2 | 11 | 0 | - |
| Increment and decrement operators | i++ | 11 | 5 | - |
| Zero-based numbering | firstItem = pldb[0] | 10 | 3 | - |
| Maps | {name: "PLDB"} | 10 | 0 | - |
| Disk Output | write("pldb.csv", "...") | 10 | 4 | - |
| Ternary operators | true ? 1 : 0 | 9 | 8 | - |
| Single Dispatch | person.run() | 9 | 1 | - |
| Regular Expression Syntax Sugar | /pldb/ | 9 | 6 | - |
| Here Document | `A big multliline text block` | 9 | 1 | - |
| Generics | function identity<T>(arg: T): T | 9 | 1 | - |
| Function Composition | o = (f, g) => x => f(g(x)) | 9 | 1 | - |
| Anonymous Functions | () => printPldb() | 9 | 1 | - |
| Namespaces | namespace PLDB {} | 8 | 2 | - |
| Function Overloading | add(string: str, string2: str) | 7 | 11 | - |
| Single Pass Compiler | x = 2; print x | 7 | 6 | - |
| Units of Measure | 42cm | 6 | 5 | - |
| Type Classes | 6 | 8 | - | |
| Structural Typing | 5 | 6 | - | |
| Named Arguments | 4 | 8 | - | |
| Variable Substitution Syntax | name = "PLDB"; print $name | 3 | 10 | - |