Front Page All Articles Recent Changes Random Article

Contents

Concatenative language

  • ACL
  • Ait
  • Aocla
  • Breeze
  • Callisto
  • Cat
  • Cognate
  • colorForth
  • Concata
  • CoSy
  • Deque
  • DSSP
  • dt
  • Elymas
  • Enchilada
  • ETAC
  • F
  • Factor
  • Fiveth
  • Forth
  • Fourth
  • Freelang
  • Gershwin
  • hex
  • iNet
  • Joy
  • Joy of Postfix App
  • kcats
  • Kitten
  • lang5
  • Listack
  • LSE64
  • Lviv
  • Meow5
  • min
  • Mirth
  • mjoy
  • Mlatu
  • Ode
  • OForth
  • Om
  • Onyx
  • Plorth
  • Popr
  • Porth
  • PostScript
  • Prowl
  • Quest32
  • Quackery
  • r3
  • Raven
  • Retro
  • RPL
  • SPL
  • Staapl
  • Stabel
  • Tal
  • Titan
  • Trith
  • Uiua
  • Worst
  • xs
  • XY
  • 5th
  • 8th

Concatenative topics

  • Compilers
  • Interpreters
  • Type systems
  • Object systems
  • Quotations
  • Variables
  • Garbage collection
  • Example programs

Concatenative meta

  • People
  • Communities

Other languages

  • APL
  • C++
  • Erlang
  • FP trivia
  • Haskell
  • Io
  • Java
  • JavaScript
  • Lisp
  • ML
  • Oberon
  • RPL
  • Self
  • Slate
  • Smalltalk

Meta

  • Search
  • Farkup wiki format
  • Etiquette
  • Sandbox

ConVex

ConVex is a CONcatenative language implemented with VECtorS.

ConVex is implemented in C, compiles to C and inherites from C all the deficiencies of C, in one word: Overflow.

  • Integer overflow. The sum of two positive integers may be negative. Surprise.
  • Buffer overflow. ConVex makes use of a small data buffer that is used to transfer data from the current word to the next. This data buffer can overflow and nothing can be done about that.
  • Heap overflow. ConVex makes use of the C memory allocator and that one may report that nothing is left. In that case a ConVex program will abort with an error message.
  • Stack overflow. ConVex makes use of C functions that manipulate the data buffer. These functions can be recursive and they might overflow the stack. In that case ConVex will abort with an error message. The stack can be made larger without recompiling the program at the expense of heap space.

On the positive side, ConVex can execute Joy programs at a greater speed than an interpreter can do. And because ConVex makes use of vectors instead of lists, certain algorithms are expressed differently and more efficiently in ConVex than they are in Joy.

The current implementation is not finished yet. When finished, it will be available on GitHub. I just want to reserve this name, before anyone else takes it. Ah yes, a convex shape can be split anywhere along a straight line and results in two convex shapes.

This revision created on Sat, 15 Nov 2014 06:55:44 by Wodan58

Latest Revisions Edit

All content is © 2008-2024 by its respective authors. By adding content to this wiki, you agree to release it under the BSD license.