Skip to content

Latest commit

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

 ,, ,,
.g8"""bgd `7MM db mm
.dP' `M MM MM
dM' ` `7Mb,od8 ,6"Yb. `7MMpdMAo. MMpMMMb. `7MM ,pP"Ybd mmMMmm
MM MM' "'8) MM MM `Wb MM MM MM 8I `" MM
MM. `7MMF' MM ,pm9MM MM M8 MM MM MM `YMMMa. MM
`Mb. MM MM 8M MM MM ,AP MM MM MM L. I8 MM
`"bmmmdPY .JMML. `Moo9^Yo. MMbmmd'.JMML JMML..JMML.M9mmmP' `Mbmo
MM
.JMML.

Graphist is a simple programming language written from the point of view of logic. It stresses intuition and self-evidence -- a programmer must understand the logic behind doing things a certain way and not just how they are done -- which makes it suitable as a language for beginners or a pedagogical tool for teaching programming.

The core vocabulary of the language is exceedingly small: just two words. Learning to use these two words properly is learning to program in Graphist.

This simplicity is due to the American philosopher Charles Saunders Peirce's system of existential graphs, which is the ingenious simplification of formal logic Graphist is based on.

The Two Words

Graph

Graphist deals with graphs and nothing else. Any input you supply to Graphist must be expressible as a graph in order for Graphist to understand it. To tell Graphist that something is a graph, you use the graph function: (graph X), where X is the argument that you are defining to be a graph. This is similar to declaring a variable in other languages.

Cut

Cut designates something as being absent from a graph - think of taking scissors to paper to remove certain items from the paper. If the graph command has the effect of affirming its argument, a cut within a graph has the efect of negating its contents, since the argument is separated from what is declared true by virtue of being found on the graph.

Out of these basic principles we can define all logic functions that regularly form the building blocks of programming languages. To see how this is done, read more in the tutorials. Have fun experimenting with the language, and if you have any good ideas, contribute to its development.

Tutorials (If you are a beginner, it is recommended you go in order, though an effort is made to make each tutorial as self-contained as possible)

  • Graphist for Everyone
  • Collaborate on Graphist with Git
  • Graphist for Philosophy
  • Graphist for Linguistics
  • Graphist for Games
  • Graphist is free software.

    About

    visually-oriented logic programming language

    Resources

    Stars

    0 stars

    Watchers

    0 watching

    Forks

    Releases

    Packages

    Contributors