Skip to content

Latest commit

 

History

History
67 lines (46 loc) · 4.04 KB

README.md

File metadata and controls

67 lines (46 loc) · 4.04 KB

pipe

If there is intermediate representation for machines, there should be something for humans..

Human = :{                                  -- new type
    Name :str
    age :int                                -- private field
    Parents :*Human[2]                      -- ancestor tree
}

:Human.Introduce () =                       -- public "method"
    stdout.print "Hi! I'm ", .Name          

:Human.HowOld () :int =                     -- age "getter"
    ret .age
fibonacci (n :int) :int =                   -- Fibonacci sequence
    if n == 0                               -- classic way
        ret 0
    ret .(n - 1) + n
                                            
fibonacci (n) => .(n - 1) + n               -- Fibonacci sequence
fibonacci (0) => 0                          -- with function accepting literals
<ul>                                        <!-- embedded code -->
@{for i := 5, i > 0, i--}        
    <li>$i</li>
</ul>

Gitter

Abstract

pipe is a research proposal to create conceptual programming language that draw narrow line among many PLs, DSLs and even declarative notations to form generalized semantic core that will be sufficient to express different programming techniques, paradigms and human intentions. pipe do not follow an approach to include every feature from XYZ languages. On the contrary, simple core but expressible syntax is what pipe strives for. The less complexity in its core, the more complex and reliable software you'll build upon.

Get started

  1. pipe Overview
  2. Comparison with other languages
  3. Transfer natural language to pipe
  4. Language Specification
  5. Proposed architecture
  6. References

Why "pipe"?

Real pipes are well associated with a medium; medium for a flow. What kind of flow you decide. It might be a character stream between processes, it might be a real water flow controlled by a software or just a random thought flow laid down in the code. pipe's task is to give you right fittings, high quality materials, different gauges (for different purposes) and facilitate building your own pipework.

Contacts

If you have any questions feel free to write me a message (tim.fayzrakhmanov@gmail.com) or open an issue.