Skip to content

timfayz/pipe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

pipe – a conceptual programming language

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published