جستجو در تالارهای گفتگو
در حال نمایش نتایج برای برچسب های 'brainf*ck'.
1 نتیجه پیدا شد
-
سلام و وقت بخیر به تمام عزیزان علاقه مند به حوضه برنامه نویسی. جدیدا زبان برنامه نویسی BrainF*ck خیلی ترند شده و تقریبا هرجا صحبت از سختی باشه اسم ایشان از قلم نمیوفته و از اسمشم معلومه که قراره با مغز چیکار کنه. اما واقعیت چیه برینفاک (به انگلیسی: Brainfuck ) یک زبان برنامهنویسی رمزی است که دستورهای بسیار کمی دارد. این برنامه در سال ۱۹۹۳ توسط اربن مولر با هدف طراحی یک زبان برنامهنویسی با کوچکترین کامپایلر ممکن طراحی شد. کامپایلرهای برینفاک معمولاً کمتر از ۲۰۰ بایت حجم دارند و حتی یک کامپایلر ۱۰۰ بایتی نیز برای آن وجود دارد. یادگیریاین زبان بسیار ساده است ولی برنامهنویسی با اون بسیار سخته به این دلیل که کلا از ۸ تا کامند پشتیبانی میکنه و به جز اونها هرچی در فایل برنامه باشه به عنوان کامنت در نظر گرفته میشه. فکر میکنم این زبان مختصر ترین زبان Turing complete باشه و برای همینه که اینقدر معروف شده ولی در عمل کسی ازش استفاده نمیکنه . دستورات این زبان به شرح زیر است: > = increases memory pointer, or moves the pointer to the right 1 block. < = decreases memory pointer, or moves the pointer to the left 1 block. + = increases value stored at the block pointed to by the memory pointer - = decreases value stored at the block pointed to by the memory pointer [ = like c while(cur_block_value != 0) loop. ] = if block currently pointed to's value is not zero, jump back to [ , = like c getchar(). input 1 character. . = like c putchar(). print 1 character to the console اما زبان چطوری کار میکند: در این زبان شما یک اشارهگر و یک حافظه نامحدود دارید که با دستور های < و > می توانید در خانههای حافظه جا به جا شوید، با دستور های + و − مقدار آن خانه حافظه یکی کم یا زیاد میشود و وظیفه چاپ و گرفتن اطلاعات از کاربر با "." و "," است. احتمالا سخت ترین قسمت زبان for آن باشد(شاید هم while مناسب تر باشد) که با دستورات ] , [ کار میکند و دستورات داخل براکت را تا وقتی اجرا میکند (دقیقا نفهمیدم با چه زمانی :)) ) همونطورکه حدس میزنید در این زبان string به کلی وجود ندارد، آن هم نه مثل c که با char* هندل بشود بلکه به کلی وجود ندارد و یه helloworld ساده مشابه زیر خواهد بود: >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-] >++++++++[<++++>-] <.>+++++++++++[<++++++++>-]<-.--------.+++ .------.--------.[-]>++++++++[<++++>- ]<+.[-]++++++++++. البته چندین مدل دیگر هم امکان پیادهسازی helloworld وجود دارد و این نشان از قدرت و انعطاف پذیری زبان است. #شوخی
- 17 پاسخ
-
- 3
-
- برنامه نویسی
- programming
-
(و 5 مورد دیگر)
برچسب زده شده با: