این زبان بسیار کوچک یک اشاره گر با ۳۰۰۰۰ خانه در اختیار شما میگزارد که اندازه هر خانه ۱ بایت است.این زبان ۸ دستور دارد که به شما اجازه میدهد تا اشاره گر را مدیریت کنید.
این ۸ دستور عبارتند از +-[]><,.
در صورتی که هر کاراکتری به غیر از این ۸ کاراکتر در سورس کد برنامه خود بنویسید توسط مفسر یا کامپایلر نادیده گرفته میشود.در ادامه کار این ۸ دستور زبان برین فاک را آموزش میدهم.
+ این دستور مقدار خانه فعلی را یک واحد افزایش میدهد.
- این دستور مقدار خانه فعلی را یک واحد کاهش میدهد.
< این دستور اشاره گر را یک خانه به سمت راست حرکت میدهد.
> این دستور اشاره گر را یک خانه به سمت چپ حرکت میدهد.
. این دستور مقدار خانه فعلی را به خروجی میفرستد(مقدار عددی خانه فعلی را به خروجی نمیفرستد بلکه یک کاراکتر اسکی که معادل مقدار عددی این خانه است را به خروجی میفرستد.برای مثال برای کاراکتر A این مقدار ۶۵ است و برای کاراکتر B این مقدار ۶۶ است.)
, این دستور مقدار خانه فعلی را برابر با ورودی میکند.(برای مثال اگر کاربر کاراکتر A را وارد کند مقدار خانه فعلی ۶۵ میشود)
] و [ این دو حلقهی تکرار زبان برین فاک هستند.تا زمانی که مقدار خانه فعلی صفر نباشددستورات بین این دو اجرا میشوند.
خب بیاید کمی بیشتر از این زبان بفهمیم.در آغاز اجرای برنامه شما مقدار تمام خانهها ۰ است و اشاره گر روی خانه اول قرار دارد.
000 000 000 000 000 000 000 000 ...
^
برنامه زیر را اجرا میکنیم:
+>>+<<[+>]خانههای حافظه به این شکل در می آیند:
002 000 001 000 000 000 000 000 ...مقدار خانه فعلی یک واحد افزایش میابد،۲ خانه به جلو میرویم،مقدار خانه فعلی یک واحد افزایش میابد،۲ خانه به عقب میرویم،و نهایتاً حلقه مقدار خانه اول را یک واحد افزایش میدهد و اشاره گر نیز روی خانه دوم میماند.
^
مثالی دیگر: این برنامه تمام کاراکتر های اسکی را چاپ میکند(به خروجی میفرستد):
+[.+]اول مقدار خانه اول را برابر ۱ قرار میدهد و سپس وارد یک حلقه میشود،در هر دور مقدار خانه فعلی را چاپ کرده و یک واحد افزایش میدهد.