PDA

View Full Version : گفتگو: یا بی خیال VB6 بشید یا ...



IamOverlord
دوشنبه 20 شهریور 1391, 03:47 صبح
سلام دوستان.

از دادن نظرات منفی از جمله : چرخ رو دوباره اختراع نکنید - این کار ایرانیها نیست و..... اکیدا خودداری فرمایید.

می دونید که بعد از VB6 مایکروسافت دیگه نسخه ی Native این زبان رو ادامه نداد و رفت سراغ VB.net، چیزی که مسلما خیلی ها بیش از VB6 دوست ندارنش، وگرنه هنوز با VB6 کار نمی کردن!
خوب من می گم این همه تلاشی که در نوشتن برنامه با VB6 می کنید، چرا از جهت آینده نگری تلاش نمی کنید؟!
اگه هنوز VB6 رو دوست دارید، چرا خودتون نسخه ی 7 اش رو نمی سازید؟
نه این که تغییرش بدید و ۴ تا کامپوننت بهش اضافه کنید، چون فایده ای نداره، بلکه یه پروژه ی Open Source راه بندازید و از پایه شروع کنید به کدنویسی و گسترش زبان، حداقل برای خودتون!
نگید که نیروی کار نیست، بیا من خودم نیروی کار! یا نگید که بیهوده است، از VB6 که باهوده تره... :دی
یا بی خیال VB6 بشید یا بیایید این کارو با کمک هم انجام بدیم...
خیلی کار ها هست که می شه کرد... می شه به طور کاملا شئ گرا ساختش... می شه پارادایم های جدید برنامه نویسی رو به مرور زمان بهش اضافه کرد... می شه کاری کرد که جلوی زبان های به روز کم نیاره و ...
ببینید نوشتن زبان برنامه نویسی کاری نداره، نوشتن از راه اصولی و تروتمیز، یه مقدار کار تیمی می خواد!!!
ضمنا نگید که نمی تونیم و فلان شرکت ده هزار تا نیروی کار داره و ... آخه از اون ده هزار تا همش هزارتاشون بازار یابن، هزار تاشون تست می کنن و هزار تاشون چای میارن... :دی!
Visual Basic Classic 7
...نظرتون چیه؟

وضعیت فعلی پروژه:
عنوان فعلی: Hypersia (http://sourceforge.net/projects/hypersia/)
اعضای فعلی تیم:
m.4.r.m (http://barnamenevis.org/member.php?247494-m.4.r.m) (مدیر پروژه)
Mohammad Salehi (http://barnamenevis.org/member.php?284726-Mohammad-Salehi)
...
(صبر کنید تا بررسی کنم...!)

SlowCode
دوشنبه 20 شهریور 1391, 07:16 صبح
سلام
من موافقم و هر کمکی از دستم بیاد انجام میدم.

ho3ein.3ven
دوشنبه 20 شهریور 1391, 12:42 عصر
سلام . ایده واقعا جالبی هست.
فقط اگه میشه یکم بیشتر توضیح بده که چطوری میشه نوشتش . باید با اسمبلی نوشت ؟

abidana
دوشنبه 20 شهریور 1391, 15:33 عصر
اگر پایه اید پس اسمش را vb 7 نگذارید تا فردا پس فردا به دادگا ه های بین المللی کشیده نشید و اسم مایکروسافت راگنده تر نکنید
اگر حتی بتوانید یه چیزی تو مایه های Qbasic درست کنید گام خیلی خیلی بلندی برداشته اید

m.4.r.m
دوشنبه 20 شهریور 1391, 15:57 عصر
آقا ایده خوبیه اما احساسی هم نمیشه برخورد کرد سیستم عامل لینوکس رو یک نفر نوشت دیگه این همه آدم نمیتونیم که برنامه نویسی درست کنیم اسمشو بزاریو IRbasic7 اینم اسمش بچه ها فقط باید ابتدا برنامه ریزی کرد تا از کجا شروع و چیکار ها کرد . بچه ها ایده وقتی شروع میشه که شروع به کار کنیم نه اینکه بشینیم هی پست بزنیم دوباره بعده 1 سال پست رو بکشیم بالا بگیم من هستم . از یه روز و زمان خاص باید شروع کرد رفته رفته به تعداد افراد برنامه نویس اضافه خواهد شد تا شروع نشه انگیزه هم شروع نمیشه .

IamOverlord
دوشنبه 20 شهریور 1391, 19:07 عصر
سلام.
در مورد اسم فقط نظرمو گفتم و اصلا اصراری ندارمو فعلا زیاد مهم نیست این قضیه.
در مورد این که باید با چی و چه طوری نوشتش...
اولا که یه زبان برنامه نویسی رو تقریبا با هر زبان برنامه نویسی می شه نوشت. چرا؟ چون که کار یه کامپایلر دریافت رشته ی ورودی (Source Code) و تبدیل اون به رشته ی خروجی (exe یا asm یا ...) با کمک توابع پردازش رشته و ... هست.
این زبان برنامه نویسی رو می شه با همین VB6 نوشت، و می شه به طوری غیر اصولی، سریع تموم کرد. اما اگه بخوایم گسترشش بدیم خودمون گیج می شیم!
کامپایلر 3 تا فاز داره: تحلیلگر لغوی (Lexical) - تحلیلگر نحوی (Syntax) - تحلیلگر معنایی (Semantic)
تحلیلگر نحوی شروع می کنه به تجزیه ی کد و تولید کد میانی، به کمک تحلیلگر لغوی که کارش دریافت از ورودیه، در بخش تحلیلگر معنایی هم که فاز آخر هست، کامپایلر یه سری ارور ها رو می تونه گزارش کنه مبنی بر این که مثلا نوع string نمی تونه byval باشه...
ضمنا یه Source Code برای نمونه می ذارم، از یه کامپایلری که یکی با VB6 طراحی کرده، خیلی ساده هست، اما خیلی از اصول توش رعایت شده که در موردش به امید خدا بحث می کنیم. اول کد این رو بفهمیم بعد بریم سراغ کد خودمون که همه چی از حالت بحث های حاشیه ای در بیاد.
ضمنا در مورد اولین تجربه ی خودم می گم:
وقتی داشتم Assembly رو یاد می گرفتم می دیدم که طرف تو کتابش یه تکه کدهایی رو هی تکرار می کنه. اون موقع متوجه نشدم که تو Assembly می شه از Macro استفاده کرد، به خاطر همین تصمیم گرفتم یه برنامه بنویسم که مثلا وقتی توش می نویسم Print اون ۱۰ خط دستور Assembly مورد نظر رو جایگزین کنه... تا این که تو مدرسه ازمون واسه سمینار پروژه خواستن و کار کشید به طراحی یه زبان برنامه نویسی فارسی. چون تنها بودم حوصله ام سر می رفت تنهایی کد بزنم، کار کشید به روزهای آخر، پوستر طراحی شده بود ولی هنوز خود کامپایلر طراحی نشده بود! آخر سر به خاطر آبروم که شده شب تا صبح نشستم کارو انجام دادم به طور خیلی خیلی ساده ای ولی انجام دادم، موقع سمینار هم سر کامپیوتر پروژه ام رو گسترش می دادم! حتی یه جایی یکی با بچش وسط کد نویسی اومد گفت پروژه رو ارائه بده، ما هم ارائه دادیم Error داد ضایه شدیم رفت!!! چون وسط کدنویسیم بود... هر کی هم می اومد می گفت تقلبه و رفتی C رو فارسی کردی و مفسره و ...، در صورتی که من یه راست کد Assembly رو تولید می کردم و بهشون نشون هم می دادم و فایل exe ی تولید شده رو هم نشون می دادم و Run می کردم.
خلاصه فهمیدم زبان برنامه نویسی فارسی رو بی خیال و از اون موقع موندم تو کف این که یه بار دیگه کامپایلر بسازم اما بهتر و اصولی تر و یه سری کتاب رو لاشو ورق زدم...
به نظرم یکی از بهترین کامپایلر هایی که می شه نوشت همین نسخه ی هفتم VB Classic هست که خودمون رو از VB6 خلاص کنیم و به بقیه انگشت نشون بدیم :دی (انگشت پیروزی)!
کد این Libry Compiler رو ببینید که بفمید می شه... این یه نفر با تشکر از دو نفر تونسته، حالا ما نمی تونیم با کمک هم بتونیم؟!

l4dl4d
دوشنبه 20 شهریور 1391, 19:24 عصر
دوستان یک سورس عالی بود برای شروع که تقریبا میتونم بگم سورس وی بی 6 است یکم غیر حرفه ای تر امکان برنامه نویسی و شی گرایی هم داره
به زبان خود vb6 هم است ولی مشکل اینه که دانلودش کردم ولی حالا باز نمیشه چون کامل دانلود نمیشه
اسمش Ace Programming Language بود و میدونم که از یک سایت ایرانی هم دانلودش کردم ولی حالا پیداش نمیکنم
اگه کسی داره لطفا بزاره

Ace Programming Language

IamOverlord
دوشنبه 20 شهریور 1391, 19:39 عصر
تو لیست زبان های برنامه نویسی (http://en.wikipedia.org/wiki/List_of_programming_languages) Wikipedia این هست: Ace DASL (http://en.wikipedia.org/wiki/Distributed_Application_Specification_Language)
این لینک هم که به Java مربوطه؟! : Build Java apps with Sun's Ace programming language (http://lists.apple.com/archives/java-dev/2003/May/msg00610.html)
ببینیدبعد از VB6 یه عالمه Basic دیگه هم دادن، اما ما چیز خیلی متفاوتی نمی خوایم، می خوایم شبیه VB6 باشه، IDE اش، Syntax اش، اما با یه تغییراتی که باعث به روز تر شدنش باشه و خودمون رو از این VB6 خلاص کنیم و اونو گسترش بدیم اون جور که خودمون می خوایم، طوری که دیگه دلیلی برای استفاده از VB6 نباشه، دیگه نیازی به MSVBVM60.DLL نداشته باشیم و حتی اگه این DLL تو سیستم طرف نبود برنامه ی ما بتونه اجرا بشه...

N30TheM4TRIX
دوشنبه 20 شهریور 1391, 20:29 عصر
سلام
فکرهای خوب و بزرگی در سر دارید اما فکر نمی کنید استفاده از زبانهایی مثل دلفی یا سی بهتر باشه؟
احتمالاً (حتماً) یادگیری این زبان ها کمتر از ساخت (گسترش) یک زبان هستش.

موفق باشید.

l4dl4d
دوشنبه 20 شهریور 1391, 20:44 عصر
سلام دوستان
به نظر من ویبی باشه بهتره چون دوستان شاید بیشتر آشنا باشن و راحت تر هم هست
در ضمن کتاب طراحی کامپایلر رو هم مطالعه کنید که یکی از کتاب دانشگاهی هست چون کامپایل سخت ترین کار است
راستی اگه تونستید کاری کنید که زبان برنامه نویسیش سفارشی باشه

در ضمن دوستان یه سوال داشتم که تالاری نبود توش طرح کنم اینه که من میخوام یه سیستم عامل با ویبی بسازم و کامپایل شد بعدم چطوری رو سیستم نصبش کنم؟
با تشکر

l4dl4d
دوشنبه 20 شهریور 1391, 20:45 عصر
در ضمن دوست عزیز برای فایل dll ی که گفتین میتونیم VB Runtime 6.0 رو تو پکیج نصب بزاریم تا مشکلی پیش نیاد

IamOverlord
دوشنبه 20 شهریور 1391, 21:22 عصر
سلام
فکرهای خوب و بزرگی در سر دارید اما فکر نمی کنید استفاده از زبانهایی مثل دلفی یا سی بهتر باشه؟
احتمالاً (حتماً) یادگیری این زبان ها کمتر از ساخت (گسترش) یک زبان هستش.

موفق باشید.

سلام دوست عزیز.
سوالی که شما پرسیدید، سوالیه که بارها و بارها روش بحث شده و نتیجه اش هم واضحه، هنوز خیلی ها VB6 رو دوست دارن.
ضمنا این که بگیم Pascal بهتره، Basic بهتره یا C کار درستی نیست.
می بینید که هنوز هم Delphi گسترش داده می شه،
هنوز هم ++VC گسترش داده می شه،
و هنوز هم Basic گسترش داده می شه...
مسئله ی ما انتخاب یک زبان برای یادگیری نیست، مسئله ی ما اینه که محیط برنامه نویسی دلخواه خودمون رو داشته باشیم، و مطمئنا اون چیزی که می خوایم بهش برسیم بهتر و آینده دارتر از VB6 ایه که سال 1998 اومد!!!

IamOverlord
دوشنبه 20 شهریور 1391, 21:25 عصر
...
در ضمن دوستان یه سوال داشتم که تالاری نبود توش طرح کنم اینه که من میخوام یه سیستم عامل با ویبی بسازم و کامپایل شد بعدم چطوری رو سیستم نصبش کنم؟
با تشکر

فایل خروجی شما در VB6 فایل exe ی Windows هست که به DLL های Windows نیاز داره، پس اصولا نمی شه با VB6 یه سیستم عامل واقعی ساخت...

IamOverlord
دوشنبه 20 شهریور 1391, 21:29 عصر
در ضمن دوست عزیز برای فایل dll ی که گفتین میتونیم VB Runtime 6.0 رو تو پکیج نصب بزاریم تا مشکلی پیش نیاد
ولی اگه خواستید با VB6 برنامه ی Setup بسازید چی؟! یا خیلی از برنامه های دیگه که نمی خواید براشون Setup تولید کنید؟! وقتی مایکروسافت دیگه مثل قدیما از MSVBVM60.DLL پشتیبانی نمی کنه؟! و برنامه های VB6 تون با هزارتا مشکل به خاطر به روز نبودن مواجه هستن؟!
ما می خوایم در نسخه ی هفت فایل های اجرایی Stand-Alone تولید کنیم...

بهروز عباسی
دوشنبه 20 شهریور 1391, 23:33 عصر
سلام دوست عزیز.
سوالی که شما پرسیدید، سوالیه که بارها و بارها روش بحث شده و نتیجه اش هم واضحه، هنوز خیلی ها VB6 رو دوست دارن.
ضمنا این که بگیم Pascal بهتره، Basic بهتره یا C کار درستی نیست.
می بینید که هنوز هم Delphi گسترش داده می شه،
هنوز هم ++VC گسترش داده می شه،
و هنوز هم Basic گسترش داده می شه...
مسئله ی ما انتخاب یک زبان برای یادگیری نیست، مسئله ی ما اینه که محیط برنامه نویسی دلخواه خودمون رو داشته باشیم، و مطمئنا اون چیزی که می خوایم بهش برسیم بهتر و آینده دارتر از VB6 ایه که سال 1998 اومد!!!
درود به همه
من هم با آقا محمد (N30TheM4TRIX (http://barnamenevis.org/member.php?258686-N30TheM4TRIX)) موافق هستم.
و از طرفی حرف شما هم درسته.
منظورم اینه:

مسئله ی ما اینه که محیط برنامه نویسی دلخواه خودمون رو داشته باشیماما نباید فراموش کنیم که ما ها فقط برنامه نویس هستیم و برنامه ها رو برای سیستم عامل های خاصی از جمله ویندوز طراحی می کنیم و توسعه می دیم.
و خط به خط برنامه ما وابسته به استانداردهای تعریف شده در ویندوز هستش، الان هم که ویندوز حسابی در حال تغییر هستش و ممکنه کلاً این سبک برنامه نویسی که وجود داره از بین بره و زبانهایی با قابلیت های جدید جایگزین بشن.
http://narenji.ir/3282
حالا فرض کنیم شما زبان شخصی سازی شده خودتون رو توسعه دادید وقتی با سیستم عامل روز سازگاری نداشته باشه چی میشه؟
بی خود نیست که مایکروسافت دیگه VB6 رو توسعه نمیده .
اینکه مایکروسافت همیشه اینده نگر بوده و چیزهای دور رو با از دست دادن چیزهای نزدیک به دست میاره بر کسی پوشیده نیست شاید پشتیبانی نشدن Vb6 هم به این دلیل باشه که قرار نیست در سیستم عامل های جدید کار کنه!!!
پس -->> برنامه نویس ها باید چشم انتظار کارهای مایکروسافت باشن
الان مایکروسافت باعث نارضایتی مشتریان و کاربران دلفی شده چگونگی شو در لینک زیر ببین
http://barnamenevis.org/showthread.php?356713-RAD-Studio-XE3-%D8%A8%D9%87-%D8%B2%D9%88%D8%AF%DB%8C-%D9%85%D9%86%D8%AA%D8%B4%D8%B1-%D9%85%DB%8C-%D8%B4%D9%88%D8%AF!!!!&p=1577694&viewfull=1#post1577694 (http://barnamenevis.org/showthread.php?356713-RAD-Studio-XE3-%D8%A8%D9%87-%D8%B2%D9%88%D8%AF%DB%8C-%D9%85%D9%86%D8%AA%D8%B4%D8%B1-%D9%85%DB%8C-%D8%B4%D9%88%D8%AF%21%21%21%21&p=1577694&viewfull=1#post1577694)



نتیجه اش هم واضحه، هنوز خیلی ها VB6 رو دوست دارن.دوست داشتن دلیل مهمی برای این کار نیست باید به چیزهایی دیگه ای فکر کرد.

موفق باشید.

just4froum
دوشنبه 20 شهریور 1391, 23:43 عصر
اینکه مایکروسافت همیشه اینده نگر بوده و چیزهای دور رو با از دست دادن چیزهای نزدیک به دست میاره بر کسی پوشیده نیست

چقدر این جمله با معنا بود. :تشویق::تشویق::تشویق:

IamOverlord
سه شنبه 21 شهریور 1391, 09:01 صبح
سلام آقای بهروز عباسی (http://barnamenevis.org/member.php?231262-%D8%A8%D9%87%D8%B1%D9%88%D8%B2-%D8%B9%D8%A8%D8%A7%D8%B3%DB%8C)...


ممکنه کلاً این سبک برنامه نویسی که وجود داره از بین بره و زبانهایی با قابلیت های جدید جایگزین بشن.
اگه منظورتون پارادایم برنامه نویسی هست که قطعا از بین نمی ره و همچنین سینتکس زبان ها می تونه همون بمونه، اگه منظورتون تغییر کد مقصد هست، کد مقصد بعد از مرحله ی تولید کد میانی قرار داره و اصلا اشکالی پیش نمی آد... خیلی راحت می شه مرحله ی تبدیل کد میانی به کد مقصد رو تغییر داد و اون طوری که مایکروسافت می گه انجام داد...


حالا فرض کنیم شما زبان شخصی سازی شده خودتون رو توسعه دادید وقتی با سیستم عامل روز سازگاری نداشته باشه چی میشه؟
زبان شخصی سازی شده؟! شاید تاپیک رو درست نخونده باشید، ما نمی خوایم VB6 رو Customize کنیم و چهار تا کامپوننت اضافه کنیم که همچنان مشکل سازگاری باقی بمونه، می خوایم از پایه بنویسیم... این که فایل اجرایی نهایی باید چه ساختاری داشته باشه، چه آسیبی به زبان برنامه نویسی ما می زنه؟! اصلا در آینده می خوایم تبدیلش کنیم به یه زبان Cross-Platform، چه چیزی جلوی ما رو می گیره؟!


شاید پشتیبانی نشدن Vb6 هم به این دلیل باشه که قرار نیست در سیستم عامل های جدید کار کنه!!!
قطعا قرار نیست در سیستم عامل های جدید کار کنه! و من هم این تاپیک رو به خاطر همین قضیه راه انداختم... که زبان برنامه نویسیمون چیزی باشه که کد سازگار با محیط های جدید تولید می کنه ولی همون سینتکس قبلی رو داشته باشه، با همون محیط قبلی و ...


دوست داشتن دلیل مهمی برای این کار نیست
این که ما چیزی رو دوست داشته باشیم دلیل کافی برای انجام یه پروژه ی تجاری و برای بقیه مردم نیست، اما دلیل کافی برای انجامش برای خودمون هست...


باید به چیزهایی دیگه ای فکر کرد.
خیلی خوب شد که تو تاپیک شرکت کردید، اگه نکته یا نظر دیگه ای هست بگید...

موفق باشید!

l4dl4d
سه شنبه 21 شهریور 1391, 12:07 عصر
دوستان برای STAND Alone کردن فایل مان در ide خودمان :شیطان:
میتونیم یک فایل winrar درست کنیم و تو قسمت دستوراتش بگیم که آبجکت ستارت آپ project.exe هست
بعد هم میتونیم به صورت sfx ذخیره بشه
در ضمن مجموعه ی نرم افزاری لورد اتورانش با vb6 نوشته شده و اون هم از چنین تکنیکی برای اجرا شدن استفاده می کنه:
اول کل کامپپوننت ها و رانتایم وی بی رو نصب می کنه بعد اجرا میشه
با تشکر

IamOverlord
سه شنبه 21 شهریور 1391, 12:42 عصر
سلام l4dl4d (http://barnamenevis.org/member.php?247757-l4dl4d) عزیز...
درسته که می شه یه کلک هایی زد، اما حقیقتا VB6 همون VB6 ای هست که هست!!! شئ گرا نیست، به یه DLL عتیقه نیاز داره، GUI خیلی قدیمی ای داره، و آینده اش تضمین نیست، مسلما وقتی مایکروسافت تغییری اساسی تو سیستم عاملش نشون بده، VB6 اش هیچ تغییری نمی کنه که عکس العملی نشون بده و اگه همین طوری پیش بره، هیچ آینده ای براش نیست و نباید تلاش بیهوده کرد، باید یه تلاشی کرد که ارزش داشته باشه، مثلا ساخت همین کامپایلر یکی از مفید ترین کارهاییه که می تونیم بکنیم... وگرنه از همین الان باید در این تالارو تخته کرد!!!

l4dl4d
سه شنبه 21 شهریور 1391, 13:16 عصر
پس دوست عزیز , IamOverlord , میتونیم از C++ استفاده کنیم ولی فکر نکنم کسی بلد باشه (در این حد !)

IamOverlord
سه شنبه 21 شهریور 1391, 13:30 عصر
استفاده از ++C فکر خوبیه، ریسکش کم تر از استفاده از سایر زبان هاست. من فکر می کنم به صورت console بنویسیمش بعد با ارسال پارامتر از ide کامپایل کنیم برنامه ها رو. روی کد این Libry Compiler به عنوان مثال بحث کنیم که قضیه روشن بشه. من کد Libry Compiler رو خوندم و تقریبا خیلی جاهاشو متوجه شدم چی کار می کنه. باید مرحله به مرحله بریم جلو، از همین الان قرار نیست شروع به انجام پروژه ی اصلی کنیم، قبلش باید یه چیز خیلی ساده که می شه توش متغیر و Sub و Function تعریف کرد و از چند تا دستور ساده استفاده کرد... درست کنیم، واسه دست گرمی!

SlowCode
سه شنبه 21 شهریور 1391, 13:48 عصر
IamOverlord جان شما خيلي مشتاقي ولي بقيه چطور؟
الان آدماي اينجا 3 دسته هستن: 1- كساني كه واقعا ميتونن كمك كنن ولي وقت ندارن -2- كساني كه هم وقت دارن و هم سوادش رو دارن -3- كساني كه چه مشتاق باشن چه نباشن كمك زيادي نميتونن بكن(مثل خودم:لبخند:)

شما خوتون گفتين اين كار بايد گروهي بشه، ولي تا الان كي اعلام آمادگي كرده؟ مخصوصا اونايي كه از گروه دوم هستن؟
اينطور كه بوش مياد كسي نميخواد شما رو همراهي كنه. لطفا دوستان بگن كه ميتونن كمك كنن يا نه تا آقاي IamOverlord هم مشتاق تر بشن.

abidana
سه شنبه 21 شهریور 1391, 14:03 عصر
همچین چیزی ممکن نیست که شما بتونید یه سیتم عامل با وی بی بنویسید وبه دون استفاده از ویندوز ان را بالا بیاورید.چون هدف ساخت وی بی این بود که برای ویندوز های 98 .98 یه برنامه نویس قوی با رابط کاربری بالا بسازند
یکی از دوستان من یه سیستم عامل با c++ نوشت که برای استفاده از ان سیستم عامل dos را مکمل ان کرد
نمی دانم شاید اینطوری موفق بشی

IamOverlord
سه شنبه 21 شهریور 1391, 14:23 عصر
دسته ی 4 رو جا انداختید: کسایی که هنوز نمی دونن تاپیک هدفش چیه!!!
جناب محسن ۱۵ (http://barnamenevis.org/member.php?122371-%D9%85%D8%AD%D8%B3%D9%86-15) باور کنید من اصلا نیاز به افرادی دارم که فقط مشتاق باشن و حوصله داشته باشن و یه مقدار وقت، وگرنه فکر کردید خود من چه قدر بارمه؟! من چون می دونم که می تونیم، فقط بچه ها می ترسن، این قدر پافشاری می کنم. بعضیا یه جوری پست می ذارن که انگار می خوایم یه ضرب تیمو ببنیدیم Visual Studio بسازیم!!! باور کنید آروم آروم می شه پروژه رو پیش ببریم... حتی اگه فعلا کسی پایه نباشه من خودم کارمو می کنم و تاپیک رو هم پیش می برم.
ببینید من الان نیاز به فارغ التحصیل ندارم، نیاز به دانشجو دارم!!!
انجام این کار یه نفری خیلی خسته کنندس! به خاطر همین باید با هم تیمی کار کنیم و یاد بگیریم حتی اگه بلد نیستیم... باور کنید من می ترسم به بچه ها بگم برید Assembly یاد بگیرید، فکر می کنن چی هست...! یا این که بگم برید یه کم در مورد کامپایلر مطالعه کنید، یارو فکر می کنه باید یه کتاب ۱۰۰۰ صفحه ای رو خط به خط حفط کنه! بابا یه کم نترسید فوقش چیو از دست می دید؟! ...

SlowCode
سه شنبه 21 شهریور 1391, 14:29 عصر
آقاي abidana كسي اينجا حرف از سيستم عامل نزد كه.

IamOverlord جان من خيلي دلم ميخواد شروع كنم(با اينكه وقتم كمه) و اين سورسي كه گذاشتي رو نگاه كردم ولي هيچي متوجه نشدم. ولي بازم.
اسمبلي هم سختي داره ولي يادگيريش زمان بيشتر و تلاش بيشتر ميخواد، ولي شما بگين ما الان چي كار كنيم؟ اسمبلي رو شروع كنيم؟

IamOverlord
سه شنبه 21 شهریور 1391, 14:41 عصر
خوب ببینید الان یه چیز ساده نوشتم (ضمیمه شده) که این کار رو می کنه... اگه مثلا نوشتید dim abc as byte کد اسمبلی معادلشو تولید می کنه:

abc db ?
یا اگه نوشتید dim xyz as dword:

xyz dword ?
قراره همین مدل کارارو بکنیم، یعنی کد منبع رو به کد Assembly تبدیل کنیم... چه کد Assembly ای؟ کد Flat Assembler.
یه مثال خیلی خیلی ساده می زنم... مثلا اگه یارو نوشت a = b چی کار کنیم؟ این کد Assembly ‌رو تولید می کنیم:

mov ax,b
mov a,ax
برید search کنید win32 assembly... برید چهار تا کتاب Assembly انگلیسی و فارسی رو یه نیم نگاهی بندازید... واسه این که بچه ها ترسشون به جای ... بریزه خودمون کد Assembly ‌رو تبدیل به exe نمی کنیم، می دیم به Flat Assembler که یه Assembler خفن برای انواع برنامه نویسی تو Windows و Linux و Dos و ... هست، فقط برید یاد بگیرید که چه طوری برای Windows می شه با Assembly برنامه نوشت که منابع MASM معروف هست...
کسی اگه واقعا مشتاق هست و بلد نیست پیام بده... اگه بلدم هست پیام بده...
ضمنا تو فکرمه یه دامین ثبت کنم و یه وب سایت رسمی راه بندازیم ولی حالا فعلا یه کم صبر کنیم ببینیم کیا پاین...

IamOverlord
سه شنبه 21 شهریور 1391, 14:59 عصر
خوب محسن 15 (http://barnamenevis.org/member.php?122371-%D9%85%D8%AD%D8%B3%D9%86-15) روحیه ی خوبی داری...
به دوستان توصیه می کنم سعی کنیم اگه یه موقعی به یه دلیلی نتونستیم همکاری کنیم، موقتی کنیمش و در دراز مدت پیگیر قضیه باشیم... رودربایستی هم نداریم اگه یه موقع مخت سوت کشید برو یه دو هفته دیگه بیا فقط بیا!
خوب ببینید یه سری Assembler هست که ما دوباره شروع نمی کنیم برای خودمون Assembler بسازیم و فقط کد Assembly رو تولید می کنیم و می دیم به Assembler:
Flat Assembler (http://flatassembler.net/)
Macro Assembler (http://www.masm32.com/)
Netwide Assembler (http://www.nasm.us/)
Turbo Assembler (en.wikipedia.org/wiki/Turbo_Assembler)...
TASM رو که بی خیال... بقیه اش رو هر کدومو که یاد گرفتی اون یکی رو هم می تونی یاد بگیری و آن چنان فرقی با هم ندارن...
در مورد Win32 Assembly منابع خفنی هست که حتی خودمم حال ندارم کامل بخونمشون فعلا! http://www.interq.or.jp/chubu/r6/masm32/tute/tute001.html
اگه مشکلی داشتید می تونید برید فروم Flat Assembler (http://board.flatassembler.net/index.php)...
یه نگاهی هم به این لیست (http://en.wikipedia.org/wiki/X86_instruction_listings) بندازید به چشمتون آشنا بیاد دستوراتش...
خوب به امید خدا بعدا یه مثال Win32 Assembly ساده رو تشریح می کنم که ترستون بریزه...

abidana
سه شنبه 21 شهریور 1391, 15:09 عصر
پیشنهاد بسیار خوبی به شرطی که بعد از هماهنگی ها از کسی از زیر کار در نره و به بهانه های مختلف من دراوردی مثل برادرم کتابم را پاره کرده یا کنکو قبول نشدم یا ................. یگران را علاف خودش نکند

IamOverlord
سه شنبه 21 شهریور 1391, 15:16 عصر
البته اگه یکی از زیر کار در بره سرعت انجام پروژه کم تر می شه، پروژه متوقف نمی شه به امید خدا...

_behnam_
سه شنبه 21 شهریور 1391, 15:39 عصر
سلام
اینجا هیچ پروژه ای تا الان به پایان نرسیده!!!
اگه واقعا جدی هست یه جای کنفرانسی مثل یاهو و ... قرار بزارید که هم نخواید واسه یه جمله 1 ساعت منتظر بمونیم و
هم پروژه متن باز نباشه و هم اینکه بشه یه گروه مطمئن تشکیل داد که به هر عضو وظیفه ای مشخص داد.

IamOverlord
سه شنبه 21 شهریور 1391, 16:00 عصر
متن باز بودن پروژه که فعلا مشکلی نیست...
دلیل به پایان نرسیدن پروژه ها هم تا جایی که می دونم فقر اطلاعاتی، بری دیگه برنگردی، به حاشیه کشوندن و کارهای مهم تر بعضی افراد هست...!
ایده ی کنفرانس تو یاهو یا جاهای دیگه ایده ی جالبیه...
page یا group تو facebook چی؟ ...

_behnam_
سه شنبه 21 شهریور 1391, 16:07 عصر
تا میتونید از از مرورگرها واسه ارتباط خودداری کنید چون خیلی سریع نیستن مثلا ممکنه تا شما بخوای جواب بنده رو بدی من حوصله ام سر بره و برم بخوابم همین باعث میشه کارا کلی عقب بیوفته.
واسه این میگم یاهو یا بیلوکس چون درجا همه باهم میتونیم ارتباط داشته باشم و هم صوت و تصویر هم هست.

m.4.r.m
سه شنبه 21 شهریور 1391, 16:52 عصر
یا مثلا :

دستور JMP به این شکل استفاده میشود:
برچسب JMP
منظور از برچسب مکانی از برنامه است . در اسمبلی برای اینکه یک نقطه از برنامه را علامت بزنیم ، نام برچسب مورد نظر را مینویسیم و برای اینکه اسمبلر آن را با یک دستورالعمل اجرائی اشتباه نکند، کاراکتر (:) را در مقابل آن قرار میدهیم مانند: :Start
سپس میتوانیم با دستور JMP به آنحا پرش کنیم .


: Start

:
:

Jmp Start
دقت کنید که بعد از Start ی که در مقابل JMP نوشتیم علامت : قرار نداده ایم .
این JMP ها از نوع JUMP NERA هستند و نوعی دیگر بنام JUMP FAR هم داریم که بزودی آن را هم یاد میگیریم .
مثال : برنامه ای که در مثالهای قبل نوشتیم را در نظر بگیرید . اگر ما از روی دستورالعملهای برنامه با JMP پرشی انجام دهیم هیچکدام از آن کدها اجرا نخواهندشد:
۱] JMP Quit _
2] mov ax/0E07h
3] int 10h
4] Quit :_
5] int 20h
برنامه از روی سطرهای ۲وَ۳ پرش خواهد کرد .
ثبات پرچم (Flags)
ثبات پرچم یک ثبات ۱۶ بیتی است که ۱یا ۰ا بودن بیتهای آن نشانه درست یا نادرست بودن یک شرط است . مثلا اگر با دستورالعمل خاصی (میخوانیم ) تست کنیم که آیا ثبات BX مقدار ۰ را دارد ، در این صورت بیت ۶ برابر ۰ میشود و … .
از این ۱۶ بیت فقط ۹ بیت استفاده میشود که به شرح زیر هستند :

۱۶ ۱۵ ۱۴ ۱۳ ۱۲ ۱۱ ۱۰ ۹ ۸ ۷ ۶ ۵ ۴ ۳ ۲ ۱ ۰
* * * * * O D I T S Z * A * P * C
علامت * به معنای بی استفاده بودن است .
۱- پرچم نقلی یا (CF) . بیت ۰ در نتیجه اجرای وقفه ها یا بعضی اعمال حسابی تغییر میکند .
۲-پرچم توازن (ZF) . بر اساس یک عمل مقایسه ای یا حسابی تغییر میکند . اگر نتیجه یک عبارت ۰ باشد مقدار ۱ و اگر نتیجه ۱ باشد مقدار ۰ میگیرد.
۳-پرچم وقفه (IF) . اگر ۰ باشد هیچ وقفه ای نمیتواند اجرا شود و اگر ۱ باشد میتوان وقفه ها را فراخوانی کرد . و … . ۶ پرچم دیگر را فعلا لازم نداریم بنا براین توضیحی برای آنها ارائه نمیکنیم .
دستور مقایسه ای CMP
برای مقایسه مقادیراز دستور CMP (مخفف CoMPare) استفاده میکینم . این دستور مقدار داخل یک ثبات یا متغیر را با مقداری دیگر مقایسه کره و روی ثبات های CFو ZFو تاثیر میگذارد . بعد از مقایسه میتوانیم بر حسب وضعیت پرچمها پرش لازم را انجام دهیم .
مثلا CMP BX/0 تست میکند که آیا مقدار BX برابر ۰ است یا نه . در صورتی که برابر ۰ باشد ،پرچم ZF برابر ۱ میشود .
با همین دستور CMP میتوانیم کوچکتر،بزرگتر و …. را هم تست کنیم .
پرشهای شرطی
برای پرشهای شرطی از دستورهای زیر درست مثل JMP استفاده میکنیم .
JE/JZ : اگر محتوای ZF صفر باشد جهش میکند . اگر دو مقداری که مقایسه کرده ایم برابر باشیند پرش انجام میشود.
JNE/JNZ : برعکس JZو JEو هستند و اگر ZF یک باشد (بعبارتی دو مقداری که مقایسه کردیم برابر نباشند) جهش انجام میشود.
JA/JNBE : اگر محتوای ثبات یا متغیری که مقایسه کرده ایم بزرگتر از عدد مورد نظر باشد پرش انجام میدهد .
مثلا :
mov bh/1
cmp bh/10
ja Dest
مقدار BH برابر ۱ است و در سطر دوم تست آن را با ۱۰ مقایسه میکنیم . در سطر سوم چون BH بزرگتر از ۱ نیست ، پس پرش JA Dest انجام نمیشود .
JAE/JNB : اگر بزرگتر یا مساوی باشد ، پرش انجام میشود.
JB/JNAE: در صورتی که کوچکتر باشد پرش انجام میشود.
JBE : در صورتی که کوچکتر یا مساوی باشد پرش انجام میشود .
مثال :
میخواهیم برنامه ای بنویسیم که تمام کاراکترهای بین ۱۲۸ تا ۲۵۵ را چاپ کند.

ے تمام برنامه ساده و روشن است ولی در سطر آخر نکته جدیدی وجود دارد . بعد از END نام برچسب Start را آورده ایم . نکته ای که در نوشتن برنامه های اسمبلی باید مراعات کنیم اینست که : اگر از برچسبی در برنامه استفاده میکنیم ، اسمبلر باید یک برچسب را به عنوان نقطه آغاز کدبرنامه ببیند . به همین خاطر علاوه بر برچسب CHARS یک برچسب بنام Start هم در ابتدای برنامه تعریف کرده و برای اینکه اسمبلر بداند ما کدام برچسب را برای اینکار انتخاب کرده ایم ، نام آن را در مقابل END می آوریم ، یعنی END START .
نکته دیگر اینکه ، در اسمبلر هر چیزی که بعد از کاراکتر (;) باشد ، توضیح (Comment) فرض شده و اصلا ترجمه نمیشود . (مثل REM در بیسیک و .. ) .
هر comment باید در یک سطر جای داده شود و اگر از این مقدار بیشتر بود میتوانیم در سطر بعد
هم یک کاراکتر (;) درج کرده و ادامه توضیحات را بعد از آن بیاوریم .


. MODEL SMALL
. CODE
ORG 100H
START :


کاراکتر ۱۲۸ برای شروعMOV CH/128 CHARS : ;


کداسکی را درAL قرار میدهیم تا چاپ شودMOV AL/CH ;
سرویس ۰Eh برای چاپ کاراکترMOV AH/0EH ;
اینتراپت 10 ; INT 10H
یکواحد به CH اضافه کنINC CH ;
مقایسه CH با 255 ; CMP CH/255
اگر مساوی نباشد به CHARS پرش میکندJNZ CHARS ;
INT 20H
.END START

m.4.r.m
سه شنبه 21 شهریور 1391, 17:00 عصر
دوست عزیزم IamOverlord اینی که گذاشتم رو تست بکنید ببینید چیز خوبی به نظر میرسه نه ؟

http://p30download.com/fa/entry/36190/tx/%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF%20%D9%86%D8%B 1%D9%85%20%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%20%DA%A9% D8%A7%D9%85%D9%BE%D8%A7%DB%8C%D9%84%D8%B1%20%D8%B2 %D8%A8%D8%A7%D9%86%20%D8%A7%D8%B3%D9%85 (http://p30download.com/fa/entry/36190/tx/%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF%20%D9%86%D8%B 1%D9%85%20%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%20%DA%A9% D8%A7%D9%85%D9%BE%D8%A7%DB%8C%D9%84%D8%B1%20%D8%B2 %D8%A8%D8%A7%D9%86%20%D8%A7%D8%B3%D9%85%D8%A8%D9%8 4%DB%8C)
%D8%A8%D9%84%DB%8C (http://p30download.com/fa/entry/36190/tx/%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF%20%D9%86%D8%B 1%D9%85%20%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%20%DA%A9% D8%A7%D9%85%D9%BE%D8%A7%DB%8C%D9%84%D8%B1%20%D8%B2 %D8%A8%D8%A7%D9%86%20%D8%A7%D8%B3%D9%85%D8%A8%D9%8 4%DB%8C)

این قسمت هم دوستان مطالعه کنن بدک نیست
http://www.mypersianforum.com/showthread.php?t=32256#axzz26Ctao8gp

m.4.r.m
سه شنبه 21 شهریور 1391, 17:02 عصر
اینم آموزش چند تا توابع اسمبلی

abidana
سه شنبه 21 شهریور 1391, 17:34 عصر
فقط پسورد میخواست

abidana
سه شنبه 21 شهریور 1391, 17:35 عصر
میگم یه هفته مهلت بده درباره ی اسمبلی مطالعه کنیم اونوقت وارد عمل بشیم

IamOverlord
سه شنبه 21 شهریور 1391, 22:00 عصر
دوست عزیزم IamOverlord اینی که گذاشتم رو تست بکنید ببینید چیز خوبی به نظر میرسه نه ؟

http://p30download.com/fa/entry/36190/tx/%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF%20%D9%86%D8%B 1%D9%85%20%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%20%DA%A9% D8%A7%D9%85%D9%BE%D8%A7%DB%8C%D9%84%D8%B1%20%D8%B2 %D8%A8%D8%A7%D9%86%20%D8%A7%D8%B3%D9%85 (http://p30download.com/fa/entry/36190/tx/%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF%20%D9%86%D8%B 1%D9%85%20%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%20%DA%A9% D8%A7%D9%85%D9%BE%D8%A7%DB%8C%D9%84%D8%B1%20%D8%B2 %D8%A8%D8%A7%D9%86%20%D8%A7%D8%B3%D9%85%D8%A8%D9%8 4%DB%8C)
%D8%A8%D9%84%DB%8C (http://p30download.com/fa/entry/36190/tx/%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF%20%D9%86%D8%B 1%D9%85%20%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%20%DA%A9% D8%A7%D9%85%D9%BE%D8%A7%DB%8C%D9%84%D8%B1%20%D8%B2 %D8%A8%D8%A7%D9%86%20%D8%A7%D8%B3%D9%85%D8%A8%D9%8 4%DB%8C)

این قسمت هم دوستان مطالعه کنن بدک نیست
http://www.mypersianforum.com/showthread.php?t=32256#axzz26Ctao8gp

سلام دوست عزیز...
دقیقا ما با امثال MASM کار داریم و به درد برنامه نویسی 32 بیتی در Windows می خورن... ولی فعلا باید به طوری کلی با Assembly آشنا شد... بعدا به جای وقفه ها از توابع Win32 API استفاده می کنیم... بعدا هم اگه مایکروسافت خوابی دید می ریم از یه چیز دیگه که گفته استفاده می کنیم...

IamOverlord
سه شنبه 21 شهریور 1391, 22:04 عصر
اینم نمونه البته خیلی ساده
رنگی کردن کلمات کلیدی و خاصیت تکمیل کد.

داداش دمت گرم!!! خیلی توپ بود، همون که می خواستیم...
نوشتن IDE با Delphi کار عاقلانه ای به نظر می رسه...

IamOverlord
سه شنبه 21 شهریور 1391, 22:14 عصر
الان که فکر می کنم می بینم یه سری گزینه ها در اختیار داریم...
نوشتن کامپیالر با VB6 که احتمالا در آینده نیاز به بازنویسیش داریم...
نوشتنش با ++C که ریسکش کم تر از VB6 هست اما در مورد کار با رشته ها تو ++C من که هنوز روش نسبتا ساده ای پیدا نکردم...!
نوشتنش با Delphi که هم کار با رشته ها ساده هست، هم بهتره IDE رو تو Delphi طراحی کنیم، اما کیا Delphi بلدن؟ ...
...

نظر شما چیه؟

ho3ein.3ven
سه شنبه 21 شهریور 1391, 22:36 عصر
سلام . به نظر من c++ خیلی بهتره چون خیلیا باهاش آشنایی دارن.

l4dl4d
سه شنبه 21 شهریور 1391, 22:57 عصر
آخه دوست عزیز c++ درسته بهتره ولی کمتر کسی حرفه ای است ولی دلفی آسون تره
در ضمن برای طراحی ide میتونیم از هر زبانی استفاده کنیم چون کار سختی نیست ولی کامپایلر مشکل اصلیه
در ضمن همون پروژه ی ace رو که گفتم کامپایلرش رو میتونیم ارتقا بدیم یا همونو واسه برنامه بزاریم که تو vb نوشته بودنش
ممنونم

IamOverlord
سه شنبه 21 شهریور 1391, 23:32 عصر
در مورد IDE به ذهنم می رسه که از همون Delphi استفاده کنیم به کمک دوست عزیزمون بهروز عباسی (http://barnamenevis.org/member.php?231262-%D8%A8%D9%87%D8%B1%D9%88%D8%B2-%D8%B9%D8%A8%D8%A7%D8%B3%DB%8C)...
اما بهتره خودمون شروع به نوشتن کل کد کنیم، البته از پروژه های دیگه ای هم کمک بگیریم...
کیا موافقن که اول با VB6 شروع کنیم بعد که کارمون راه افتاد کد رو ترجمه کنیم به دلفی؟
کیا موافقن که یه ضرب بریم سراغ دلفی؟
در مورد ++C آشنایی بچه ها زیاده ولی دلفی مناسب تره، نسبت به ++C برای خودمون راحت تره...
اما مسئله ای که هست اینه که می تونید با دلفی کار کنید یا نه؟ می تونیم یه مقدار وقت بزاریم روش مطالعه کنیم...

m.4.r.m
سه شنبه 21 شهریور 1391, 23:36 عصر
من دلفی و پاسکال رو کار کردم با توابع دلفی هم تا حدودی آشنایی دارم تو کاردانی درس دلفی 20 گرفته بودم کارش در مورد توابع ویندوز و سخت افزاری رو یکم مطالعه کنیم کار می کنیم . از روشی که مطمئن هستیم به بن بست نمیرسیم شروع کنیم نه مثه مهندس های امروزی که کار رو شروع می کنن بعد یادشون می افته تو مسیرشون مسجد وجود داره ..... اول مطالعه دقیق در مورد همشون و کسب اطلاعات حرفه ای بعد شروع کار این بهتره نه دوستان ؟

m.4.r.m
سه شنبه 21 شهریور 1391, 23:39 عصر
Win32_PhysicalMemory class

http://msdn.microsoft.com/en-us/library/aa394347%28v=VS.85%29.aspx
تو دلفی

m.4.r.m
سه شنبه 21 شهریور 1391, 23:54 عصر
بچه ها من یه رفیق دارم ارشد نرم افزار داره بهش گفتم کمکی چیزی به ما بکنه گفت به جای این کار یه شبیه ساز شبکه با ویژوال و کد نویسی آسون درست کنین که هم طرفدار زیاد داره هم درآمد زایی بکنین نظر شما چیه حرفش خوبه یا نه ؟

IamOverlord
چهارشنبه 22 شهریور 1391, 03:16 صبح
سلام.
ببینید پروژه های خیلی خوب و یا در آمد زایی می شه انجام داد که موضوعش خارج از بحث این تاپیک باشه...
اما فعلا هدف ما درآمد زایی نیست...
طرفدار کاری که می کنیم هم خودمون هستیم و امثال خودمون...
به نظر من توصیه ی دوستتون می تونه توصیه خوب و مفیدی باشه به غیر از اون قسمتی که گفته "...به جای این کار..." !

IamOverlord
چهارشنبه 22 شهریور 1391, 03:20 صبح
یه سوالی تو این تاپیک (http://barnamenevis.org/showthread.php?360719-%D8%A7%D9%86%D8%AC%D8%A7%D9%85-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%87%D8%A7%DB%8C-Open-Source) پرسیدم در مورد گذاشتن امکانات انجام پروژه های Open Source در سایت، که دوست خوبمون MohammadGh2011 (http://barnamenevis.org/member.php?189627-MohammadGh2011) گفتن که در این مورد قبلا بحث شده اما یه پیشنهاد خوبی دادن در مورد استفاده از نرم افزار RaidCall (www.raidcall.com/)...
نظرتون چیه؟...

IamOverlord
چهارشنبه 22 شهریور 1391, 03:45 صبح
تو RaidCall گروه ساختم...

اسم گروه: VB Classic 7
ID گروه: 5071035

m.4.r.m
چهارشنبه 22 شهریور 1391, 12:25 عصر
عزیزان در بچه های گروه اسمبلی سایت هم میتونیم کمک بگیریم چند نفر که آشنا به کد نویسی هستن . اگه موافق بودین دعوت کنیم

l4dl4d
چهارشنبه 22 شهریور 1391, 14:13 عصر
دوستان نظرتون در مورد سایت پشتیبانی واسه vb7 classic چیه ؟؟
میتونیم تو رزبلاگ یکی بزنیم در ضمن یه دامنه ی خوب هم هست رایگانه :
cydots.com
مثلا vb7-classic.au.ms
حتی میتونیم خودمون سایت رو طراحی کنیم بعد رو هاست بریزیم و به رزبلاگ وصلش کنیم
با تشکر

l4dl4d
چهارشنبه 22 شهریور 1391, 14:15 عصر
دوستان اگه بخواین هم یه چت روم اختصاصی دارم هم انجمن که اونجا بحث رو ادامه بدیم
تصمیم با خودتونه
با تشکر

m.4.r.m
چهارشنبه 22 شهریور 1391, 15:24 عصر
به نظر بنده وب سایت موقعی باید تاسیس بشه که کار واقعا راه افتاده و 50 درصد کار رو انجام دادیم . در مورد انجمن هم همینجا خوبه فقط یه قسمت باید درخواست کنیم برامون درست کنن و خصوصی باشه اینطوری خوب نیست ؟

IamOverlord
چهارشنبه 22 شهریور 1391, 17:08 عصر
انجمن که همین جا خوبه، RaidCall هم که هست،
در مورد کمک گرفتن از بخش Assembly هم موافقم،
یه وقتی قرار بذارید با هم بریم RaidCall... من که هر وقت باشه پایم...

IamOverlord
چهارشنبه 22 شهریور 1391, 20:25 عصر
سایت و دامین و این کاراش با من...
من قبلا برای خودم از ModiranHost گرفتم... با توجه به قیمتش و امکاناتش سرویس خیلی خوب و مناسبیه... اما همون طور که دوستون m.4.r.m (http://barnamenevis.org/member.php?247494-m.4.r.m) گفت طراحی سایتو بذاریم یه کم بگذره بعد...

IamOverlord
چهارشنبه 22 شهریور 1391, 21:50 عصر
قبلا گفتم که یه مثال می زنم...

خوب برنامه ی Hello World که ۱۶ بیتی باشه در FASM به این شکل هست که احتمالا اکثرتون دیده باشین:

format MZ
entry .code:start
segment .code
start:
mov ax, .data ; put data segment into ax
mov ds, ax ; there, I setup the DS for you
mov dx, msg ; now I give you the offset in DX. DS:DX now completed.
mov ah, 9h
int 21h
mov ah, 4ch
int 21h
segment .data
msg db 'Hello World', '$'
format mz مشخص می کنه که برنامه ی ما فایل exe ی ویندوزی نیست و از نوع MZ Executable در Dos هست و از وقفه ها استفاده می کنه...
entry .code:start مشخص می کنه که نقطه ی ورودی برنامه ی ما برچسب start در سگمنت code هست...
segment .code مشخص می کنه که داریم سگمنت کد رو می نویسیم...
start: برچسب start برنامه هست...
segment .data سگمنت data رو تعریف می کنه که اطلاعاتمون اون جا هست... که آرایه ی msg از نوع byte حاوی رشته ی پیاممون که با $ خاتمه پیدا کرده هست...
int 21h هم وقفه ی ۲۱ در مبنای ۱۶ رو صدا می زنه که وقفه ی DOS هست با یه عالمه سرویس که ثبات ah مشخص می کنه کدوم سرویس رو می خوایم... مثلا سرویس 9 در مبنای ۱۶ سرویس چاپ پیامی هست که آدرس متغیر مربوط به پیام در dx قرار می گیره... و سرویس 4c در مبنای ۱۶ برنامه رو خاتمه می ده...

اما برنامه ی Hello World که Win32 ای باشه در FASM به این شکل هست:

format PE GUI
include 'include\win32a.inc'
invoke MessageBox,0,hellomsg,hellolb,MB_OK
invoke ExitProcess,0

hellomsg db 'Hello World',0
hellolb db 'Test Of FASM',0
data import
library user32,'user32.dll',kernel32,'kernel32.dll'
include 'include\apia\user32.inc'
include 'include\apia\kernel32.inc'
end data
که البته فایل win32a.inc رو include کرده که برنامه خلاصه تر نوشته بشه...
این قسمت توابع API مورد نظر رو از کتاب خانه های مورد نیاز import می کنه:

data import
library user32,'user32.dll',kernel32,'kernel32.dll'
include 'include\apia\user32.inc'
include 'include\apia\kernel32.inc'
end data
این قسمت دو رشته ی پیاممون رو تعریف می کنه و آدرسشون در hellomsg و hellolb نگه داری می شه:

hellomsg db 'Hello World',0
hellolb db 'Test Of FASM',0
این قسمت هم دو تابع API مورد نظر رو فراخوانی می کنه:

invoke MessageBox,0,hellomsg,hellolb,MB_OK
invoke ExitProcess,0

بهروز عباسی
چهارشنبه 22 شهریور 1391, 23:14 عصر
درود به همه


نوشتنش با Delphi که هم کار با رشته ها ساده هست، هم بهتره IDE رو تو Delphi طراحی کنیم، اما کیا Delphi بلدن؟ ...
من بلدم.:لبخند:


کیا موافقن که اول با VB6 شروع کنیم بعد که کارمون راه افتاد کد رو ترجمه کنیم به دلفی؟
بی ادبی نباشه دهنمون سرویس میشه تا این کارو بکنیم!!:کف:


موفق باشید

IamOverlord
چهارشنبه 22 شهریور 1391, 23:56 عصر
این طور که به نظر می رسه Delphi بهترین گزینه هست...
زیادم باید مزاحم آقا بهروز بشیم!
FASM نسخه ی جدیدش رو دانلود (http://flatassembler.net/download.php) کردم... و به قدرت نامتناهیش پی بردم!!! کافیه ۲ ۳ تا example اش رو نیگا بندازید...
خوب الان یه کاری واسه گروه دارم که مهم نیست Delphi کار باشیم یا VB کار یا ...
این که باید شروع کنیم به ساخت vbclassic7.inc برای FASM... کاربرد این ماکرو چیه؟ اینه که تمام توابع و چیزای اساسی زبانمون رو باید توش تعریف کنیم. مثلا یه روال برای پیوند ۲ رشته، یه روال برای به توان رساندن دو float یا همون Currency/Decimal خودمون، یه روال برای تبدیل integer به رشته،... برای مقایسه ها و عبارت های شرطی و ... خلاصه چیزای اساسی که لازممون می شه رو به صورت جزء به جزء تعریف می کنیم بعد فایل رو include می کنیم برای کدی که به Assembly تبدیل کردیم و بعد کد Assembly نهایی رو می دیم FASM کامپایل می کنه به exe... این جوری خیلی از شلوغی و درهم و برهمی کار کاسته می شه و قبل از ساخت کامپایلر چیزایی که لازم داریم رو نوشتیم... خوبیش هم اینه که روال هایی که باید توش تعزیف کنیم از هم جدا هستن پس خیلی راحت هر کس می تونه رو یه چیزی کار کنه، یکی رو تبدیل integer به string یکی رو تبدیل string به integer... پس فعلا یه چند تا از فایل های inc. رو نگاه بندازید... حتما هم FASM رو دانلود کنید پشیمون نمی شید!
ضمنا بچه ها قرار بذارید یه وقتی رو تعیین کنید که بریم RaidCall، جناب Mohammad Gh که اومد... جناب بهروز عباسی هم همین طور...
ضمنا باید از چند تا از کاربرای شاخ سایت هم کمک بگیریم، مثلا آقای xman_1365_x (http://barnamenevis.org/member.php?33193-xman_1365_x) مدیر بخش اسمبلی... یا آقایون دیگه...

l4dl4d
پنج شنبه 23 شهریور 1391, 12:49 عصر
برای دانلود سورس ها و نمونه ها سایت سایت delphi.about.com
sourceforge.com
رو پیشنهاد میدم
با تشکر
_______________
if i=n+1 then
boom
else
goto 1
end if

hamed_basic
پنج شنبه 23 شهریور 1391, 15:40 عصر
سلام
من موافقم و هر کمکی از دستم بیاد انجام میدم.

خیلی جالبه زمانی که من برنامه نویسی تجاری رو شروع کردم (حدود 12 -13 پیش) باید همه جا ثابت میکردم که برنامه نویسی با وی بی (اون موقع 5 بود ) از همه بهتره
الان هم دارم همین کار رو می کنم
هر برنامه یا کامپوننتی که فکرش رو هم بگنید نوشتم و میدونم با استفاده از یکسری کتابخانه ها (البته اگه کلا پروژه رو بر پایه Open Source بنا کنیم ) حتما به نتیجه خواهد رسید .
آقا منم هستم و اگه کمکی ازم بربیاد حتما انجام میدم

hamed_basic
پنج شنبه 23 شهریور 1391, 15:49 عصر
دوستان عزیز به نظر من از اول پروژه رو جوری پایه ریزی کنیم که محیطIDE مخصوص بخودش ، کامپایلر مخصوص خودش ، SDK های مخصوص خودش از همه مهمتر دستورات و توابع خاص خودش و ... داشته باشه ، من قبلا تو کار مشابهی همکاری داشتم و از اونجایی اون دوستان عزیز از زبان php واسه نوشتن برنامه استفاده کردن زحمت دوسال و نیمه همه به باد رفت ، به نظر من یا اصلا بیخیال همچین ایده ای بشیم و به کار وزندگی مون برسیم یا کاملا حساب شده باشه
یه چیز دیگه رو هم توضیح بدم
اصل موفقیت برنامه اینه که Open Source باشه
و بتونه انگیزه واسه دولوپر ها ایجاد کنه
اگر خدا خواست موفق شد یکی مثل من باید برم ساندویچی باز کنم
اما بازم راضیم که این انجام بشه
و هر جور کمکی میکنم

IamOverlord
پنج شنبه 23 شهریور 1391, 17:24 عصر
سلام جناب hamed_basic (http://barnamenevis.org/member.php?205178-hamed_basic)...
IDE رو از پایه با Delphi می نویسیم
کامپایلر رو هم همین طور و هیچ ربطی به VB6 قدیمی نداره کد هامون و از ۰ تا ۱۰۰ رو از اول انجام می دیم
یعنی قرار نیست که VB6 قدیمی رو گسترش بدیم، می خوایم دوباره نویسی کنیم
ضمنا پروژه Open Source هست فعلا
اگه می خواید همکاری داشته باشید، اکانت RaidCall (http://www.raidcall.com) بسازید...

IamOverlord
پنج شنبه 23 شهریور 1391, 23:51 عصر
Let's Build a Compiler, by Jack Crenshaw (http://compilers.iecc.com/crenshaw/)
کسایی که با Pascal ویا Delphi کار می کنن بهتر متوجه می شن...

Felony
جمعه 24 شهریور 1391, 00:32 صبح
سلام جناب hamed_basic (http://barnamenevis.org/member.php?205178-hamed_basic)...
IDE رو از پایه با Delphi می نویسیم
کامپایلر رو هم همین طور و هیچ ربطی به VB6 قدیمی نداره کد هامون و از ۰ تا ۱۰۰ رو از اول انجام می دیم
یعنی قرار نیست که VB6 قدیمی رو گسترش بدیم، می خوایم دوباره نویسی کنیم
ضمنا پروژه Open Source هست فعلا
اگه می خواید همکاری داشته باشید، اکانت RaidCall (http://www.raidcall.com) بسازید...
سلام ؛

اصولا در این نوع تاپیک ها پست نمیدم چون 99.99% این نوع تاپیک ها تو این سایت فقط از سر شور و هیجان جوانی و تازه کاری هست ، نه بیشتر ( انگشت اشارم به سمت این تاپیک نیست )

چند تا نکته :

- چیزی که میخواین بنویسین کامپایلر نیست ، مفسره ...

- اگر واقعا تو فکرتون نوشتن کامپایلر هست بیخیالش بشید و با نوشتن یک مفسر ساده شروع کنید ، کامپایلر بحث فوق العاده پیچیده ای داره و خیلی زود پشیمونتون میکنه .

- الکی جو ندید ما میتونیم و ... ، آدم باید اول توانایی های خودشو رو بسنجه ، نیاز های کاری که میخواد انجام بده رو بسنجه ، ابزارها و امکاناتی که داره رو بررسی کنه و سعی کنه به یک حداقل هایی برسه و بعد شروع کنه به انجام اون کار ، چیزی که من تو این تاپیک ندیدم حرفی ازش زده بشه ؛ همین جوری که که نمیشه اومد وسط گفت ما میتونیم و رفت سراغ کار ، بله ما استعدادهای زیادی برای این کارها داریم ولی اکثرا یا تجربه کار ( مخصوصا از نوع گروهی ) رو ندارن ، یا علمش رو ندارن یا وقتش .

- لطفا با هم تعارف نکنید ، الان کی تو این جمع که اعلام آمادگی کردن با مباحث طراحی کامپایلر آشنایی داره ؟ کی با مباحث مدیریت یک تیم نرم افزاری و مهندسی نرم افزار اون آشنایی داره ؟ کی به زبون برنامه نویسی مورد نظرتون مسلط هست ؟ این 3 موردی که نام بردم اگر پیدا نکردید کارتون رو شروع نکنید که خیلی زودتر از اون چیزی که فکر میکنید به بن بست میخوره ، اینها حداقل های مورد نیاز برای شروع یک کار ساده گروهی هست .


امیدوارم دوستان این حرف ها رو به عنوان انتقاد بپدیرن ، نه قصد توهینی بود ، نه خرد کردن کسی یا زیر سوال بردن ایده ای ...

موفق باشید .

IamOverlord
جمعه 24 شهریور 1391, 00:59 صبح
- چیزی که میخواین بنویسین کامپایلر نیست ، مفسره ...
این همه زبان که از یه Assembler ای مثل NASM یا FASM یا ... در قسمت پایانی استفاده می کنن،‌ Interpreter هستن؟

- اگر واقعا تو فکرتون نوشتن کامپایلر هست بیخیالش بشید و با نوشتن یک مفسر ساده شروع کنید ، کامپایلر بحث فوق العاده پیچیده ای داره و خیلی زود پشیمونتون میکنه .
به خاطر همین هم گفتم برای دفعه اول یه سری ماکرو تو FASM تعریف کنیم. می شه Assembly رو هم آسون کرد. مثلا HLA رو نگاه کنید... ما هم می خوایم ماکروی مورد نیاز خودمون رو بنویسیم فعلا...

الکی جو ندید ما میتونیم و ... ، آدم باید اول توانایی های خودشو رو بسنجه ، نیاز های کاری که میخواد انجام بده رو بسنجه ، ابزارها و امکاناتی که داره رو بررسی کنه و سعی کنه به یک حداقل هایی برسه و بعد شروع کنه به انجام اون کار ، چیزی که من تو این تاپیک ندیدم حرفی ازش زده بشه ؛ همین جوری که که نمیشه اومد وسط گفت ما میتونیم و رفت سراغ کار ، بله ما استعدادهای زیادی برای این کارها داریم ولی اکثرا یا تجربه کار ( مخصوصا از نوع گروهی ) رو ندارن ، یا علمش رو ندارن یا وقتش .
من که دیدم می خوام خودم تنهایی کار کنم گفتم چرا چند نفر کدزن کمکی نگیرم... این که می شه رو بررسی کردم و مطمئنم... مشکل سواد بچه هاست که منم نگفتم یه ضرب بریم سراغ کار گفتم اول یاد بگیرید بعد... چون یه نفره آدم حوصله اش سر می ره...

- لطفا با هم تعارف نکنید ، الان کی تو این جمع که اعلام آمادگی کردن با مباحث طراحی کامپایلر آشنایی داره ؟ کی با مباحث مدیریت یک تیم نرم افزاری و مهندسی نرم افزار اون آشنایی داره ؟
باور کنید اگه این افراد بودن که مشکلی نبود... ما می خوایم آروم آروم بریم جلو یاد بگیریم کارو انجام بدیم... نمی خوایم پروژه ی تجاری انجام بدیم که نگران زمانش باشیم... اصلا هم دنبال متخصص نیستم چون پیدا نکردم! همین که یه سری باشن که بخوان با این مباحث آشنا بشن و تازه بعدا شروع کنیم به کدنویسی کافیه... بهتر از تک نفره کار کردنه...

خیلی ممنون دوست عزیز...
نظرات و انتقادات و پیشنهاداتتون رو هم بگید بد نیست...!

ho3ein.3ven
جمعه 24 شهریور 1391, 01:28 صبح
سلام . اولین جلسه بین اعضای گروه در تاریخ جمعه 24/6/91 ساعت 22:00 برگزار میشه . کسانی که علاقه مند به همکاری با اعضای گروه و شرکت در جلسات هستند آی دی یاهو زیر رو ادد کنند .
ID : Ho3ein.3ven

m.4.r.m
جمعه 24 شهریور 1391, 22:23 عصر
آخه بیخیال شدن که نمیشه به قول دوستمون از یه جایی شروع می کنیم یاد میگیریم رفته رفته کد هم مینویسیم جلو میریم چند تا مغز بهتر از یه مغز کار می کنه حتی اگه بیهوده باشه شاید تو همین بیهودگی حرفی زده بشه که با منطق درست باشه . من که تا آخرش هستم حتی اگه قرار باشه بن بستی توش باشه

IamOverlord
شنبه 25 شهریور 1391, 01:26 صبح
گزارش:

خوب امشب که من و فقط ۲ نفر دیگه رفتیم Yahoo Messenger:
m.4.r.m (http://barnamenevis.org/member.php?247494-m.4.r.m)
ho3ein.3ven (http://barnamenevis.org/member.php?236082-ho3ein.3ven)

ظاهرا که پست های ناامید کننده بیش تر طرف دار داره! به نظرم یه تاپیک با عنوان بی خیال همه چیز ... راه بندازیم بیش تر تشکر و فعالیت داشته باشه!!!

امروز تازه فهمیدم که برای اعداد اعشاری (Floating Point) می تونیم از FPU کمک بگیریم... و خیلی احساس آرامش بیش تری می کنم!
در رابطه با vbclassic7.inc این قابلیت اضافه شده که می تونیم اعداد اعشاری رو به string تبدیل کنیم که بتونیم نمایش بدیم. ضمنا یه example نوشتم که با fsqrt رادیکال یه عدد رو به دست می آره و بعد نمایشش می ده. لیستی از instruction های FPU رو این جا ببینید:
en.wikipedia.org/wiki/X86_instruction_listings (http://en.wikipedia.org/wiki/X86_instruction_listings)
دستوراتی هستن که حتی فکرشم نمی کردم وجود داشته باشن!: FCOS - FSIN - F2XM1 - ...

m.4.r.m
شنبه 25 شهریور 1391, 13:43 عصر
ما می توانیم حتی اگر 50 % راه رفته باشیم می گویم رفتیم اما شما که در خواب غفلت مانده اید چیزی برای گفتن ندارید ما رفتیم هر کی پایس سوار بشه بر ماشین زمان کامپایلر

abidana
شنبه 25 شهریور 1391, 18:05 عصر
دیگه حوصلم نمی گیره بیام توی این تاپیک:چشمک:
چند نفر میگن میشه چند نفر میگن نمیشه
اگه شد که شد خوش به حالتان
اگه نشد هم باز خوش به حالتان چون بالا خره یه چیزی یاد گرفتید خود من هیچی از اسمبلی نمی دونستم ولی بخاطر این تاپیک یه چیز هایی ازش فهمیدم و یه تجربه ی دیگر اینکه یادم میمونه که از این راه رفته برای نوشتن یه کامپیلر یا مفسر استفاده نکنم ( ارزش سواد اموزیشیش بالاست)
الان هم میگم خیلی دوست دارم با شما همکاری کنم و لی سوادش ندارم شاید هم در اینده وقتش چون این یه کار فوق حساس توی زندگی دیگران

IamOverlord
شنبه 25 شهریور 1391, 19:23 عصر
سلام دوستان.
اگه واقعا کسی قصد همکاری داره باید بیاد RaidCall یا Yahoo Messenger یا ... که با هم صحبت کنیم.
اونایی که می گن نمی شه یا اون قدر سخته که در حد نشدنه، به این دلیل می گن که واقعا باید وقت گذاشت، جست و جو کرد، مطالعه کرد، ... که ظاهرا بعضی ها حوصله ی این کارارو ندارن، یا می گن که نوشتن کامپایلر یه بحث فوق العاده پیچیده هست که این حرف ها جز نا امید کردن تو این شرایط تاثیر دیگه ای نداره، کامپایلر داریم تا کامپایلر...
ببینید من که این کار رو بالاخره خودم هم که شده می خوام انجام بدم ولی گفتم بد نمی شه تو این راه با چند نفر همکاری کرد... اتفاقا خیلی هم خوب می شه حتی اگه اونا هنوز چیزای لازم رو بلد نباشن...
منابعی که چند نفر همزمان دسترسی دارن بیش تر از یه نفره... همچنین حوصله ای که دارن... وقتی که دارن...
هنوز بچه ها نیومدن بپرسن چی بخونیم چی نخونیم چه جوری انجام می شه مشکلات یا موانع چیا هستن ... بعد انتقاد می شه که ما نمی تونیم... آخه چیو بررسی کردن که به این نتیجه رسیدن... لااقل بذارید ببینیم چه مشکلی هست که این پروژه نمی تونه به انجام برسه؟ نگید دانش بچه ها چون از اول هم قرار بود که همزمان یاد هم بگیریم...
واضحه که این جوری هیچ ماشین حساب هم نمی شه نوشت... باور کنید... حتی اون پروژه ی گروهی هم شکست می خوره وقتی هیچ کس پیگیر قضیه نباشه و اعضا دور هم جمع نشن... بعد میان می گن تا حالا تو این انجمن پروژه ی Open Source به ثمر نرسیده.
باز دم اون ۲ تا دوستمون گرم که اومدن یاهو حداقل تونستیم ۳ تایی با هم صحبت کنیم.
الان هم پروژه داره انجام می شه ولی با سرعتی کم تر از اون چیزی که انتظار می رفت...

m.4.r.m
شنبه 25 شهریور 1391, 22:26 عصر
من توابع سیستمی اسمبلی رو از رفیقم گرفتم کاملا به فارسی آموزش داده شده مسعود برات پیام خصوصی می زارم دانلود کن ببین چقدر بدردبخور هستن اینا کی میگه نمیشه ما میتوانیم من و مسعود و هر کی هم هست بیاد . مسعود بیخیال برا چی خودتو اذیت می کنی چرا بحث می کنی بریم خودمون بنویسیم با اینا چیکار داریم . وقتی نصف پروژه به صورت عکس در این پست قرار گرفت می فهمن که میشه یا نمیشه . وا لسلام

هر کی هم نا امیده امضای بنده رو بخونه همین

IamOverlord
یک شنبه 26 شهریور 1391, 03:27 صبح
سلام m.4.r.m (http://barnamenevis.org/member.php?265443-abidana) عزیز.
کتاب واقعا جالبی بود بین کتاب های فارسی...
ضمنا یه جاییش نوشته بود:

l4dl4d
یک شنبه 26 شهریور 1391, 20:08 عصر
IAMOverload عزیز, با سلام
ببخشید چند روزی نبودم اینترنتم داره تموم میشه دلیل اینه :خجالت:
خوب آخرین پستتو خوندم جالب بود یعنی اینکه :
hex ( step1) & "," & hex (step2) & "," & "," hex (step3(
یعنی اینجوری ترجمه میکنه

در ضمن پیشنهاد میکنم اسمشو vb7 نزاریم چون تو نت دیدمش (vb7(
میتونیم بزاریم IR-Basic یا حتی یه زبان جدید حتی اینکه زبان برنامه نویسی فارسی باشه :
message "متن پیام"
پیغام.نمایش "ساخته شده توسط BRBBTKMM"و هشدار
البته نمیدونم میشه یا نه

IamOverlord
یک شنبه 26 شهریور 1391, 20:38 عصر
سلام دوست عزیز...
البته VB7 همون اولین نسخه ی VB.net هست... ما اسم اصلی محصولمون VB Classic هست... ولی خوب باشه بعدا باهم صحبت می کنیم در این مورد...
ضمنا ایده ی زبان برنامه نویسی فارسی واقعا ایده ی جالبی هست اما فعلا باید بی خیالش شد چون یه زمانی پروژه ام همین بوده و خیلی هم روش فکر کردم که ادامه بدم یا نه...
منم فعلا به علت اینترنتم نمی تونم بیام Yahoo! Messenger یا RaidCall... پس شما اگه می تونی بالاخره با m.4.r.m (http://barnamenevis.org/member.php?247494-m.4.r.m) ویا ho3ein.3ven (http://barnamenevis.org/member.php?236082-ho3ein.3ven) در تماس باش ...

IamOverlord
چهارشنبه 29 شهریور 1391, 17:24 عصر
سلام.
گزارش کار:
فعلا نوع داده ی Single و Double و Ansi String رو می تونیم به هم تبدیل کنیم و مقدار گرد شدن اعداد float رو برای نمایش مشخص کنیم و توابع sin، cos و sqr برای نوع float یعنی single یا double نوشته شدن. که کسایی که می خوان می تونم براشون بذارم. الان باید بریم سراغ تخصیص حافظه ی Dynamic برای نوع String. همچنین یه تحقیقی باید در مورد نوع Currency و Decimal بزنم. FPU از نوع 80 بیتی Extended Precision هم پشتیبانی می کنه که هنوز نمی دونم دقیقا چه جوریه و فعلا کاری باهاش ندارم. در مورد پیاده سازی آرایه ها هم اول فکر می کردم که آرایه هر چند بعدی که بود به جاش یه آرایه ی یه بعدی به اندازه ی مجموع اعضای اون چند بعدی در نظر بگیریم و مکان هر عنصر رو با یه فرمولی بر حسب اندازه ی ابعاد محاسبه کنیم. بعد دیدم یه مشکلی پیش می آد این که اگه اندازه ی ابعاد آرایه یه عبارتی باشه که در زمان اجرا تعیین می شه کامپایلر نمی تونه محاسبه کنه که مثل عنصر (1,1,1) کجا هست چون مشخصات ابعاد رو نداره. بعد این راه به ذهنم رسید که برای رفع مشکل آدرس دهی به عنصری خاص، از اشاره گر ها استفاده کنیم. یعنی مثلا یه آرایه ای از اشاره گر ها داشته باشیم که هر عنصر به یه آرایه ی دیگه اشاره می کنه. این طوری مثلا می شه آرایه ی دوبعدی رو پیاده سازی کرد. فعلا نمی دونم VB6 چه طوری UBound و LBound رو به دست می آره...

IamOverlord
چهارشنبه 29 شهریور 1391, 20:33 عصر
سلام دوست عزیز.
خیلی ممنون که انتقاد هاتون رو می کنید. این باعث می شه که حواسم جمع تر بشه. امیدوارم شما هم مثل من انتقاد پذیر باشید. ولی بد نیست به چند تا چیز توجه کنید:

نسخه Native با نسخه net. چه فرقی می کند؟
ساختار زبان که همان است.
مشکل شما نسخه 6 یا نسخه Net. نیست.
برای شما سوءتفاهمی پیش آمده است.
نه دوست عزیز برام یه پروژه پیش اومده!
جمله ی اولتون رو توی گوگل جست و جو کنید فرقش رو متوجه می شید...
در مورد جمله ی دومتون، گل گفتین! ساختار تمام زبان های Basic، همون Basic هست. اما اصلا عین هم نیستن. اسماشون یکیه! شاید فرق VB با VB.net برای شما فقط ۴ حرف باشه... ولی این طور نیست.
نمی دونم مجبور به تفاهم با چه کسی هستم که برام سوء تفاهم پیش اومده!

آینده زبان بیسیک VB.Net است.
چون خودم از ملالغتی بازی و جدا کردن قسمت هایی از حرف و ... خوشم نمی آد، همون کاری که شما در جمله های بعدی من کردید، از این جمله ایراد نمی گیرم. فرض می کنم منظورتون همون VB6 بوده از واژه ی کلی Basic.

محدوده فکر خود را از VB6 فراتر ببرید.
پس به عنوان تاپیک نگاه کنید.

بازار نرم افزاری ایران که هیچ حتی در هر جای دنیا طرح چنین مسئله ای خطاست*.
با قسمتی از حرفتون موافقم. البته من این انجمن رو بازار نرم افزاری در نظر نگرفتم. گفتم شاید چند نفر جوون بیان با هم با خیالاتمون حال کنیم، گرچه خیالاتی که سورس کدش موجود باشه دیگه خیالات نیست! همون طور که گفتم من فعلا از دید تجاری به این پروژه نگاه نمی کنم.

مدت زمان تکمیل این پروژه برای 100 نفر نیروی کار زبده 26 سال است.
در دید وسیع هیچ شرکتی توان رقابت با مایکروسافت را ندارد.
مایکروسافت از هر شاخه ای وارد شود در آن شاخه پیروز است.
احتمالا به نفر-سال حساب کردید که در یک سال با ۲۶۰۰ نفر می شه این پروژه رو انجام داد. داداش منو از پروژه ی خودم نترسون! این نفر-سال ها رو در مورد زبان های دیگه هم خوندم. اصلا شما متوجه شدید چی در حال ساخته که تخمین زدید؟! نکنه شما هنوز فکر می کنید ما قراره با ۲۶۰۰ نفر-سال کار، همون پروژه ی مایکروسافت رو دقیقا انجام بدیم؟ خواهشا توجه کنید که ما یه چیز ساده می سازیم. بعد در مرحله ی بعد گسترشش می دیم. و آروم آروم بهش شاخ و برگ می دیم...
تو این فروم که هیچ شرکتی مشاهده نکردم! دوست عزیز چرا شما فکر می کنید ما توهم رقابت با مایکروسافت و زمین زدنش و ... رو داریم؟
خود مایکروسافت با جمله ی آخرتون موافق نیست!

ببینید نوشتن زبان برنامه نویسی کاری نداره،
ای کاش این جمله ی بالا رو از بعد از ویرگول تا علامت تعجبش رو هم می ذاشتید، تا از حرفام برداشت اشتباه نشه...

زمانی که شما کار را شروع کنید ، بعضی از مسائل خودشان را نشان می دهند.
دوست عزیز من که کار رو شروع کردم و خیلی از مسائل خودشون رو نشون دادن! هنوز به "غیرممکن" نرسیدم! ولی با خیلی از مسائل دیگه مواجه شدم و جواب هاش رو هم گرفتم.

اگر شما یک زبان فوق شی گرایی جدید ایجاد کنید بله حق با شماست.
حتماً نخستین عکس های سیستم عاملی که توسط این شخص نوشته شد را ببینید.
مقایسه کردن یک پروژه دانشجویی با توضیع های Fedora , ubuntu , knopix و .. که خیلی مضحک به نظر می رسد.
در مورد لینوکس بیشتر تحقیق کنید.
در مورد پروژه گنو بیشتر تحقیق کنید.
در مورد یونیکس بیشتر تحقیق کنید.
اون دوستمون هدفش این بود که یه مثال بیاره تا یه تصور اشتباه و وحشتناک رو از ذهن بچه ها بیرون بیاره، شاید مثال خوبی گیر نیاورده. ولی خیلی از پروژه های دیگه هم به عنوان نمونه، هستن که شما حتی فکرش رو هم نمی کردی به اون صورت انجام بشه. نمونه دارم...

اشخاصی که نمی توانند با تکنولوژی جدید کنار بیان چه طور می توانند دیگران رو متقاعد کنند با تکنولوژی من درآوردی خودشان کار کنند!
اگه منظورتون از تکنولوژی جدید net. هست برا من که قدیمی شده... نیازی نیست کسی رو متقاعد کنم که با این محصول کار کنه. چون برای کسانی نوشته می شه که با VB6 کار می کردن. یه زبان با سینتکس جدید و عجیب و غریب نیست.

بله حق با شماست ولی با این تفاوت که اتفاقی که در آینده ذهن شماست هم اکنون به واقعیت پیوسته است.
لطفاً در مورد تکنولوژی WPF تحقیق کنید.
هر تکنولوژی جدیدی که بخواد بیاد ما خودمونو باهاش تطبیق می دیم. وگرنه باید برنامه نویسی رو گذاشت کنار! اصلا ما این پروژه رو راه انداختیم که خودمون رو با تکنولوژی های جدید مطابق کنیم نه این که دوباره عینا همون VB6 رو بسازیم!

البته از حرف های بنده خرده نگیرید.بالاخره نظر بنده بود.


این که نظراتتون رو بگید برام جالبه، اما بعضی نظرات بوی توطئه و ناامیدی می ده!

برنامه نویسای واقعی، با روحیه ی مناسب حرفه شون، کارشون رو با علاقه انجام می دن و ناامید نمی شن. اگه چیز کاربردی ای می سازن که به ملت هدیه کنن، کارشون رو می کنن و حتی نگران اسم محصول یا این که فلان شرکت چه قدر پول داره و ... هم نیستن! مثل لینوس تروالدز که لینوکس رو ساخت و از اسم اشتباه GNU Linux خوشش نمی اومد ولی کارشو کرد چون کارشو دوست داشت...

IamOverlord
چهارشنبه 29 شهریور 1391, 22:59 عصر
سلام...

خیلی برای بنده جالب میشه شما در مورد تفاوت سینتکس های PicBasicPro و VB6 و VB.net و Basic4Android صحبت کنید.
پیشنهاد جالبیه! :متفکر: اما واسه این که فعلا خودمونو گم نکنیم، اول با سینتکس VB6 می نویسیم، که اصل کار انجام بشه بعد در مرحله گسترش به این پیشنهاد هم فکر می کنیم...

چه طور WPF را به مجموعه VB6 که قرار بر گسترش آن دارید را اظافه می کنید.
البته تطابق با هر تکنولوژی ای که مربوط باشه...
ببینید برای ما مهم نیست که مایکروسافت WPF داده یا همون Silverlight یا هزارتا چیز دیگه... برای ما این مهمه که نهایتا Assembly کار چی هست؟ مایکروسافت گفته کد مقصدمون باید چه Format ای داشته باشه؟ مثلا الان ما کد مقصد رو مطابق با Win32/64 API در نظر گرفتیم. همچنین بعدا قراره طوری توسعه بدیم زبان رو که کد مقصد برای Platform های مختلف تولید بشه. برای Linux همون طور که Linux می خواد، برای MacOS همون طور که MacOS می خواد،‌ و برای Windows همون طور که مایکروسافت در آینده می خواد. اصلا اگه من بگم می خوایم Cross-Platform بسازیمش کی به چه طریقی می خواد انتقاد کنه که نمی شه کرد؟ آیا Linux هم برنامه نویسا رو مجبور به استفاده از استاندارد های Windows کرده، یا Windows مجبور به استفاده از استانداردهای یه محیط دیگه ... ؟ اصلا یه زبان مستقل از Platform رو شما چه طور می خواید با نقشه های مایکروسافت مورد انتقاد قرار بدید؟ مهم اینه که تا سیستم عامل هست یه ساختاری هست که یه کامپایلر کد هاش رو با اون ساختار تولید کنه... دیگه نمی فهمم این مدل انتقاد هایی که دوستان در این مورد کردن چی بود؟!

توطئه؟
کلش رو جدی گرفتید :چشمک:

برای گسترش VB6 توسط شما آرزوی موفقیت می کنم.
البته خود VB6 رو گسترش نمی دیم، چون خودش غیر قابل گسترشه باید یه چیز به روز و از پایه ساخت ولی با برخی ویژگی های مشابه... من هم برای شما، خودمون، برنامه نویسای ایرانی آرزوی موفقیت می کنم...

ali-a2
پنج شنبه 30 شهریور 1391, 00:08 صبح
با سلام ! دو تا سوال داشتم !!

کار شروع شده !؟ کیا شرکت میکنن !؟؟
بعد به طور تقریبی چقد طول داره تا کل کارتون تموم شه ؟

موفق باشید !!

IamOverlord
پنج شنبه 30 شهریور 1391, 00:26 صبح
سلام دوست عزیز.
کار شروع شده.
الان دو نفر دارن مشارکت می کنن:
m.4.r.m (http://barnamenevis.org/member.php?247494-m.4.r.m)
ho3ein.3ven (http://barnamenevis.org/member.php?236082-ho3ein.3ven)
یه نفر دیگه هم با این Yahoo Id احتمالا مشارکت بکنه: brpalove
زمان تموم شدن کار هم معلوم نیست. ولی این معلومه که هنوز سرعتمون با این تعدادمون کمه!
اگه می خواید به هر نحوی تو کار مشارکت داشته باشید، پیام خصوصی بدید...
شما هم موفق باشید!

m.4.r.m
پنج شنبه 30 شهریور 1391, 00:52 صبح
به جای این پست های الکی هر کدومتون یه تابع اسمبلی رو قبول می کردین نصف کار کامپایلر حل شده بود چرا الکی شور میدید نمیخواید کار کنید بگید آقا ما نیستیم الکی جو سازی نکنید اصلا ما سه نفر میخوایم یه چیزی درست کنیم که دوست داریم هر کی پایس بسم الله هر کی نمی خواد صدق الله .... واسلام .

IamOverlord
پنج شنبه 30 شهریور 1391, 01:30 صبح
m.4.r.m (http://barnamenevis.org/member.php?247494-m.4.r.m) جان واقعا راست می گی...
اگه این حرفه ای ها به جاش می اومدن نفری یه Type رو تو Assembly پیاده سازی می کردن کار بهتر پیش می رفت و الان ما رفته بودیم سراغ مسائل دیگه...
یعنی حداقل جلبک کاربردش اینه که می تونه یه اسم فانتزی واسه زبان برنامه نویسیت باشه!!!

IamOverlord
پنج شنبه 30 شهریور 1391, 12:38 عصر
گزارش کار:

۱. این توابع هم پیاده سازی شده:
internal._cvt >> برای round کردن float با دادن تعداد ارقام اعشاری
internal._itoa >>‌ تبدیل integer به string
internal._memcpy_fast >> کپی سریع حافظه که در انتساب رشته ها و متغیر ها کاربرد داره

۲. یه کد ساده ی Allocate و ReAllocate کردن حافظه هم نوشتم که بعدا قراره با روش Dynamic Allocation طول رشته هامون رو تغییر بدیم و کم و زیاد کنیم، آرایه های پویا رو پیاده سازی کنیم و ...

برای پیاده سازی آرایه ها نمی دونم دقیقا VB6 چی کار می کنه... وقتی ابعاد آرایه رو در زمان اجرا تعیین می کنی یه تابع دیگه می تونه طول آرایه رو بفهمه، حد پایین، حد بالا، حتی اگه اطلاعات ابعاد آرایه رو نداشته باشید چه طور می تونید مکان عنصر مورد نظر رو محاسبه کنید؟ یعنی در شرایطی که حتی آرایه های چند بعدی هم به صورت یه آرایه ی ۱ بعدی در نظر گرفته می شن، بدون داشتن اطلاعات ابعاد در زمان اجرا به مشکل می خوریم...
اما این روش به ذهنم رسید که بعد اول رو به صورت یه آرایه از اشاره گر ها به آرایه ای دیگه که اونا هم می تونن مثل بعد اول اشاره گر باشن و ... در نظر بگیریم... این طوری بدون داشتن اندازه ی ابعاد هم می شه به خونه ی مورد نظر رفت... ولی هم چنان یه مشکلی باقی می مونه... این که LBound و U‌Bound رو باید بشه در زمان اجرا مشخص کرد... برای مشخص کردن اندازه ی ابعاد که فهمیدم می تونیم از تابع HeapSize کمک بگیریم... ولی برای Lbound به نظرم می شه مقدار LBound های هر بعد رو به ترتیب در انتهای آرایه ی اشاره گر ها یا داده ها در بعد اول بنویسیم. بعد برای مشخص کردن اندازه ی واقعی بعد اول می تونیم تعداد اعداد ورودی برای هر بعد رو از مقداری که به کمک HeapSize برای بعد اول دست می آریم کم کنیم... LBound هر بعد به صورت یه مقدار Integer از نوع ۳۲ بیتی مشخص می شه. تغییر نوع آرایه هم که ممکن نیست، البته اگه آرایه ای با نوع نامشخص داریم می تونیم از نوع Variant که بعدا باید پیاده سازی بشه استفاده کنیم که در واقع اون هم یه نوع مشخص هست و نباید تغییرش داد در ReDim... به خاطر این که آرایه ها می تونن ReDim بشن پس به صورت پویا با تابع HeapAlloc در بخش Heap ساخته می شن و آدرسشون تو متغیر Static مربوطشون در Data Section ریخته می شه... البته آرایه های محلی آدرسشون تو مکان مربوطشون در Stack ریخته می شه...

returnx
پنج شنبه 30 شهریور 1391, 16:59 عصر
من یک پیشنهادی برای شما دارم!!
اولا نوشتن یک کامپایلر کاری ساده نیست هر چقدر جلو تر که برید بیشتر متوجه خواهید شد!!
در واقع شما نیاز دارید که سینتکس VB6 رو زنده نگه دارید!!
من به شما پیشنهاد می کنم زبان برنامه نویسی رو روی FrameWrok Qt درست کنید تا از کتابخانه های Qt استفاده کنه اما با سینتکس VB6...
این کار چه فایده ای داره!؟
همونطور که میدونید Qt یک چارچوب کاری Cross-Platfom هست و کاملا رایگان و Open Source در نتیجه،
زبان برنامه نویسی شما Cross-Platfom خواهد شد ، Open Source خواهد شد (در صورت نیاز) این عامل باعث میشه پروژتون با سرعت بیشتری توسعه پیدا کنه...
و از همه مهم تر دیگر نیاز نیست شما در گیر مسائلی مثل Multi Threading یا کار با فایل یا شبکه بشین...
چون تمام این کتابخانه از قبل نوشته شده و آمادست و در نتیجه حجم کد نویسیتون خیلی کم خواهد شد...
اما نکته ای که اینجاست نمیتونین بگین اینکه یک زبان برنامه نویسی ساختید...
اما پروژه ی جالبی انجام خواهید داد...
در واقع چیزی شبیه PyQt که امکان میده با زبان برنامه نویسی Pythone از کتابخانه های Qt استفاده کنیم... (البته چیزی شبیه PyQt)
در واقع شما IDE خواهید ساخت که به شما کمک می کنه با سینتکس VB6 تحت FrameWork Qt بتونید کد بزنید و نرم افزارتون رو با سادگی بیشتر و سریع تر توسعه بدید...
نظرتون چیه!؟

ASedJavad
پنج شنبه 30 شهریور 1391, 17:28 عصر
حداقل جلبک کاربردش اینه که می تونه یه اسم فانتزی واسه زبان برنامه نویسیت باشه!!!

:تشویق::تشویق: آفرین! جمله قشنگ و حکیمانه ای بود ...


درسته من فعلا وقت ندارم باهاتون همکاری کنم:ناراحت: ولی پیگیر پستتاتون تو این قسمت هستم ... هرچند که از خیلیاش چیزی نمیفهمم

(به نظرم این پست، دقیقا مصداق بارز پستهای بی محتوا و غیر کاربردی و به درد نخور باشه!:لبخند:)

IamOverlord
پنج شنبه 30 شهریور 1391, 20:03 عصر
پست شما بوی توطئه نمی ده! همچنین پست جناب returnx (http://barnamenevis.org/member.php?141489-returnx)...!
واقعا بالاخره یکی به جای انتقاد/پیشنهاد های تکراری، جواب داده شده و ... یه انتقاد/پیشنهاد مفید و جالب کرد!
می دونستم Qt یه Framework هست ولی تا جایی که فهمیدم، مثل این که یه کتابخونه برای ++C و البته زبان دیگه ای که بخواد ازش استفاده کنه هست؟ درست؟ و قابلیت تولید فایل های Standalone و Native رو داره؟ اگه از هر زبانی می شه از کتابخونه های Qt استفاده کرد چه طور که مثلا از DLL های مختلف استفاده می کنیم، پس نمی شه گفت زبانی که از Qt استفاده کنه حتما کامپایلر نیست؟ مگر این که کدمون رو به زبان ++C تبدیل کنیم و از طریق ++C از Qt استفاده کنیم که در این صورت Interpreter نوشتیم نه Compiler...
حالا نمی دونم اگه دوستان Qt کار توضیحات بیش تری بدن ممنون می شم...

returnx
پنج شنبه 30 شهریور 1391, 22:05 عصر
نمیدونم باید از کجا شروع کنم تا جواباتون رو بدم ، اما بزارید اول یکم کلی تر در مورد Qt توضیح بدم شاید در بین توضیح هام به جوابتون برسید...
Qt یک فریم ورک برنامه نویسی هست که با C++‎ توسعه داده شده اما میشه باز چندین زبان تحتش کد نوشت ، مثلا خود ِ C++‎ که بهترین انتخاب هست ، Java ، Python و حتی C#‎!!
اما نکته ای که باید بهش دقت بشه اینکه که Qt کد محلی سیستم عامل تولید میکنه در نتیجه نیاز به ماشین مجازی برای ترجمه کد ها نیست !! و فقط کافیه کد تولید شده را به یک کامپایلر بدید...
و نکته جالب تر اینجاست که با اینکه کد محلی تولید میشه ، اما باز هم برنامه شما Cross-Platform خواهد بود و شما در واقع فقط باید چند فایل چند MB را در سیستم مقصد انتقال بدید ، بر خلاف .net که باید کل .net چند صد MB را در سیستم مقصد نصب کنید...
در واقع خود Qt یکسری فایل سرایند و کتابخانه ها و کلاس های نوشته شده به زبان C++‎ هست و کامپایلر خاصی نداره ، اما کد هایی که نوشتید رو میتونید با یک کامپایلر ، کامپایل کنید مثل gcc یا حتی MSVC (Microsoft Visual C) ...
کدی که تحت Qt مینویسید خیلی سادست دقیقا مثل کدی که در فریم ورک دات نت مینویسید با کمی تفاوت برای مثال:
voidMainWindow::on_pushButton_clicked()
{
//QDialogi_dialog;

QStringext_list="*.txt;*.log";
QStringfile_address=QFileDialog::getOpenFileName(t his,"OpenFile",QDir::currentPath(),ext_list);
ui->lineEdit->setText(file_address);
if(!file_address.isEmpty())
{
QFilei_file(file_address);
i_file.open(QIODevice::ReadOnly);
QTextStreami_read_stream(&i_file);
ui->textEdit->setText(i_read_stream.readAll());

i_file.close();

\
}با چند خط بالا می تونید محتویات یک فایل را بخوانید (البته فایل سرایند ، کلاس QFile بالا فراخوانی شده)...در واقع چیزی که شما نیاز خواهید داشت یک کامپایلر VB هست (که نمونه آمادشم اگه اشتباه نکنم میشه گیر آورد) اما اگر هم نشد میشه کد تون رو به C++‎ ترجمه کنید و بقیه کار را بسپارید به کامپایلر C++‎ و Qt...
اگر یادتان باشد ، چند سال قبل پروژه ای به اسم فارسی دات نت انجام شده بود که دقیقا یک همچین کاری می کرد یعنی کدتون رو به فارسی می نوشتید و یک لایه کد را به C# تبدیل می کرد و بعد هم کامپایل!!(ولی این پروژه خیلی موفق نبود!!)

IamOverlord
پنج شنبه 30 شهریور 1391, 23:12 عصر
سلام دوست عزیز...

اما نکته ای که باید بهش دقت بشه اینکه که Qt کد محلی سیستم عامل تولید میکنه در نتیجه نیاز به ماشین مجازی برای ترجمه کد ها نیست !! و فقط کافیه کد تولید شده را به یک کامپایلر بدید...
و نکته جالب تر اینجاست که با اینکه کد محلی تولید میشه ، اما باز هم برنامه شما Cross-Platform خواهد بود و شما در واقع فقط باید چند فایل چند MB را در سیستم مقصد انتقال بدید ، بر خلاف .net که باید کل .net چند صد MB را در سیستم مقصد نصب کنید...
این قسمت خیلی به دردم خورد... پس با این اوصاف همچنان می تونیم با استفاده از FASM از DLL های Qt استفاده کنیم؟
این تاپیک رو نگاه کنید: Qt & fasm (http://board.flatassembler.net/topic.php?t=13740)
نظرتون چیه که کد اسمبلی رو تولید کنیم مثل قبل ولی از DLL های Qt استفاده کنیم؟

mr AHR
پنج شنبه 30 شهریور 1391, 23:12 عصر
به نظر من اگر کاری میکنین هم باید Native باشه و هم قابل پیاده سازی در JVM و CLI
مثل جاوا
تو لینوکس میتونی کاملا کامپایلش کنی
رو JVM هم هست اصلش
به لطف مایکروسافت نسخه CLI هم داره

returnx
جمعه 31 شهریور 1391, 01:28 صبح
پس با این اوصاف همچنان می تونیم با استفاده از FASM از DLL های Qt استفاده کنیم؟
به دلیل اینکه خیلی رو Assembely کار نکردم ، در این مورد اطلاعات خاصی ندارم...

نظرتون چیه که کد اسمبلی رو تولید کنیم مثل قبل ولی از DLL های Qt استفاده کنیم؟
فکر می کنم اینطوری کار سخت تر بشه ، فکر کنم اگر کد C++‎ تولید کنیم و با کامپایلری مثل Mingw کامپایل کنید راحت تر باشه...
من چون ، خیلی رو مسائل مثل کامپایلر نویسی و برنامه نویسی سطح پایین تسلط ندارم ، ترجیح میدم تصمیم گیری را به عهده خودتون بزارم...

IamOverlord
جمعه 31 شهریور 1391, 03:14 صبح
سلام دوست عزیز!
اگه از FASM استفاده کنیم همون برنامه های ++C رو همچنان می تونیم به زبان Assembly و برای Platform های مختلف بنویسیم.
در هر Platform ای از Qt می تونیم کمک بگیریم تا خیلی جاها کار راحت تر شه.
به عنوان مثال نمونه برنامه ای که از Qt استفاده می کنه و با FASM نوشته شده رو ضمیمه کردم. توجه کنید که DLL های Qt رو اگه ندارید می تونید به صورت جداگانه دانلود (http://sourceforge.net/projects/ipe7/files/ipe/ipe-7.0.0-dependencies-win.zip/download) کنید و در کنار فایل exe بذارید.
این mingw که DLL اش هم هست چیه؟ ضمنا منبع خوبی هست که بتونیم در مورد توابع داخل DLL های Qt ازش مطلب استخراج کنیم؟ یه چیزی شبیه MSDN که در مورد API های Windows توضیح می ده...

IamOverlord
جمعه 31 شهریور 1391, 03:17 صبح
به نظر من اگر کاری میکنین هم باید Native باشه و هم قابل پیاده سازی در JVM و CLI
مثل جاوا
تو لینوکس میتونی کاملا کامپایلش کنی
رو JVM هم هست اصلش
به لطف مایکروسافت نسخه CLI هم داره

سلام دوست عزیز...
می خوایم Native باشه ولی در مورد پیاده سازی در JVM و CLI نمی دونم...
اگه مسئله ی Cross-Platform بودن هست، می شه در آینده برای Platform های مختلف فایل اجرایی تولید کرد...
ولی فعلا اول برای Windows تولید می کنیم...

mgkh-morteza
جمعه 31 شهریور 1391, 09:07 صبح
سلام من کاربر جدیدم و تازه وارد دنیای برنامه نویسی شدم درسته که چیز زیادی بلد نیستم ولی هر کاری از دستم بیاد میکنم با تشکر

returnx
جمعه 31 شهریور 1391, 10:27 صبح
اگه از FASM استفاده کنیم همون برنامه های ++C رو همچنان می تونیم به زبان Assembly و برای Platform های مختلف بنویسیم
بله ، مشکل اینجا نیست ، مشکل تولید کد های اسمبلی هست ، که کار رو سخت میکنه ، مثلا تولید کد اسمبلی برای ایجاد آرایه پویا و...

در هر Platform ای از Qt می تونیم کمک بگیریم تا تا خیلی جاها کار راحت تر شه.
من نمیدونم منظورم دقیقا متوجه شدین یا نه؟ اما منظور من اینکه کار بر بتونه با کمک زبان VB تحت Qt کد بزنه حالا ما میتونیم این IDE که قرار به کاربر کمک کنه رو با هر زبانی بنویسیم ما اگر مطمئنا با Qt باشه خیلی بهتر و راحت تر میشه و همچنین Cross-platfom...

این mingw که DLL اش هم هست چیه؟
mingw در واقع یک کامپایلر C++ هست که یکی از چند کامپایلر خانواده gcc محسوب میشه...
برای اینکه برنامه رو که با Qt نوشتید رو کامپایل کنید باید از یک کامپایلر C++ استفاده کنید ، من چون رو سیستمم Visual Studio از قبل نصب بود از msvc ماکروسافت استفاده میکنم ، ولی میشه از gcc هم استفاده کنم...

ضمنا منبع خوبی هست که بتونیم در مورد توابع داخل DLL های Qt ازش مطلب استخراج کنیم؟
ببنید ما برای کد نویسی به این DLL ها اصلا نیازی نداریم و فقط موقع اجرا به اونها نیاز پیدا می کنیم و چند تا بشتر هم نیستد ، که با انتقال رو سیستم مقصد برنامتون به درستی کار میکنه ...
برای کسب اطلاعات هم میتونید به http://doc.qt.digia.com/ برید که خیلی بهتر و قشنگ تر از MSDN مستند سازی شده....
من بهتون توصیع می کنم حتما کتابخونه های Qt و QtCreator که یک IDE برای نوشتن برنامه تحت Qt هست را دانلود کنید و تجربه کد نویسی با Qt رو ببینید...
بعد از مدتی با تکنولوژی های جدیدی آشنا میشید که اصلا با ورتون نمیشه مثلا :
QML (که یک زبان برنامه نویسی هست برای نوشتن سریع برنامه ها برای گوشی های هوشمند و تبلت ) ، Qt +HTML5 که میتونید UI برنامه رو با HTML5 طراحی کنید و کد اصلی برنامه رو با Java Script + C++ بنویسید که خیلی جالب هست و....
به همین دلیل است که میگم اگه بشه در تحت Qt با زبان VB کد زد یکبار دیگه این زبان زنده میشه...

IamOverlord
جمعه 31 شهریور 1391, 19:00 عصر
پس کدی که تولید خواهیم کرد، برای پروژه ی اولمون، Qt در ++C خواهد بود؟ خوب کار نسبتا سریع تر انجام می شه و این نکته ی خوبی هست چون بعدا هم می تونیم به این فکر کنیم که به جای کد ++C کد مثلا Assembly رو تولید کنیم...
اما اگه شما و بقیه دوستان Qt کار هم در طول پروژه همکاری کنین خیلی خوب می شه... فعلا که Qt رو از Assembly هم کم تر بلدم!

returnx
شنبه 01 مهر 1391, 08:24 صبح
بنده تا جایی که وقتم اجازه بده کمک خواهم کرد ، اما بهتر این مسئله رو در تالار Qt هم مطرح کنید و نظر دوستان دیگری مثل جناب حامد مصافی که مدیر بخش Qt هستند رو هم بپرسید...

abidana
دوشنبه 03 مهر 1391, 19:47 عصر
دوستان می خوام باتون همکاری کنم یه فایل اموزشی یا ... هر چیزی که بدرد میخوره بدین اگه خدا خواست و حجم درسم کم شد بتون کمک می کنم
همه برای وی بی وی بی برای همه

IamOverlord
سه شنبه 04 مهر 1391, 17:19 عصر
barnamenevis.org/showthread.php?99549-Assembly-win32-Programming-tutorials-by-Vahid-Nasiri (http://barnamenevis.org/showthread.php?99549-Assembly-win32-Programming-tutorials-by-Vahid-Nasiri)

returnx
سه شنبه 04 مهر 1391, 17:46 عصر
این IDE که مد نظر من هست شاید چند لایه داره به این صورت:
1- محیط طراحی ویژوال
2- مترجم VB به C++ (برای تولید فایل کد C++)
3- Linker برای لینک کردن فایل به کامپایلر و نمایش خروجی
برای لایه اول میشه از Qt Desiner که همراه پکیج QtCreator هست استفاده بشه...
برای لایه دوم باید یک مفسر کوچیک بنویسیم که فقط کد های VB رو به C++ بر گردونه...
برای لایه سوم هم باید یکسری کد بنویسیم که فایل کد C++ را به Compiler لینک کنه تا خروجی رو بگیره و برنامه رو اجرا کنه...
تا اونجا که من میدونستم گفتم ، بقیش با شما !!!
البته ساختن این محیطی که م نظر ماست مثل گفتنش آسون نیست!!!
تمام این مراحل این بالا را باید با جزئیاتشون انجام بدیم!!!
آیا میشه یک همچین کاری کرد!؟

IamOverlord
چهارشنبه 05 مهر 1391, 17:00 عصر
سلام.
مراحل تقریبا از هم مستقل هستن و می شه به طور موازی روشون کار کرد...
محیط طراحی ویژوال که تا حالا طراحی نکردم و اگه دوستانی که تجربه دارن انجام بدن بهتره...
قسمت ۲ مسئله ی اصلی ماست و قسمت ۳ هم که پیچیدگی خاصی نداره...
قسمت ۲ رو باید console مانند بنویسیم که از خط فرمان ورودی بگیره و ضمنا باید خیلی تروتمیز بنویسیمش که بعدا در توسعه، برای تولید کد های غیر Qt، به مشکل نخوریم...
الان دوستانی که روی ASM کار می کردن فکر می کنم بهتر باشه فعلا روی مفاهیم مربوط به کامپایلر مطالعه داشته باشن... ایده ها، روش های مرسوم، مشکلات و راه حل هاشون،... که در قسمت ۲ به کار می آد... همون سورس Libry Compiler رو هم نگاه بندازن باعث می شه یه مقدار کار دستشون بیاد...

returnx
چهارشنبه 05 مهر 1391, 23:09 عصر
محیط طراحی ویژوال که تا حالا طراحی نکردم و اگه دوستانی که تجربه دارن انجام بدن بهتره...
به جای ساخت چنین محیطی میشه ، از همون Qt Designer که نوکیا عرضه کرده استفاده کرد...

قسمت ۲ رو باید console مانند بنویسیم که از خط فرمان ورودی بگیره و ضمنا باید خیلی تروتمیز بنویسیمش که بعدا در توسعه، برای تولید کد های غیر Qt، به مشکل نخوریم...
الان دوستانی که روی ASM کار می کردن فکر می کنم بهتر باشه فعلا روی مفاهیم مربوط به کامپایلر مطالعه داشته باشن... ایده ها، روش های مرسوم، مشکلات و راه حل هاشون،... که در قسمت ۲ به کار می آد... همون سورس Libry Compiler رو هم نگاه بندازن باعث می شه یه مقدار کار دستشون بیاد...
برای این کار هم خیلی نیاز به زوم کردن رو جزیئیات نیست ، فقط کافیه فایل کد VB رو به فایل کد C++ ترجمه کینم ، یعنی دقیقا کاری که این سایت :http://www.developerfusion.com/tools/convert/vb-to-csharp/#convert-again
و نرم افزار های مشابه انجام میدن....
البته برای اینکه یک ایده برای ساخت چنین چیزی بگیرید میتونید فصل 18 کتاب C جعفر نژاد قمی رو مطالعه کنید که یک مفسر Basic نوشته شده....
یعنی اگر یه همچین چیزی داشتیم :
if x>5 then
//Condition

باید داشته باشیم :
if (x>5)
{
//ToDo
}
البته من یک نمونه نوشتم که فقط برای شرط هست (البته خیلی اصولی کار نکردم فقط برا تست بود) :
93307

اینم کدش:
QTextDocument *i_document=ui->vb_txt->document();
QString All_vb_code=i_document->toPlainText();
//split("\tr",QString::SkipEmptyParts);
QStringList i_code_list=All_vb_code.split("\tr",QString::SkipEmptyParts);
QString temp_cpp_code;
QString temp_vb_code;
QString condition_txt;
QString block_test;
for (int counter=0;counter<i_code_list.count();counter++)
{

//temp_cpp_code=temp_cpp_code+i_code_list.at(counter )+"\r\n";
temp_vb_code=i_code_list.at(counter);
int chk_if=temp_vb_code.indexOf("if");
int chk_then=temp_vb_code.indexOf("then");

if (chk_if>-1)
{
//temp_cpp_code=temp_cpp_code+if_block;
condition_txt=temp_vb_code.mid(chk_if+2,chk_then-2);
temp_cpp_code=temp_cpp_code + if_block + condition_open + condition_txt + condition_close + block_open;
}




}
ui->cpp_text->setText(temp_cpp_code);
البته یکسری ثابت هایی هم از قبل تعریف شده اند://KeyWord && Token#define if_block "if"#define block_open "{"#define block_close "}"#define condition_open "("#define condition_close ")"

IamOverlord
شنبه 08 مهر 1391, 18:12 عصر
نیازی هست کامپایلر رو حتما با Qt بنویسیم؟

returnx
شنبه 08 مهر 1391, 21:42 عصر
نیازی هست کامپایلر رو حتما با Qt بنویسیم؟
100 % بله!! چون اینجوری شما با C++ کد خواهید زد ، انعطاف پذیری بیشتر و سرعت بیشتری خواهید داشت و همچنین چون از خود Qt استفاده می کنید ، IDE چند سکویی خواهد شد...
در ضمن همونطور که گفتم نیاز به نوشتن کامپایلر نیست ، فقط یک مترجم VB به C++ کافیه + ابزار های یک IDE ...
برای کامپایل از کامپایلر Mingw میشه استفاده کرد....

amin32
یک شنبه 09 مهر 1391, 18:00 عصر
سلام . فقط میخواستم بگم اگه دو نفر دیگه آشنا با گرامرها و زبان برنامه نویسی مورد استفاده پروژه جور بشه , منم حاضرم تا جایی که وقتم اجازه میده همکاری کنم. به نظرم این اینکار برخلاف نظر خیلیهای دیگه نیاز به نیروی کار آنچنانی نداره .ولی خوب به تنهایی هم واقعآ مشکل میشه. در اینجور پروژه ها کیفیت افراد از کمیتشون مهمتره. فکر میکنم نهایتآ 6 نفر آدم فعال که 3 نفرشون با گرامر ها و زبان مورد استفاده آشنا باشن و 3 نفر دیگه به اسمبلی تسلط داشته باشن برای این پروژه کفایت کنه. ولی اگه نتونستید شرایط و افراد رو پیدا کنید به نظرم اصلآ شروع نکنید!

IamOverlord
یک شنبه 09 مهر 1391, 18:23 عصر
سلام amin32 (http://barnamenevis.org/member.php?162007-amin32) عزیز.
در مورد افراد آشنا با گرامر موافقم. در مورد افراد آشنا با Assembly فعلا که با نظر جناب returnx (http://barnamenevis.org/member.php?141489-returnx) یه Interpreter می سازیم که کد C++‎/Qt تولید کنه. پس کار نسبتا ساده تر هست. و این که بعدا می تونیم آروم آروم گسترش بدیمش و مثلا یه کامپایلر هم در کنار مفسر بهش اضافه کنیم...
ولی فعلا باید افراد پایه برن با Qt آشنایی پیدا کنن و کار رو شروع کنیم.
اما یه مشکلی که هست اینه که وضعیت افرادی که می خوان همکاری کنن معلوم نیست...

amin32
یک شنبه 09 مهر 1391, 18:44 عصر
امیدوارم ناراحت نشی از انتقادم ولی به نظرم شما تاپیک رو بد شروع کردید . شما میخواید با آوردن دلایل مختلف , افرادی رو که آشنایی زیادی با مسائل مربوط به پیاده سازی ندارند مجاب کنید که همکاری کنند. شما اول باید با نیازمندیهای پروژتون آشنا بشید که در این مورد میشه گرامرها , زبان پیاده سازی و زبان اسمبلی ( یا هر زبان مقصد دیگر ) . بعد در یک تاپیک از افراد آشنا به این مسائل دعوت به همکاری کنید . اینکه مثلا افراد ناآشنا با گرامرها بخوان در حین انجام پروژه مساله به این مهمی رو یاد بگیرن واقعآ غیر ممکنه.

IamOverlord
یک شنبه 09 مهر 1391, 19:13 عصر
فکر کنم راست می گی! D:
چون هدف من انجام این پروژه بود در صورتی که هدف تاپیک بیش تر کردن تعداد افراد برای راحتی کار... و خواستم به هر قیمتی شده افراد رو جمع کنم!
بهتر بگم، به جای این که به دنبال افرادی که کار رو بلدن بگردم (دیدم کسی نبود!)، دنبال افرادی گشتم که بخوان کار رو بلد بشن...
راستش فکر کردم حداقل دسته ی دوم تعدادشون بزرگ تر از صفر هست! ولی بعدا به شک افتادم!
ولی هر چی به عنوان تاپیک فکر می کنم می بینم اگه نخوایم بی خیال VB6 بشیم باید ... !
...

IamOverlord
پنج شنبه 27 مهر 1391, 12:22 عصر
سلام.
همچنان دنبال انجام این پروژه هستم...
من Qt رو دارم دانلود می کنم. کدوم رو باید انتخاب بکنم و باید چه تنظیماتی رو انجام بدم؟
سریال رو هم دریافت کردم.


Qt 4.8.2 for Windows (Src and VS2008 32bit Binary)
http://dist.qt.digia.com/developer/download/qt-win-commercial-4.8.3-vs2008.exe

Qt Visual Studio Addin 1.1.11 (Binary)
http://dist.qt.digia.com/developer/download/qt-vs-addin-1.1.11.exe

Qt 4.8.3 for Windows (Src and VS2010 32bit Binary)
http://dist.qt.digia.com/developer/download/qt-win-commercial-4.8.3-vs2010.exe

Qt 4.8.3 for Windows (Src and MinGW 32bit Binary)
http://dist.qt.digia.com/developer/download/qt-win-commercial-4.8.3-mingw.exe

Qt Creator 2.5.2 for Windows (32bit Binary)
http://dist.qt.digia.com/developer/download_creator/qt-creator-win-commercial-2.5.2.exe

Qt 4.8.3 for Windows (Src and VS2010 64bit Binary)
http://dist.qt.digia.com/developer/download/qt-win-commercial-4.8.3-vs2010-64bit.exe

Qt Commercial SDK for Windows
http://dist.qt.digia.com/developer/download_sdk/QtCommercialSDK-online-win-x86-v1.0.2.exe

Qt Commercial Charts 1.1.0
http://dist.qt.digia.com/developer/download_charts/qt-commercial-charts-src-1.1.0.zip

Qt Commercial 3D 1.0.0 Sources
http://dist.qt.digia.com/developer/download/qt-commercial-3d-src-1.0.0.tar.gz

BORHAN TEC
پنج شنبه 27 مهر 1391, 13:39 عصر
سلام
من تمام پستهای این تاپیک را نخوانده ام ولی پیشنهاد می کنم که به عنوان کامپایلر از PaxCompiler استفاده کنید که از 64 بیت هم پشتیبانی می کند. به هر حال توصیه می کنم که به لینک زیر نگاهی بیاندازید:
http://www.paxcompiler.com/

یک مورد دیگر هم هست که در تفسیر کد خیلی کمکتان میکند و آن هم Regular Expression است که حتماً باید کتابی در این خصوص بخوانید. به نظر من برای تفسیر کد ها استفاده از if و ... اصلاً کار درستی نخواهد بود چرا که با این روش های سنتی کار بسیار پیچیده خواهد شد.

به نظر من بهتر است که فعلاً فقط بر روی مکانیزم کار تفسیر و کامپایل وقت بگذارید و کار بر روی IDE را فعلاً رها کنید.من که چیز زیادی بلد نیستم ولی اگر سرم خلوت تر بشه(انشاالله) من هم سعی می کنم تا جایی که می توانم شما را برای انجام این پروژه راهنمایی کنم.

اگر میتونستی یک اسپانسر خوب پیدا کنی من همین الان به صورت جدی به گروه شما می پیوستم. نمی خواهم بگویم که خیلی انسان مادی گرایی هستم ولی قبول کن که انجام این کار خیلی هزینه بر است (هم از لحاظ بودجه مالی و هم از لحاظ زمانی).

موفق و سربلند باشید...

BORHAN TEC
پنج شنبه 27 مهر 1391, 14:16 عصر
جالب است بدانید که PaxCompiler از زبان Basic ، Pascal و C++ هم پشتیبانی می کند و قرار است که پشتیبانی از Java Script و C هم به این موارد اضافه شود که فکر می کنم که یکی از بهترین گزینه ها برای کار شما است به گونه ای که دیگر به تبدیل کد از یک زبان به زبان دیگر نیازی نیست.

IamOverlord
پنج شنبه 27 مهر 1391, 14:25 عصر
سلام دوست عزیز.

من تمام پستهای این تاپیک را نخوانده ام ولی پیشنهاد می کنم که به عنوان کامپایلر از PaxCompiler استفاده کنید که از 64 بیت هم پشتیبانی می کند. به هر حال توصیه می کنم که به لینک زیر نگاهی بیاندازید:
http://www.paxcompiler.com/

اون سایت رو دیدم و خوندم، اما لطفا یه توضیحی هم در این مورد بدید... ممنون...


یک مورد دیگر هم هست که در تفسیر کد خیلی کمکتان میکند و آن هم Regular Expression است که حتماً باید کتابی در این خصوص بخوانید. به نظر من برای تفسیر کد ها استفاده از if و ... اصلاً کار درستی نخواهد بود چرا که با این روش های سنتی کار بسیار پیچیده خواهد شد.
قطعا! من در این مورد کتاب هایی تهیه کردم و در مورد اصول طراحی کامپایلر و روش ها و مسائل مختلفش مطالبی خوندم... استفاده از if به صورت عادی یه چیزی از سنتی هم عقب تره!


به نظر من بهتر است که فعلاً فقط بر روی مکانیزم کار تفسیر و کامپایل وقت بگذارید و کار بر روی IDE را فعلاً رها کنید.
این کار عاقلانه است و نظر من هم همینه... IDE چیزیه که بعدا می شه با خیال راحت به عنوان Code Generator بهش پرداخت...


اگر میتونستی یک اسپانسر خوب پیدا کنی من همین الان به صورت جدی به گروه شما می پیوستم. نمی خواهم بگویم که خیلی انسان مادی گرایی هستم ولی قبول کن که انجام این کار خیلی هزینه بر است (هم از لحاظ بودجه مالی و هم از لحاظ زمانی).

در مورد تهیه ی اسپانسر باید بیش تر فکر کنم... آخه واقعا نمی دونم تو این مراحل اولیه لازمه یا نه... :متفکر: اما از لحاظ زمانی واقعا باید روش وقت گذاشت به طور جدی... می تونم یه سایت براش راه بندازم و از اون طریق، اسپانسر، همکار و کاربر گیر بیاریم...

BORHAN TEC
پنج شنبه 27 مهر 1391, 15:00 عصر
اون سایت رو دیدم و خوندم، اما لطفا یه توضیحی هم در این مورد بدید... ممنون...
توضیحات در موردش زیاده ولی برای این که بهتر در موردش بدونید فایل راهنمای اون رو از قسمت Download مربوط به سایت مذکور دانلود کنید:
http://www.paxcompiler.com/downloads/paxcomp_chm.zip
با تحقیقاتی که من بر روی این کامپایلز داشتم متوجه شدم که شاید برای پروژه شما بهترین گزینه باشید.

قطعا! من در این مورد کتاب هایی تهیه کردم و در مورد اصول طراحی کامپایلر و روش ها و مسائل مختلفش مطالبی خوندم... استفاده از if به صورت عادی یه چیزی از سنتی هم عقب تره!

اگر می خواهید که به صورت دقیقتری در مورد ساخت کامپایلر تحقیق کنید و از روش های مدرن امروزی بهره ببرید می توانید در مورد LLVM هم تحقیق کنید. خوشبختانه مجله "شبکه" از شماره 137 که مربوط به مهرماه سال 91 است شروع به نوشتن یکسری مقالات در این مورد کرده که خواندنش رو به شما توصیه می کنم.

این کار عاقلانه است و نظر من هم همینه... IDE چیزیه که بعدا می شه با خیال راحت به عنوان Code Generator بهش پرداخت...
این تصمیم واقعاً عاقلانه است، چرا که ساخت برنامه ای که ظاهر گرافیکی هم ندارد ولی می تواند کدی را کامپایل کند نسبت به یک محیط گرافیکی که کدی را نمی تواند کامپایل کند انگیزه بیشتری به انسان می دهد.

در مورد تهیه ی اسپانسر باید بیش تر فکر کنم... آخه واقعا نمی دونم تو این مراحل اولیه لازمه یا نه... اما از لحاظ زمانی واقعا باید روش وقت گذاشت به طور جدی... می تونم یه سایت براش راه بندازم و از اون طریق، اسپانسر، همکار و کاربر گیر بیاریم...
به هر حال دوستان زیادی هستند که اطلاعات فنی زیادی دارند. خود بنده حقیر هم اکنون پروژه بزرگی را در دست دارم و خوشبختانه در طول ساخت این پروژه اطلاعات زیادی را کسب کرده ام ولی قبول کنید که ول کردن این پروژه بزرگ و وقت گذاشتن برای پروژه ای که اسپانسری ندارد برای من و امثال من اصلاً عاقلانه نیست.

IamOverlord
شنبه 06 آبان 1391, 04:58 صبح
سلام.
اگه می شه یه تخمینی در مورد هزینه های مربوط به اسپانسر بزنید... :متفکر:

BORHAN TEC
یک شنبه 07 آبان 1391, 17:15 عصر
سلام
بستگی داره که چقدر قابلیت بخواهید به این پروژه اضافه کنید ولی در نظر داشته باشید که برای ساخت این برنامه حداقل باید 4 میلیون خط کد که اکثراً هم الگوریتمیک هستند نوشته شود و کلاً فکر می کنم برای طراحی یک زبان برنامه نویسی + یک IDE + یک Compiler + مستندات + فریم ورک، بابت هزینه پایه حدود 100 میلیون تومان نیاز باشد و طبیعی است که برای شروع کار به یک اسپانسر قوی و یک تیم حدوداً 10 نفره نیاز است. البته این نظر شخصی بنده حقیر است و همانطور که می دانید در ایران اشخاصی پیدا می شوند که بگویند ما این پروژه را با مبلغ 200 هزار تومان هم شروع می کنیم ولی این ارقام برای چنین پروژه ای اصلاً واقع بینانه نیست و اگر اسپانسر قدرتمندی نباشد که بتواند این هزینه ها را تامین کند بعید می دانم انجام این پروژه دوامی داشته باشد. البته توجه داشته باشید که اگر این زبان برنامه نویسی تحت دات نت باشد از آنجایی که بابت ساخت فریم ورک و IDE زحمتی کشیده نمی شود هزینه پایین تر خواهد بود.

IamOverlord
یک شنبه 07 آبان 1391, 18:27 عصر
سلام.
من به نظرم پروژه رو با هزینه های پایین تر شروع کنیم و طی گسترش مبلغ رو بالا ببریم.
چون ریسکش بالا هست اون هزینه. و از طرفی اشخاصی که می شناسم و باهاشون صحبت کردم فکر نمی کنم که فقط با حرف با همچین هزینه هایی موافقت بکنن.
منظورم اینه که مثل بعضی پروژه ها اول کار رو تا یه مرحله ای انجام بدیم و با نشون دادن یه نمونه ی موفق که حالا قصد گسترشش رو داریم دنبال یه اسپانسر با قابلیت تامین هزینه های بالاتر بگردیم.
اگه کار رو تو مسیر صحیح بندازیم خود به خود افراد زیادی راغب به حمایت از پروژه می شن.
حالا این نظر منه با توجه به این که خودم به تنهایی توانایی تامین اون هزینه رو برای پروژه ندارم...

abidana
دوشنبه 15 آبان 1391, 18:32 عصر
من کاملا با حرف اقای iamoverlord موافقم با وجود اینکه خیلی وقته وی بی را ول کردم ولی می خوام بدونم کا تا کجا پیش رفته
با وجود حودا120 نظر و ........... اقای iamoverlord امیدی برای ادام هاین پروژه دارن یا نه

IamOverlord
جمعه 03 آذر 1391, 03:28 صبح
سلام دوستان.
من یه مدتی کلا از این انجمن و این جور کارا فاصله داشتم.
ولی همچنان امیدوار هستم.
اگه دوستان می خوان کار رو ادامه بدیم من پیشنهاد می کنم قضیه رو غیر مالی شروع کنیم!
تو این مدت داشتم یه سری برنامه ی محاسباتی می نوشتم به این فکر افتادم که چه خوب می شد VB6 یه سری چیزا رو به صورت پیش فرض داشت... مثلا قابلیت تعریف دقت متغیرت و سایز عدد داخل متغیرت که برنامه های محاسباتی رو سریع تر و بهتر بشه نوشت... می دونم Matlab اختراع شده!
می شه اهداف و ویژگی های پروژه رو در ابتدا چیزای ساده تری تعیین کرد. مثلا: VB7 بهینه شده برای برنامه های محاسباتی... ؛ و کم کم بریم بهش شاخ و برگ بدیم و از VB6 هم بزنیم جلوتر...
وقتتون رو تلف نکنید!
من به انجام این پروژه امید دارم...
من مثل مورفیوس هستم و VB7 هم مثل نیو، بقیه هم مامور اسمیت! :بامزه: البته اگه ماتریکس رو دیده باشید!

Mousavmousab
پنج شنبه 19 بهمن 1391, 00:32 صبح
سلام
فکرهای خوب و بزرگی در سر دارید اما فکر نمی کنید استفاده از زبانهایی مثل دلفی یا سی بهتر باشه؟
احتمالاً (حتماً) یادگیری این زبان ها کمتر از ساخت (گسترش) یک زبان هستش.



موفق باشید.

دوست عزیز هدف ما خود کفا بودنه نه اینکه مثل هزار چیز دیگه هر روز مارو تحریم کنند. یا مجبور به پرداختن هزار برابر از قیمت واقعی باشیم.

Hashemvp
پنج شنبه 19 بهمن 1391, 08:44 صبح
سلام دوستان
من تا3 صفحه از پست ها رو خوندم طرح جالبی هست
نمیخاوم نا امیدتون کنم یا هر چیز دیگه ای ولی 5 سال پیش ی سورس دیدم ک یکی ب تنهایی اینکارو توی ویبی 6 کرده بود و ی زبان برنامه نویسی فارسی درست کرده بود
و میخواست این تیم رو درست کنه و انگار نشده
البته اینطوری ک از تایپک و پست هاش پیداست انشالله این یکی میشه

من پیشنهادم اینکه بجای اینکه ی زبان برنامه نویسی جدید درست کنید همین ویبی 6 رو با کامپونت ساختن ارتقاع بدید
مثلا کامپونت هایی ک بتونه از مترو ویندوز استفاده کنه و ارتباط بر قرار کنه یا با استانداردهای جدید ویندوز پلت فرم و Silverlight ارتباط برقرار کنه
من چند تایی کامپونت نوشتم ک از زبان فارسی پشتیابنی میکنه یعنی دستورات و فراخوانی توابع فارسی نوشته میشه انشالله اگر مشکلی پیش نیاد میخوام توی فروم بذارم
ک از وقتی ک این پروژه رو شروع کردم انواع و اقسام اتفاق افتاده ک وقت نشده انجام بدم و عقب تر بیافته.

چون کم کم واقعا باید بی یخال ویبی 6 شد هر روز داره ب استاندارد های ویندوز و تغییر در هسته اون زیاد میشه
هر چند هنوز ک هنوزه ماکروسافت نتونسته از شر ویبی 6 خلاص بشه این تنها مربوز به کشور های جهان سوم و یا ما ایرانی ها نیست
هنزو ک هنوزه توی تاپیک ها و سایت های خارجی زیادی بری دارن از ویبی 6 استفاده میکنن
و همونطور هم ک مشخص هست ماکروسافت هم غیر مستقیم داره پشتیبانی میکنه همونطور وقتی ک ویندوز7 امد گفتن ویبی 6 ور باید بی خیال بشید و اینا ولی دیر نگذشت ک ماکروسافت اپدیت هایی برای این زبان داد
ک ایراد هاش برطرف بشه.
زبان رو ساختیت من حاضرم کامپونت برای زبان بسازم ب صورت پیش فرض با این زبان نصب بشه.
ی چیزی مثل دات نت
باور کنید دات نت همینه مجموعه ای از کامپونت هست ک باید نصب بشه.

موفق باشید

IamOverlord
شنبه 25 خرداد 1392, 22:23 عصر
سلام دوستان.
بالاخره تابستون شد و یه مقدار وقت آزاد پیدا کردم که رو پروژه کار کنم.
یه Parsing System خفن پیدا کردم که باید ببینید! اسمش GOLD هست و رایگان هم هست!

www.goldparser.org (http://www.goldparser.org)
که البته اول نتونستم وارد سایتش بشم، شاید ایران رو تحریم کرده باشه، اما از این راه (http://proxy.thientu.net/index.php?q=aHR0cDovL3d3dy5nb2xkcGFyc2VyLm9yZy8%3D&hl=2ed) رفتم...
یه Parser Generator (http://en.wikipedia.org/wiki/Compiler-compiler) هست که تو یکی از صفحات Wikipedia در مورد مقایسه ی Parser Generator ها پیداش کردم:

en.wikipedia.org/wiki/Comparison_of_parser_generators (http://en.wikipedia.org/wiki/Comparison_of_parser_generators)
دیدم برای Output Language نوشته از
x86 assembly language, ANSI C, C#‎‎‎‎‎‎‎‎, D, Java, Pascal, Object Pascal, Python, Visual Basic 6, Visual Basic .NET, Visual C++‎‎‎‎ پشتیبانی می کنه.
این هم یه عکس از محیط برنامه:


http://proxy.thientu.net/index.php?q=aHR0cDovL3d3dy5nb2xkcGFyc2VyLm9yZy9idW lsZGVyLy4uL2ltYWdlcy9zY3JlZW5zaG90L3NzLW1haW4ucG5n

Jarvis
شنبه 25 خرداد 1392, 22:45 عصر
آقای IamOverlord (http://barnamenevis.org/member.php?72921-IamOverlord) که اسمتون رو هم نمیدونم ... من قبلاً بهتون پیغام داده بودم بابت همکاری در این پروژه ... ولی متاسفانه تخصص زیادی توی برنامه نویسی نرم افزار ندارم ... یکم دلفی کار کردم که اونم فکر نکنم به درد بخوره ... ولی تخصص اصلی من گرافیک و وب هستش ... به هر حال من توی پروژه ی آنتی ویروس سایروس که خودتون در جریانش هستید گرافیست هستم ... توی این پروژه هم خوشحال میشم کمکی کنم ...

اگه جایی کمکی از دست من بر بیاد دریغ نمیکنم... اجازه هست بنده هم همکاری کنم ؟:خجالت:

IamOverlord
شنبه 25 خرداد 1392, 23:28 عصر
بله اتفاقا کارهای شما رو دیدم و خوشحال می شم همکاری کنید!
ضمنا اسم من مسعود هست...
:چشمک:

IamOverlord
شنبه 25 خرداد 1392, 23:48 عصر
از دوستان علاقه مند می خوام این جا رو نیگا کنن: a Tiny Parser Generator v1.2 (http://www.codeproject.com/Articles/28294/a-Tiny-Parser-Generator-v1-2)
حداقل برای دست گرمی خوبه... توضیحات خوبی هم داده...

Jarvis
شنبه 25 خرداد 1392, 23:48 عصر
بله اتفاقا کارهای شما رو دیدم و خوشحال می شم همکاری کنید!
ضمنا اسم من مسعود هست...
:چشمک:
من شما رو توی یاهو ادد کردم ... اگه مایل بودید اونجا بیشتر با هم آشنا میشیم ...
و این که من چجوری می تونم کمک کنم ؟
در مورد اسمبلی هم خیلی دوست دارم یاد بگیرم ... ولی منابع خوبی پیدا نکردم...

IamOverlord
سه شنبه 28 خرداد 1392, 03:56 صبح
سلام دوستان!

در مورد اسمبلی هم خیلی دوست دارم یاد بگیرم ... ولی منابع خوبی پیدا نکردم...
سعی کردم این جا (http://barnamenevis.org/showthread.php?403429-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-Win32-%D8%A8%D8%A7-MASM-%D8%AA%D8%B1%D8%AC%D9%85%D9%87) یه آموزش خوبی گذاشته بشه در مورد برنامه نویسی Win32 با MASM... فعلا بخش اولش رو گذاشتم که اصول پایه ی کار رو می گه...
البته این آموزش زیاد مقدماتی نیست ولی برای ورود به برنامه نویسی Win32 چیز خوبیه!

Jarvis
یک شنبه 16 تیر 1392, 20:44 عصر
سلام
با توجه به صحبت هایی که با مسعود عزیز شد برای تعیین اسم پروژه و اسم تیم ، از میان چندین اسم اسامی زیر به عنوان اسم پروژه و اسم تیم انتخاب شدند:
نام پروژه : Hypersia به فارسی هایپرشیا که از کلمه ی انگلیسی Hyper به برگردان فارسی "بیش از حد" و Persia به معنی ایرانی ساخته شده ...
یعنی Hyper + Persia = Hypersia
این اسم توسط بنده پیشنهاد داده شد که به تأیید بنده و مسعود عزیز رسید .. امیدوارم شما عزیزان هم تأیید کنید :)
اسم تیم رو هم بنا بر اسمی که مسعود جان پیشنهاد داد : Bita انتخاب کردیم ... هم به خاطر وجود کلمه ی Bit در این کلمه و هم این که در فارسی معنی "بی همتا" می دهد

منتظر همکاری دوستان هستیم

ایام به کام

mehran901
یک شنبه 16 تیر 1392, 22:23 عصر
سلام
با توجه به صحبت هایی که با مسعود عزیز شد برای تعیین اسم پروژه و اسم تیم ، از میان چندین اسم اسامی زیر به عنوان اسم پروژه و اسم تیم انتخاب شدند:
نام پروژه : Hypersia به فارسی هایپرشیا که از کلمه ی انگلیسی Hyper به برگردان فارسی "بیش از حد" و Persia به معنی ایرانی ساخته شده ...
یعنی Hyper + Persia = Hypersia
این اسم توسط بنده پیشنهاد داده شد که به تأیید بنده و مسعود عزیز رسید .. امیدوارم شما عزیزان هم تأیید کنید :)
اسم تیم رو هم بنا بر اسمی که مسعود جان پیشنهاد داد : Bita انتخاب کردیم ... هم به خاطر وجود کلمه ی Bit در این کلمه و هم این که در فارسی معنی "بی همتا" می دهد

منتظر همکاری دوستان هستیم

ایام به کام

درود به شما ، ولی فکر نمیکنین انجام این چنین پروژه ای جز کسب تجربه فایده دیگه ای نداره ؟

درواقع اگه مسئله native کار کردن باشه که راه های بهتری هست مثلا استفاده از دلفی که در ورژن های اخیر شاهکاریه یا همین طور سی پلاس پلاس ،

بیاین واقع نگر باشین این پروژه تا چند روز ؟ چند هفته ؟ یا حتی سال ممکنه دووم بیاره ؟ آخر سر فکر میکنین حتی پروژه نهایی به اندازه نصب ویبی 6 کارا باشه ؟!

اگه جوابتون مثبته ، 100% موفقیتی نسبی به دست میارین .. و انشالله موفق باشین

بهروز عباسی
دوشنبه 17 تیر 1392, 11:34 صبح
درود به همه (بعد از مدت ها مجدداً:لبخندساده:)

من دیگه وقت نکردم پست های جدید رو بخونم ، دیدم دوباره این تاپیک بالا آمده گفتم یه چیزی بگم ،من اول اعلام آمادگی کردم باید بگم نیستم دیگه:کف: ،چون خیلی سرم شلوغه.

یه نکته (شاید قبلاً هم گفته باشم) ؛ هیچ وقت نمیشه دست MS رو خوند ها توسعه همچین ابزاری برای برنامه نویسی روی Platform این شرکت یه کم ریسکش زیاده ،اگر هم این پروژه به سر انجام برسه یهو میبینی MS پشتیبانی نمیکنه.

توی قوانین سایت آمده که :از کلماتی که موجب دلسردی کاربر میشه استفاده نکنید . با این حال باید بگم اون زمانی رو که قرار بذارید روی این پروژه بذارید روی یادگیری یه زبان دیگه ،خداییش وقط زیادی نمیبره منم اول MS VB 6 کار میکردم بعد خودمد پورت کردم:متفکر: روی دلفی بعد C , ++C الانم کم کم دارم یه نگاهی به Python میندازم ،خلاصه خیلی سخت نیست.

درسته این زبان برای خیلی از شما یک چیز خاص داره ،این به خاطر اینه که فقط بهش عادت کردین اگه مثلاً یه برنامه پایگاه داده ای با Delphi بنویسی اون موقع می فهمی این کجا و اون کجا دیگه اسم VB رو هم نمیاری .


در کل هرکی هرکاری میکنه امید وارم موفق باشه.

Jarvis
دوشنبه 17 تیر 1392, 13:49 عصر
ضمن عرض خسته نباشید به دوستان عزیزی که با صحبت هاشون موج منفی صاتع میکنن فقط :| و ممنون از تو بهروز جان ...
راستش من همیشه به این فکر میکردم که چرا فتوشاپ رو کشورای خارجی می نویسن ... و ایران هیچ نرم افزاری نداره که توی جهان مطرح باشه ... کاربراش توی سطح جهان باشن ... نه فقط ایران!
چرا صنعت نرم افزار ایران پیشرفت نکرده .. که وقتی اسم ایران میاد بگن نه ... برنامه نویسای ایرانی هم می تونن .. قدرتشو دارن و اگه بخوان می تونن فتوشاپ رو هم بنویسن ... ولی چون هست نمیان وقت بزارن روش ...
چرا هیچ نرم افزاری نداریم ... یه نرم افزاری که حداقل به جهان ثابت کرده باشیم ما هم می تونیم ... بابا به خدا نقطه ی صفر برنامه نویسی بر میگرده به ایرانیا ... خوارزمی کی بود ؟ الگوریتم که ابتدایی ترین نقطه ی برنامه نویسیه از اسم خوارزمی گرفته شده ...
این خارجیا که چیزی نداشتند که ... ایرانیا بودن که از قدیم این همه ریاضیدان و منجم پرورش میدادن ...
بگذریم ...
ایران توی تحریمه قبول - نیاز به سرمایه هست قبول - نیروی متخصص میخواد قبول ... ولی ما باید به جهان ثابت کنیم که قدرت برنامه نویسی مون بالاست ...
یعنی ما کمتر از هند هستیم ؟ که میاد آنتی ویروس Quick Heal رو میزنه و کلی هم فروش میکنه ... هند که توی تاریخ هم همیشه زیر سلطه ی یه کشور دیگه بودن ...
یکم به ایران فکر کنیم ... زمانی که 44% جهان فقط ایران بوده ... یعنی یه چیزی حدود یک سوم جهان فقط یه کشور بوده ... ما کشوری بودیم که قدرت زیاد مشخصه ی کشورمون بود ...
الان چی ؟ اومدیم رشته ی کامپیوتر که چی بشه ؟ اومدیم این حرفا رو بهم بزنیم و مانع پیشرفت پروژه های بزرگ بشیم ... ؟ اومدیم با این حرفامون جلوی پیشرفت خودمون رو بگیریم و جرئت ریسک رو از خودمون بگیریم ؟
یه نگاهی به شرکت Embarcadero بندازید ؟... همه دارن مسخرش میکنن ... مخصوصا سیاست های غلطی که اخیراً داره روی دلفی پیاده میکنه ... ولی یه شرکت بزرگ نرم افزاری محسوب میشه...
چرا ما توی ایران ، همون Embarcadero رو هم نداریم ... نمیگم مایکروسافت و اپل و اینا ... اونا پیشکش ... ولی شرکتی مثل Adobe .. Autodesk .. Embarcadero .. Mozilla .. ESET ... کو ؟ نداریم ...
دلیلش هم خود ما برنامه نویسا هستیم که همت نمی کنیم و فقط به فکر خودمون هستیم .. خارجیه با این فکر که فلان پروژه باعث پیشرفت خودش ، کشورش و مردمش میشه میاد توی پروژه ای مث Photoshop .. 3Ds Max شرکت میکنه و اسم اون شرکت رو بالا میبره ... ما ایرانیا هم اینجا پشت سیستم هامون نشستیم .. یا وبسایت میزنیم ... یا اگه خیلی هنر کنیم نرم افزار حسابداری و مالی می نویسیم ...
دلم پره ...

فقط خلاصه میگم ... من که توی این پروژه برنامه نویس نیستم و فقط مشاوره و گرافیک بر عهده ی بنده هستش... ولی بیاید برای یک بار هم که شده یه پروژه رو به سرانجام برسونیم ...
شمایی که میگی نمی ارزه و... ... ، تا حالا چنین پروژه ای انجام شده که ببینیم می ارزه یا نه ؟ ... یا همینجوری چون پروژه یکم سنگینه میگیم نمی ارزه ؟
عادت کردیم ... به وبسایت زدن ... به نرم افزار مالی و حسابداری زدن ... و وقتی اسم پروژه های سنگین میاد سریع مقابلش جبهه می گیریم که آره ... نمی ارزه ...

ختم کلام .. یا علی گفتیم و شروع کردیم ... با توکل به خدا هم کار می کنیم ... هر کس هم خواست می تونه کمک کنه

روز خوش!

Jarvis
دوشنبه 17 تیر 1392, 13:54 عصر
در ضمن ، اینم یادم رفت بگم ...
ما هم اگه یه کاری رو برنامه ریزی شده و مهندسی شده پیش ببریم .. مطمئن باشید ما هم می تونیم مث اونا یا حتی بهتر .. نرم افزار های پیشرفته بنویسیم ...

حتما باید تحت فشار قرارمون بدن تا به خود بیایم ؟ :|

Jarvis
دوشنبه 17 تیر 1392, 16:08 عصر
در جواب httplistener (http://barnamenevis.org/member.php?293197-httplistener) عزیز باید بگم ... اگه از نظر شما این ایده خوب نیست یا به صرفه نیست یا هر چیزی ... خب شما یه ایده به ما بدید ... ولی به بزرگی همین پروژه باید باشه ...

matrix-program
دوشنبه 17 تیر 1392, 18:18 عصر
توی امضاتون چیزی به اسم حمایت نمی بینم ... شما برو همون خنده رو ادامه بده ... اومدی ما رو مسخره میکنی ؟
معذرت:خجالت:
اما خوب حمایت نیازه (حمایت مالی که اینجا وظیفه ی دولته تا نوآوران را حمایت کنه) مث اینه که شما بخوای یه شرکت بزنی اما پول نداشته باشی
اگه پول بود خوب خودمون یه کامپایلر ملی میسازیم(چیزی که داریم(البته من یکی که ندارم)هنره و دانشه.فقط پول نداریم)
یه کلیپ دیروز تو نارنجی دیدم
http://narenji.ir/18728-%D9%86%D8%A7%DB%8C%DA%A9%DB%8C-%D9%BE%D8%A7%DB%8C%DB%8C-%D8%B2%D9%85%DB%8C%D9%86-%D9%81%D9%88%D8%AA%D8%A8%D8%A7%D9%84-%D9%84%DB%8C%D8%B2%D8%B1%DB%8C-%D8%AE%DB%8C%D8%A7%D8%A8%D8%A7%D9%86-%D8%A7%D8%B3%D9%BE%D8%A7%D9%86%DB%8C%D8%A7?utm_sou rce=feedburner&utm_medium=feed&utm_campaign=Feed%3A+narenji%2FFXII+%28%D9%81%D9%8 6%D8%A7%D9%88%D8%B1%DB%8C+%D9%88+%D9%85%D9%88%D8%A 8%D8%A7%DB%8C%D9%84%29
اینا برای فوتبالشون اینقدر مایه میذارن و حمایت میکنن و تو فوتبال هم خیلی موفق هستن
ما (تو نرم افزار) چیمون از اینا کمتره؟؟؟؟

Jarvis
دوشنبه 17 تیر 1392, 19:03 عصر
معذرت:خجالت:
اما خوب حمایت نیازه (حمایت مالی که اینجا وظیفه ی دولته تا نوآوران را حمایت کنه) مث اینه که شما بخوای یه شرکت بزنی اما پول نداشته باشی
اگه پول بود خوب خودمون یه کامپایلر ملی میسازیم(چیزی که داریم(البته من یکی که ندارم)هنره و دانشه.فقط پول نداریم)
یه کلیپ دیروز تو نارنجی دیدم
http://narenji.ir/18728-%D9%86%D8%A7%DB%8C%DA%A9%DB%8C-%D9%BE%D8%A7%DB%8C%DB%8C-%D8%B2%D9%85%DB%8C%D9%86-%D9%81%D9%88%D8%AA%D8%A8%D8%A7%D9%84-%D9%84%DB%8C%D8%B2%D8%B1%DB%8C-%D8%AE%DB%8C%D8%A7%D8%A8%D8%A7%D9%86-%D8%A7%D8%B3%D9%BE%D8%A7%D9%86%DB%8C%D8%A7?utm_sou rce=feedburner&utm_medium=feed&utm_campaign=Feed%3A+narenji%2FFXII+%28%D9%81%D9%8 6%D8%A7%D9%88%D8%B1%DB%8C+%D9%88+%D9%85%D9%88%D8%A 8%D8%A7%DB%8C%D9%84%29
اینا برای فوتبالشون اینقدر مایه میذارن و حمایت میکنن و تو فوتبال هم خیلی موفق هستن
ما (تو نرم افزار) چیمون از اینا کمتره؟؟؟؟
آهان ... حالا شد ...! ... حالا شما محترمانه دارید بحث می کنید .. بنده هم محترمانه پاسخ میدم.
من با نظرتون موافقم ... این که حمایت نیازه .. حمایت مالی ... موافقم ... ولی وقتی دولت ما حمایتمون نمیکنه ... باید همینطور بشینیم و همدیگه رو نگاه کنیم ؟ لینوکس چجوری لینوکس شد ؟ با حمایت مالی دولتش ؟
من در مورد لینوکس مطالعه ی زیادی نداشتم ... سیستم عامل مورد استفاده ی من هم نیست چون کار من گرافیک هم هست و به درد یه گرافیست نمیخوره ... اما یه نفر که مطالعه داشته به من بگه ... لینوکس چجوری لینوکس شد ؟

مسئله ی حمایت مالی رو فرض کنید یه تحریمه از سوی آمریکا ... باید ازش فرار کنیم ؟ یا باید با فکرمون مث خیلی از تحریمای دیگه دورش بزنیم ؟ .. اصن تحریم هم نه.. مسئله ی حمایت مالی رو میشه یه مشکل فرض کرده که ...
در مقابل مشکلات ، باید عقب نشینی کرد ؟ امضای Unique (http://barnamenevis.org/member.php?11933-Unique) رو بخونید ... جالبه ...! ... مشکل رو باید حل کرد ... نباید ازش فرار کرد ... حیفه که به خاطر همین یه مشکل این پروژه انجام نشه ...
ما باید توی دنیا خودمون رو ثابت کنیم ... به همه ثابت کنیم که توی صنعت نرم افزار هم کم نمیاریم ... همونجور که توی خیلی از صنایع پیشتاز شدیم ...

m.4.r.m
دوشنبه 17 تیر 1392, 19:25 عصر
در مورد لینوکس اینارو بخونید خانم Alipoor تا ببینید که لینوکس رو چند برنامه نویس مفت و رایگان و OpenSource کار کردند و در اول لینوکس به عنوان یک پروژه دانشجویی بود که الان لینوکس شد شاخ سیستم عامل ها
http://fa.wikipedia.org/wiki/%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3

Jarvis
دوشنبه 17 تیر 1392, 19:26 عصر
در بحث مالی ، ما در طول تاریخ همیشه با این مشکل مواجه بودیم ... از همه ی جهان .. آنتونی رابینز ... کارل بنر ... رندی گیج ... یا حتی افراد مشهور تری مثل چیرو هوندا که می تونید خودتون زندگیشون رو بررسی کنید ...
مثلا زندگی چیرو هوندا رو ببینید : http://loknat.org/forum/showthread.php?tid=584
فقیر بوده ... مشکل مالی داشته ... ولی نا امید نشده .. نگفته نمیشه ... ادامه داده و با مشکلاتش مبارزه کرده ...

بله.. کار زحمت داره ...
بحث مشکلات رو ادامه ندید خواهشاً ... تاپیک از موضوعش خارج میشه ...
هر کس میخواد کمک کنه ... هر کس هم نمیخواد .. از کنار تاپیک بگذره ...

matrix-program
دوشنبه 17 تیر 1392, 19:28 عصر
من با نظرتون موافقم ... این که حمایت نیازه .. حمایت مالی ... موافقم ... ولی وقتی دولت ما حمایتمون نمیکنه ... باید همینطور بشینیم و همدیگه رو نگاه کنیم ؟ لینوکس چجوری لینوکس شد ؟ با حمایت مالی دولتش ؟بله حرف شما متین ولی سرمایه چی ؟پیشنهادی دارید؟
منم با حرف شما موافقم راه حل اینه که خودمون رو ثابت کنیم اون موقع سرمایه گزار از در و دیوار میریزه حالا سوال اینه که چطوری:متفکر:

Jarvis
دوشنبه 17 تیر 1392, 19:54 عصر
بله حرف شما متین ولی سرمایه چی ؟پیشنهادی دارید؟
منم با حرف شما موافقم راه حل اینه که خودمون رو ثابت کنیم اون موقع سرمایه گزار از در و دیوار میریزه حالا سوال اینه که چطوری:متفکر:
خب این میشه یه مشکل برای ما ...
در درجه ی اول باید ببینیم که این سرمایه رو برای چی لازم داریم ؟ میخوایم کجا خرجش کنیم ؟ توی این پروژه چه چیزایی هزینه میخواد ؟
جمع این هزینه ها رو ( اونایی که ضروریه و نمیشه کاریش کرد ) حساب کنیم... بعد بیایم ببینیم پروژه های بزرگتر و پروژه های مشابه چیکار کردن ... همین لینوکس چیکار کرده ...

ما باید پروژه رو شروع کنیم ... اون رو تا یه سرحدی پیش ببریم .. الان 4-5 نفر بیشتر نیستیم!

m.4.r.m
دوشنبه 17 تیر 1392, 20:00 عصر
ببینید دوستان من با آقا مسعود نویسنده این تاپیک زیاد بحث کردم با هم حرف زدیم هدف از این برنامه نوشتن و ارتقاء دادن ، فروختن وی بی 7 یا درآمد زایی نیست مسعود جان این ایده و پیشنهاد رو دادن و گفتن هر کسی می تونه کمک کنه بسم ا.... نه بحث مالی داشتیم نه بحث حمایت و .... ما بحثمون دنبال افرادی فعال و دوستانی که در زمینه اسمبلی واقعا کد نویس و آنالیزور قهاری هستند بودیم و هستیم البته به این نکته هم اشاره کنم همچین بحث مالی و پشتیبانی لازم نیست فعلا چون هنوز در پایه کار هستیم و داریم از پایه شروع می کنیم و مقدمات رو پشت سر می زاریم لطفا خارج از بحث تاپیک پست نزنید و به اصل مساله بپردازید از مدیران عزیز هم خواهشمندم این پست رو اداره کنند . نه حمایت مالی می خوایم نه حمایت و پشتیبانی دولتی هر کسی علاقه داره شرکت کنه همین

amin32
دوشنبه 17 تیر 1392, 22:35 عصر
دوستان عزیز باور کنید قصد بند نا امید کردن کسی نیست.و فکر میکنم که خود استارتر عزیز هم این مساله رو میدونن.
به هر حال لازم دیدم تا چند تا نکته رو عنوان کنیم. کار بر روی این پروژه فقط زمانی میتونه به صرفه باشه که شما چند نیروی متخصص با وقت آزاد داشته باشید که به مساله آشنایی کامل داشته باشن. این رو قبلا هم گفتم باز هم تکرار میکنم . اینکه انتظار داشته باشیم چند نفر از روی علاقه بیان و پروژه رو استارت بزنن به امید اینکه در حین انجام پروژه با اصول طراحی کامپایلر آشنا بشن یک مقدار دور از ذهن هست.
اینکه بعضی از دوستان مساله لینوکس رو عنوان کردند , باید عرض کنم که اون زمان واقعا وجود یک سیستم عامل متن باز رایگان نیاز بود . از طرف دیگه اکثر کسانی در پروژه مشارکت داشتن. با فرایند انجام پروژه آشنایی داشتند و افراد خبره ای بودند. آیا واقعا امروز با وجود محیط های مختلف برنامه نویسی , ساخت یک کامپایلر جدید تا این حد نیاز هست؟ و حتی اگه ساخته بشه چقدر میتونه مورد توجه قرار بگیره؟
کشورهای پیشرفته انقدر در این زمینه پیشرفت کردن که تا ما بخوایم به جایگاهشون برسیم ( در زمینه کامپایلرها ) اونها چندین برابر پیشرفت کردن. مگر اینکه واقعا یک کمبود در این زمینه وجود داشته باشه و ما اون رو رفع کنیم. لطفا حساب شده عمل کنید.
قطعا همه ما کشورمون رو دوست داریم. من نمیگم که دوستان دنبال پروژه های بزرگ نباشن. به نظر من الان وقتشه که دنبال طرحهای نو باشیم. به عنوان یک مثال کوچک , چند روز پیش با یک برنامه اندرویدی خیلی خوب برخورد کردم که بعدش فهمیدم برنامه نویسش یک ایرانیه! منظورم اینه که ما باید ببینیم در کجا کمبود وجود داره تا وقتمون رو در همون زمینه صرف کنیم.
یکی دو سال پیش خود بنده و استارتر محترم در تاپیکی دیگه کار ساخت یک زبان جدید رو شروع کردیم ولی چون نیروی متخصص دیگه ای نبود که باهامو همکاری کنه , پروژه به جایی نرسید!

matrix-program
دوشنبه 17 تیر 1392, 22:47 عصر
خیلی ممنون که به فکر ما هستید آقای httplistener:لبخندساده:
دنبال vb7 هستیم چون vb6 کم کم به قول خودمون داره از رده خارج میشه(توسط این مایکروسافت لعنتی)
مایکروسافت هرچی ساخت فرداش منسوخش کرد
اما ما چندین سال از عمرمون رو گذاشتیم پای این زبان و هنوز سینتکس اونو دوس داریم و به اون عادت داریم

اکثر ما ها اومدیم زبان های خارجه(بخصوص انگلیسی) را یاد گرفتیم و بعد پا به این عرصه گذاشتیم چون بیشترین و مفید ترین منابع موجود انگلیسی هست

من کی حرف از تنفر از این سینتکس زدم فقط گفتم داره منسوخ میشه

من به خاطر این از رده خارج شدن دارم کم کم به سی شارپ کوچ میکنم(بهتر بگم کوچ کردم)

الان هم توانایی هام رو pm میکنم

Jarvis
دوشنبه 17 تیر 1392, 23:16 عصر
منم با نظر بقیه دوستان موافقم به نظر من هم انجام این کار صرفا وقت تلف کردنه
و البته بعید هم می دونم شما با این سطح برنامه نویسی که دارین بتونین این کارو بکنین!(از پست ها معلومه که نه با assembly کار کردین نه c/C++‎ !!(
نوشتن یک زبون جدید کار هر کسی نیست...
بهتره وقتتون رو بزارین روی یک پروژه عملی و کاربردی تر.... !
خب .. بالفرض که ما از این پروژه هم صرف نظر کردیم ... اومدیم اینجا
http://barnamenevis.org/showthread.php?388722-%D8%B4%D8%B1%D9%88%D8%B9-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%DB%8C-%D8%A2%D9%86%D8%AA%DB%8C-%D9%88%DB%8C%D8%B1%D9%88%D8%B3-%D9%85%D8%AA%D9%86-%D8%A8%D8%A7%D8%B2-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86%DB%8C-...
خواستیم توی این زمینه کار کنیم ... گفتن فایده نداره ...
کامپایلر رو هم که میگید فایده نداره ...
الان بخوایم بگیم روی یه مرورگر کار کنیم میگید Chrome و Mozilla Firefox هست ... بگیم نرم افزار طراحی وب .. میگید Dreamweaver هست ... بگیم مدیریت دانلود میگید IDM هست ...
روی چی بریم کار کنیم ؟ وقتمون رو بزاریم روی یک پروژه عملی و کاربردی تر.... مثل چی ؟

بهروز عباسی
سه شنبه 18 تیر 1392, 01:35 صبح
درود به همه

ضمن عرض خسته نباشید به دوستان عزیزی که با صحبت هاشون موج منفی صاتع میکنن فقطهر کی یه نظری داره ::شیطان:



و ممنون از تو بهروز جان ...خواهش میکنم:گریه:


الگوریتم که ابتدایی ترین نقطه ی برنامه نویسیه از اسم خوارزمی گرفته شده ...الگوریتم فقط یه اسمه ،و یه روش مهم کسی که بتونه ازش استفاده کنه این که آقای X این کارو کرده و ایرانیا فلان و بهمان و خارجی های هیچی و ... به هیچ دردی نمی خوره.


یعنی ما کمتر از هند هستیم ؟آره ،هند تو علوم کامپیوتری حرف زیاد داره بزنه.


هند که توی تاریخ هم همیشه زیر سلطه ی یه کشور دیگه بودن ...ولی وقتی آزاد شدن قدر خودشون رو دونستن و از داشته هاشون درست استفاده کردن اونا نخبه ها رو نگه میدارن ولی ما چی (مستند میراث البرتا رو دیدی یا همون بنده خدایی که توی تاپیک پروژه آنتی ویروس مینالید ؟؟)
ما آدم مخ زیاد داریم ولی نمی تونیم استفاده کنیم همه مغز های کره زمین توی ناسا هستن ،خود ناسا 42درصدش ایرانیه (آماره مال سال قبله که شندیم).


زمانی که 44% جهان فقط ایران بوده ...داشتم داشتم حساب نیست دارم دارم حسابه.اینا هم خیاله.


چرا ما توی ایران ، همون Embarcadero رو هم نداریم ... نمیگم مایکروسافت و اپل و اینا ... اونا پیشکش ... ولی شرکتی مثل Adobe .. Autodesk .. Embarcadero .. Mozilla .. ESET ... کو ؟ نداریم ...ما چیزای بهتری داریم که نه کسی میدونه یه و نخواهد دونست ، فقط داریم:افسرده:


در مورد لینوکس اینارو بخونید خانم Alipoor تا ببینید که لینوکس رو چند برنامه نویس مفت و رایگان و OpenSource کار کردند و در اول لینوکس به عنوان یک پروژه دانشجویی بود که الان لینوکس شد شاخ سیستم عامل هاLinux صرفاً به خاطر اینکه در زمان مناسب مطرح شد موفق شد و در مورد شاخ و دم بودن همچین مالی هم نیست:قهقهه:
اگه چندتا برنامه نویس رایگان روش کار کردن برای این بود که نمی خواستن بابت Unix یا حتی Minix پولی بدن و هدف مفت خوری بود.


مشکل مالی داشته ... ولی نا امید نشده .. نگفته نمیشه ... ادامه داده و با مشکلاتش مبارزه کرده ...چرا راه دور میری تا من موندم ؟:لبخند:


ما بحثمون دنبال افرادی فعال و دوستانی که در زمینه اسمبلی واقعا کد نویس و آنالیزور قهاری هستند بودیم و هستیمیه تیم طراحی و توسعه Compiler که کلاً آدم های کمی هستن تک و توک مثل
Anders Hejlsberg (http://en.wikipedia.org/wiki/Anders_Hejlsberg)



خیلی دید دوستان به مسائل کوتاهه لطفا یکم دور برتون رو نگاه کنیدخیلی هم به دور نگاه کنیم چیزی نمیبینیم :لبخند:


کی گفته تو ایران فقط نرم افزار حسابداری و ... نوشته می شهاین حالت کلیه ؛ اکثر سفارش ها توی ایران DB و حسابداری و نرم افزارهای اختصاصی و لی روسیه اکثر برنامه نویس هاش سیستمی کار میکنن و ... .


پس با این وجود کی پهباد آمریکا رو آورد پایین ؟ این چه سوالی خواهر من ،اصلاً ربطی به این موضوع نداره ما برنامه نویس ها داریم در مورد قست و جنبه عمومی کار برنامه نویسی بحث میکنیم گرفتم پهباد ایالات متحده کار بخش ها و افراد Priv8 دولته که اونا به اندازه خودشون هستن ،مشکل مال ماهاست.


دیدین تو تلویزیون تبلیغ می کنه می گه : "خبری تازه در راه است ... " فکر کنم می خوان بگن جوانان عزیز ایرانی موفق به ساخت زبان برنامه نویسی بنام خاله ماندگار شدن اونم تو انجمن برنامه نویس ! :قهقهه:تلوزیون جک زیاد پخش میکنه.


شما خودت الان سیستم عاملت خارجیه-کامپایلرت خارجیه-سیستمت خارجیه-....اولین سیستم عامل ایرانی --> زمین یادت رفت :چشمک: ولی این AV که چند روزه خبرش اومده ایرانی 100% .


از مدیران عزیز خواهشمندم تاپیک رو مدیریت کنن و از دوستانم میخوام که به پست های اضافی پاسخ ندن ...نمیشه:لبخند:



به امید خدا ما کارمون رو شروع می کنیم .. و ادامه میدیم ... پشت کار خوبه ،امید وارم موفق باشید


هر کاری مخالف و موافق داشته ... ما سر تاپیک شروع ساخت پروژه ی آنتی ویروس متن باز ایرانی ... (http://barnamenevis.org/showthread.php?388722-%D8%B4%D8%B1%D9%88%D8%B9-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%DB%8C-%D8%A2%D9%86%D8%AA%DB%8C-%D9%88%DB%8C%D8%B1%D9%88%D8%B3-%D9%85%D8%AA%D9%86-%D8%A8%D8%A7%D8%B2-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86%DB%8C-...) هم همین بدبختی رو داشتیم! د نشد دیگه ، توی اون بحث من از اول مخالف بودم ولی وقتی دیدم کار رو شروع کردید کمکتون کردم درسته یا نه ؟؟
ولی الان چی شد ،پروژه کجاست ؟ میدونم عباس سرش شلوغه ، به همین خاطر پروژه پر !
همش به خاطر شروع بدون برنامه ریزی .
من خودم یه نفری دارم AV میسازم انقدر تحقیق کردم که دیگه کچل شدم ولی اون پروژه ملی چی ؟؟ چکار کرده هیچی !! تازه قراره از DB دیگر AV ها استفاده بشه که اگر هم 100 درصد جواب بده تازه هیچ کاری نکرده !!
اگه خواستی بدونی چرا بیا توی همون تاپیک تا توضیح بدم.



ایرانی می تواند و خواهد توانستشرمنده ولی آنها که توانستند انجام دادند.


بعضی از دوستان هنوز مفاهیم اولیه برنامه نویسی رو نمیدونن میگن یه هفته بهم وقت بدین یاد بگیرم :گیج: . اونوقت میخوان تو نوشتن کامپایلر کمک کنن:قهقهه:

مثل اون پروژه معروف که بهش گند زدن دیگه با یه مشت آدم که اسم پروژه رو اصلا نمیدونستن چطوری مینویسن می خواستن یه چیزی بسازن که بیا و ببین (شاید بدونید چی بود)


بله - دیگه لازم نمی بینم و شما را در این حد که بحث کنم ! فقط می تونم بگم خیلی متاسفم ! البته از نام پروفایل و تصویر پروفایل تون از این بیشتر توقع نبود !
پروفایل شما موردش از واسه بنده بیشتره بیخود گیر ندین.در مورد این قسمت که قرمز کردم ، یاد آوری میکنم مودبانه تر برخورد کنید ، البته قصد جسارت به شما رو ندارم و هممین طور ممنون میشم بقیه هم کمی بیشتر مراعات کنن .



(توسط این مایکروسافت لعنتی)
مایکروسافت هرچی ساخت فرداش منسوخش کردنبینم کسی به کمپانی مورد علاقه من توهین کنه
دوست عزیز اگه کمی سیستمی تر به مسائل نگاه کنی مبینی که MS داره کارهای بزرگی میکنه ولی متاسفانه مجبوره در دراز مدت انجامش بده .ولی در آخر چیز خوبی میشه.


اما ما چندین سال از عمرمون رو گذاشتیم پای این زبان و هنوز سینتکس اونو دوس داریم و به اون عادت داریمتنها چیزی که توی دنیا اهمیت نداره علایق من و شماست باید خودمون رو باهاش سازگار کنیم.


خب .. بالفرض که ما از این پروژه هم صرف نظر کردیم ... اومدیم اینجا
خواستیم توی این زمینه کار کنیم ... گفتن فایده نداره ...توضیح دادم چرا اون حرفا رو زدم و گفتم فایده نداره ، ولی حالا که شروع شده باید ادامه پیدا کنه یا نه ؟
AV اولویت بالاتری نسبت به زبان داره ،اگه مردونه می خواین اسم Iran بالا باشه بیاین روی همین AV کار کنیم ، برای این کار تخصص لازمه دارین ؟؟ توی Compiler چطور ؟؟


الان بخوایم بگیم روی یه مرورگر کار کنیم میگید Chrome و Mozilla Firefox هست ... بگیم نرم افزار طراحی وب .. میگید Dreamweaver هست ... بگیم مدیریت دانلود میگید IDM هست ...
روی چی بریم کار کنیم ؟ وقتمون رو بزاریم روی یک پروژه عملی و کاربردی تر.... مثل چی ؟ این بهترین سوال بود (قسمت قرمز) ، الان دنیا طالب امنیته ! همین .

البته همون پروژه ها رو هم اگه جای پیشرفت داشته باشه میشه روشون کار کرد یعنی Chrome رو بهینه تر کینم نه اینکه دوباره بسازیمش .


خداییش خسته شدم دوبار این تومار رو تایپ کردم که البته دفعه اول خیلی کامل تر بود .
موفق باشید

BORHAN TEC
سه شنبه 18 تیر 1392, 11:21 صبح
سلام

در ضمن ساختن مرورگر و مدیریت دانلود همچین کار سختیم نیست یک نفریم میشه ساخت !
پس به نظر شما افرادی که این کارها رو می کنند کار و زندگی ندارند. ساخت مرورگر کجاش راحته؟ :عصبانی:همون parse کردن کدهای html و رعایت کردن موارد کدینگ مربوطه پدر آدم رو در میاره.
در کل من با نظر شما کاملاً مخالفم. کسی که بتونه یک فریم ورک معمولی و یک کامپایلر بسازه اونقدر مهارتش بالا میره که کارهای بزرگی میتونه انجام بده و یک سر و گردن بالاتر از بقیه است. حتی اگه این پروژه ارزش مادی هم نداشته باشه تجربه افراد رو خیلی میتونه بالا ببره و در آینده میتونه از تجارب بدست اومده در پروژه های دیگه استفاده کنه و اونجا حاصل دسترنجش رو بگیره.

در هر صورت. از همون اول که این تاپیک شروع شد به این فکر بودم که در این پروژه به صورت داوطلبانه همکاری کنم. مدت ها است که علاقمند هستم که در یک پروژه واقعی ساخت کامپایلر همکاری کنم. اگر این بحث و گفتگوهای عمومی به پایان رسید و قضیه جدی تر شد خوشحال می شوم که خبرم کنید. فعلاً میتونیم از ساخت کامپایلر برای x86 شروع کنیم و بعد x64 و بعد هم MAC و بعد هم Linux و سپس ARM.

در مورد مقایسه خودمان با هند هم خوب نیست که خودمان را دست کم بگیریم. آخه تا کی باید بشینیم در مورد محصولات خارجی حرف بزنیم و بزنیم سر و کله همدیگه؟ تا همینجا دیگه کافیه. بهتره که خودمون دست به کار بشیم. همیشه فکر می کردم که تا کی باید از محصولات نرم افزاری خارجی استفاده کنیم. چرا ما نباید نرم افزار به خارج از کشور صادر کنیم. خدا رو شکر بعد از حدود دو سال کار به جایی رسید که شرکت خودمان توانست نرم افزارمان را به کل دنیا بفروشد و اتفاقاً بیشترین فروش ما هم در هند بوده است. در کل می خواهم بگویم که این امر فقط با مطالعه و کار و تلاش مداوم امکان پذیر است و نه با حرف زدن های الکی. به نظر من هر چه زودتر این پروژه را به طور جدی شروع کنیم. امیرالمومنین می فرماید: "العلم السلطان". پس به جای اینکه دو سال فقط حرف بزنیم بهتره که کار علمی خودمان را شروع کنیم. یه چیزی رو بگم ناراحت نمیشید؟ در طول این مدت که با خارجی ها رابطه داریم فهمیدم که از نظر هوش ما ایرانی ها خیلی باهوش تر هستیم. فرق بسیاری از ایرانی ها با اونها اینه که ما زیاد حرف میزنیم و اونها زیاد عمل می کنند.
موفق باشید...

سید حمید حق پرست
سه شنبه 18 تیر 1392, 11:31 صبح
سلام علیکم
پیشنهاد میکنم به جای اینکار به نوشتن پروژه علمی تری فکر کنید.
الان که c# و vb.net هست که از نظر بنده از vb6 خیلی آسونتر هستند و به عنوان مثال یک صفحه کدی که در vb6 مینویسیم در c# میشه با چند خط نوشت!
البته نمیگم که vb6 استفاد ه نکنید یا استفاد ه ای ندارد ! نظر من اینه که زبانهای دیگه هم بخونید!! من خودم vb6 که خوندم طی یک هفته با تماشای فیلم آموزشی که دانلود کرده بودم c# یاد گرفتم چرا؟ چون vb6 بلد بودم و خیلی جاها کدهاشون شبیه همه و احت میشه درک کرد و بعد هم vb.net و delphi
اما هنوز هم بعضی از پروژه هامو با vb6 مینویسم (از 10 پروژه نزدیک 3 پروژه با vb6)
موفق باشد.

یا علی (ع)

بهروز عباسی
سه شنبه 18 تیر 1392, 12:17 عصر
در این پروژه افراد مجبور می شوند که به شکل خیلی اصولی تری به ساخت فریم ورک ها بپردازند و طبیعی است که سطح علمی افراد خیلی بالاتر خواهد رفت و این بهتر از ساخت یک برنامه رایت CD و Defragmenter و ... است. شاید این پروژه ارزش مادی نداشته باشه ولی در طولانی مدت نسبت به پروژه های کاربردی دیگه ارزش بسیار بالاتری داره.شاهین جان ،یعنی شما میگی این پروژه برای افزایش سطح بچه ها خوبه ؟؟ منظورم اینه که هدف فعلاً همین افزایش سطح باشه ؟

omidshaman
سه شنبه 18 تیر 1392, 12:21 عصر
مرورگر ساده!! و نه قابل قیاس با فایرفاکس و ...!
.
البته شاید جالب باشه که بدونین اکثر مرورگر ها از همین webkit استفاده می کنن! از جمله فایرفاکس و کروم!(البته کروم توی ورژنای بعد قراره از chromium استفاده کنه که تو ساخت اونم از webkit استفاده شده!)
http://en.wikipedia.org/wiki/WebKit
حالا به هر حال اگر قرار شد روی همین ساخت زبان کار کنین منم جاهایی که بتونم کمک می کنم. (به خاطر یاد گیری نه این که با ایدش موافق باشم...)

BORHAN TEC
سه شنبه 18 تیر 1392, 12:31 عصر
شاهین جان ،یعنی شما میگی این پروژه برای افزایش سطح بچه ها خوبه ؟؟ منظورم اینه که هدف فعلاً همین افزایش سطح باشه ؟
آره.

حالا به هر حال اگر قرار شد روی همین ساخت زبان کار کنین منم جاهایی که بتونم کمک می کنم. (به خاطر یاد گیری نه این که با ایدش موافق باشم...)
خوبه، به نظر من این پروژه در کوتاه مدت نمیتونه با محصولات خارجی رقابت کنه و من هم این را می دانم ولی اگه به صورت جدی روی این پروژه کار بشه شاید تا چندین سال دیگه حرفی برای گفتن داشته باشه و شاید هم نداشته باشه! ولی آنچه که مسلم است این است که تجربه همه ما با انجام این پروژه خیلی بیشتر خواهد شد. من هم از همین امروز تحقیقاتم را برای ساخت یک کامپایلر 32 بیتی با پشتیبانی از زبان Basic شروع خواهم کرد. به نظر من اسم این پروژه رو IR-OBASIC بزاریم. نظر دوستان چیه؟ کسی نظر دیگه ای داره؟
در این اسم IR مخفف IRAN و O مخفف Objective و BASIC هم که مشخصه.

محسن واژدی
سه شنبه 18 تیر 1392, 12:52 عصر
سلام
دوستان عزیز لطفا بیشتر از این تاپیک را از هدف اصلی منحرف نفرمائید، درضمن پاسخگویی به تاپیک های فاقد محتوی هیچ سودی جزء منحرف کردن تاپیک و افزایش پاسخ های فاقد محتوی در برنخواهد داشت پست های فاقد محتوی را فقط گزارش کنید مطمئن باشید که با آنها برخورد خواهد شد.

موفق باشید.

Jarvis
سه شنبه 18 تیر 1392, 13:07 عصر
سلامی دوباره خدمت عزیزان
از این که جناب عشایری رو اینجا می بینم که حامی ما شدن و دارن مخالفان رو توجیه میکنن خیلی خوشحالم ...
لازم هستش که اشاره کنم ، جناب عشایری یکی از باسواد ترین برنامه نویسانی هست که توی بخش دلفی دیدم ... آدم خیرخواهی که بنده همیشه به عنوان استاد قبولش دارم ... حرف هاش هم همه منطقی هستش
در مورد شما بهروز :

ما چیزای بهتری داریم که نه کسی میدونه یه و نخواهد دونست ، فقط داریم:افسرده:
ما به چیزایی که داریم و خودمون نمی دونیم فعلا کاری نداریم ... به اونایی که نداریم و خارجیا دارن کار داریم ... صنعت نرم افزار ضعیف ! .. صنعت خودروسازی ضعیف ... و...


د نشد دیگه ، توی اون بحث من از اول مخالف بودم ولی وقتی دیدم کار رو شروع کردید کمکتون کردم درسته یا نه ؟؟
بله درسته ... دست شما هم درد نکنه .. خیلی هم ممنون


ولی الان چی شد ،پروژه کجاست ؟ میدونم عباس سرش شلوغه ، به همین خاطر پروژه پر !
همش به خاطر شروع بدون برنامه ریزی .
من خودم یه نفری دارم AV میسازم انقدر تحقیق کردم که دیگه کچل شدم ولی اون پروژه ملی چی ؟؟ چکار کرده هیچی !! تازه قراره از DB دیگر AV ها استفاده بشه که اگر هم 100 درصد جواب بده تازه هیچ کاری نکرده !!
اگه خواستی بدونی چرا بیا توی همون تاپیک تا توضیح بدم.
خب شروع کننده ی پروژه عباس بود و این مسائل به اون مربوط میشه ... باید به خودش بگی...
این مسائل رو توی همون تاپیک بگیم بهتره


من ایده هام رو نمی تونم با کسی به اشتراک بزارم . (ایده ای که به اشتراک گزاشته بشه دیگه ایده نیست!)
شما خودتون چند نفرین یعنی ایده از این بهتر پیدا نکردین؟!
اگه بحث ایده باشه .. نه ایده ای پیدا نکردیم ... ایده ای که دهن پر کن باشه و بتونه ثابت کنه که ایرانیا توی برنامه نویسی قوی هستن .. نه پیدا نکردیم ...

امدیمو اصلا بعد 2-3 سال ساختین به نظرتون کسی حاضر میشه با این زبون من در اوردی شما کار بکنه (چه چیز جدیدیو قرار ارائه بده که ارزش یاد گرفتن رو داشته باشه؟!)
زبان برنامه نویسی من درآوردی ؟؟؟؟ انگار میخوایم با خمیر بازی مجسمه بسازیم ؟ .... بله اگه این زبان ضعف های دلفی و سی شارپ رو نداشته باشه ... اگه اصولی پیش بره .. اگه برنامه ریزی شده باشه و سینتکش استاندارد باشه ... بله که مورد توجه واقع میشه ... البته فعلا که هدف کسب تجربه است و بالابردن سطح علمی ...فعلا هدف مادی نیست ... ولی همینجا شرط می بندم اگه همه همکاری کنن یه روزی این پروژه تو دنیا صدا میکنه...

قرار نیست که چیزی که قبلا اختراع شده رو بیایم بدترشو دوباره از 0 اونم بدتر بسازیم !

برای یه شخص موفق ، نیازی نیست که محصولش مشابه داره یا نه ........
مگه وقتی جیمیل اومد ، یاهو نبود ؟! قبل فایرفاکس ، اینترنت اکسپلوره نبود؟


به نظر من اسم این پروژه رو IR-OBASIC بزاریم. نظر دوستان چیه؟ کسی نظر دیگه ای داره؟
شاهین جان من قبلا با مسعود ( شروع کننده ی تاپیک ) در مورد اسم پروژه صحبت کردم ... ( حدود 2 روز پیش ) قرار شد اسم پروژه ترکیب یک اسم ایرانی و یک اسم خارجی باشه ... اسم خارجی رو گفت بزاریم Hyper بعدش من گقتم اینو با Persia ترکیب کنیم و بزاریم Hypersia که هر دوتاش باشه ... اونم موافقت کرد ... برای تیم هم اسم Bita رو پیشنهاد داد ... چون Bit داره :لبخند: و توی فارسی هم معنی خوبی داره
توی این پست می تونی ببینی :
http://barnamenevis.org/showthread.php?360400-%DB%8C%D8%A7-%D8%A8%DB%8C-%D8%AE%DB%8C%D8%A7%D9%84-VB6-%D8%A8%D8%B4%DB%8C%D8%AF-%DB%8C%D8%A7-...&p=1813306&viewfull=1#post1813306

m.4.r.m
سه شنبه 18 تیر 1392, 15:02 عصر
به جای این حرفا و چه کنم چه کنم ها بگید ببینیم هر کدومتون چقدر از شما ها به اسمبلی مسلط هستید ؟ به جای این حرفا هر کسی یه اجر رو هم بزاره الان ساختمون تموم شده بود

BORHAN TEC
سه شنبه 18 تیر 1392, 15:39 عصر
به جای این حرفا و چه کنم چه کنم ها بگید ببینیم هر کدومتون چقدر از شما ها به اسمبلی مسلط هستید ؟ به جای این حرفا هر کسی یه اجر رو هم بزاره الان ساختمون تموم شده بود
از همین حالا من تحقیقاتم رو در مورد ساخت Front-End و Optimizer مربوط به کامپایلر رو شروع می کنم(اگر این کار به درستی صورت بگیره Port کردن کامپایلر روی پلتفرمهای مختلف زیاد سخت نخواهد بود و میشه کامپایلری برای سایر محیطها مثل Mac و Linux هم تولید کرد). بهتره که اول یک قسمت رو در SourceForge یا GitHub درست کنیم و کدها رو در اونجا قرار بدیم. کسی میتونه زحمت این کار رو بکشه و کارهای هماهنگی تیم رو انجام بده؟ به نظرم بهتره که یک قسمتی بسازیم که به جای این همه بحث های الکی و بی مورد کسانی که واقعاً و واقعاً مشتاق هستند که در این پروژه همکاری کنند در اون بخش بیان و فقط پیرامون مباحث فنی در مورد این پروژه بحث کنیم و بحث های عمومی و پیش پا افتاده اونجا صورت نگیره.

m.4.r.m
سه شنبه 18 تیر 1392, 16:33 عصر
من یک پیشنهاد دارم از مدیران میشه یک بخش خصوصی مختص به این کار برای کسانی که واقعا در این تیم می خوان کار کنن ایجاد بشه ؟ اینطوری بحث های بی مورد و بی جهت دست و پاگیر دوستانی که می خواهند واقعا کار کنند نمیشه

Jarvis
سه شنبه 18 تیر 1392, 17:38 عصر
به جای این حرفا و چه کنم چه کنم ها بگید ببینیم هر کدومتون چقدر از شما ها به اسمبلی مسلط هستید ؟ به جای این حرفا هر کسی یه اجر رو هم بزاره الان ساختمون تموم شده بود
خب من که از اسمبلی هیچی بلد نیستم ... ولی خیلی دوست دارم توی این پروژه کمک کنم ... حتی یادگیری اسمبلی رو هم خیلی دوست دارم ...
ولی خب فعلا که اسمبلی بلد نیستم اومدم توی Source Forge دارم براتون یه قسمتی رو راه اندازی میکنم ...


از همین حالا من تحقیقاتم رو در مورد ساخت Front-End و Optimizer مربوط به کامپایلر رو شروع می کنم(اگر این کار به درستی صورت بگیره Port کردن کامپایلر روی پلتفرمهای مختلف زیاد سخت نخواهد بود و میشه کامپایلری برای سایر محیطها مثل Mac و Linux هم تولید کرد). بهتره که اول یک قسمت رو در SourceForge یا GitHub درست کنیم و کدها رو در اونجا قرار بدیم. کسی میتونه زحمت این کار رو بکشه و کارهای هماهنگی تیم رو انجام بده؟ به نظرم بهتره که یک قسمتی بسازیم که به جای این همه بحث های الکی و بی مورد کسانی که واقعاً و واقعاً مشتاق هستند که در این پروژه همکاری کنند در اون بخش بیان و فقط پیرامون مباحث فنی در مورد این پروژه بحث کنیم و بحث های عمومی و پیش پا افتاده اونجا صورت نگیره.
من پیشنهادم اینه که هر کسی مقاله ای پیدا کرد اینجا بزاره که دوستان دیگه هم استفاده کنن ... کاری که بهروز عباسی عزیز هم میکنه ...
می تونیم توی بخش Open Source یه تاپیک اختصاصی براش بزنیم ...
ولی در مورد Source Forge من این کار رو انجام دادم ... اسمبلی که بلد نبودم ... گفتم همین یه کار که حالا از دستم بر میاد رو انجام بدم ...
در مورد هماهنگی هم بنده تا حدی که بتونم کمک میکنم ...

بهروز عباسی
سه شنبه 18 تیر 1392, 17:44 عصر
قبلاً توی یه سایت اسمش یادم نیست (از مسعود بپرسید )یه گروه ساختیم که به صورت مسنجر باهم بحث میکردیم !! اون چیز خوبی بود

یه سوال مگه قرار نشد که یک مفسر ساخته بشه ؟؟

Jarvis
سه شنبه 18 تیر 1392, 18:05 عصر
در مورد اسمی که پیشنهاد دادم کسی نظری نداره ؟میخوام صفحه ی SourceForge اش رو درست کنم ... باید اسم پروژه وارد بشه ...

ممنون میشم نظرات رو اعلام کنید

Jarvis
سه شنبه 18 تیر 1392, 18:06 عصر
قبلاً توی یه سایت اسمش یادم نیست (از مسعود بپرسید )یه گروه ساختیم که به صورت مسنجر باهم بحث میکردیم !! اون چیز خوبی بود
RaidCall ???? :لبخند:


یه سوال مگه قرار نشد که یک مفسر ساخته بشه ؟؟

نه ... قرار شد همون کامپایلر باشه ...

بهروز عباسی
سه شنبه 18 تیر 1392, 18:13 عصر
حالا که انجام پروژه حتمی شد به نظرم بهتره این تاپیک کلاً حذف بشه و یه تاپیک جدید و با محتوا ایجاد کنید

m.4.r.m
سه شنبه 18 تیر 1392, 20:13 عصر
آخه مشکل اینجاست صاحب پست معلوم نیست کجا داره چی کار میکنه :لبخند: چت هم پیداش نیست من بهش خبر بدم مسعود خودش باشه بهتره .

BORHAN TEC
سه شنبه 18 تیر 1392, 23:39 عصر
یه سوال مگه قرار نشد که یک مفسر ساخته بشه ؟؟
من ایده بهتری دارم. سعی کنیم که برای ساخت کامپایلر تا حدود زیادی از LLVM و ساختار PAX Compiler ایده بگیریم. به نظر من بهتره که نحوه کامپایل شدن برنامه رو به عهده کاربر نهایی بزاریم. در این مورد دو حالت پیش می یاد:
1- اگر کاربر مشخص کنه که می خواد برنامش کامپایلری باشه، این موقع کامپایلر یک فایل اجرایی مستقل تولید می کنه.
2- اگر کاربر بخواد که برنامش مفسری باشه، کامپایلر یک کد میانی تولید میکنه که این مورد باید توسط یک مفسر که از یک قسمت + Backend ایجاد شده استفاده میکنه اجرا بشه. انجام این کار به نظر من بهتره. در این میان خود به خود ساختاری به وجود میاد که برنامه کاملاً می تواند حالت دینامیک داشته باشد.

این موارد در محصولاتی مانند PaxCompiler وجود دارد و کاملاً هم قابل پیاده سازی است. این روش می تواند از تمامی ویژگی های مثبت کامپایلر و مفسر استفاده کند و به نظر من از لحاظ تئوری بهتر از ساختار کامپایلر های دات نتی و جاوایی و سایر محصولات کامپایلری مثل کامپایلر دلفی و MinGW و ... است. به نظرتون چطوره؟

Jarvis
سه شنبه 18 تیر 1392, 23:52 عصر
خوبه ... روی همین کار کنید ... می تونید یه سری به SF بزنید و از سورس پروژه هایی که شبیه هستند استفاده کنید ... مسعود گفت که درگیر درس و اینا هستش ولی سر میزنه ...

Jarvis
چهارشنبه 19 تیر 1392, 11:27 صبح
لینک SourceForge ـه پروژه ... https://sourceforge.net/projects/hypersia/

Jarvis
چهارشنبه 19 تیر 1392, 20:51 عصر
من قبلا گفته بودم هر کاری از دستم بر بیاد انجام میدم ...http://freesmile.ir/smiles/890621_LaieA_024.gif
امروز یه مقداری وقت داشتم ... گفتم مقالاتی که در مورد کامپایلر هستش رو جستجو کنم و اینجا لینکشون رو بزارم ... شاید یه کمکی باشه به دوستان .. من که در حد شما نیستم http://freesmile.ir/smiles/765521_LaieA_058.gif
http://bookos.org/book/462272/d9af86
http://bookos.org/book/463739/3a23e3
http://bookos.org/book/490317/b8e1dc
http://bookos.org/book/491311/d805e2
http://bookos.org/book/495674/21e768
http://bookos.org/book/496162/d08136
http://bookos.org/book/501264/17eb1a
http://bookos.org/book/507417/08135c
http://bookos.org/book/507451/40f78c
http://bookos.org/book/507481/d78386
http://bookos.org/book/514999/755de4
http://bookos.org/book/531455/3dde16
http://bookos.org/book/531949/40e8e9
Compiler design: theory, tools, and examples

(http://bookos.org/book/546575/a14d12)Algorithms for compiler design

(http://bookos.org/book/548020/b1ab10)Compilers and compiler generators: an introduction with C++

(http://bookos.org/book/549490/299418) A basic course on compiler principles

(http://bookos.org/book/569810/567436) قابل شما رو هم نداره http://freesmile.ir/smiles/416721_390421_Laie_81.gif

Jarvis
چهارشنبه 19 تیر 1392, 22:31 عصر
اینجا هم آقای شاهین عشایری لطف کردن یک پست در مورد سورس کامپایلر Free Pascal گذاشتن که بد نیست یه نگاهی بهش بندازید ... می تونیم روی سورس این کامپایلر نگاه کنیم و چیزای زیادی ازش یاد بگیریم
لینک دانلود کد کامپایلر Free Pascal (http://barnamenevis.org/showthread.php?370706-%D9%84%DB%8C%D9%86%DA%A9-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%DA%A9%D8%AF-%DA%A9%D8%A7%D9%85%D9%BE%D8%A7%DB%8C%D9%84%D8%B1-Free-Pascal)

IamOverlord
پنج شنبه 20 تیر 1392, 02:19 صبح
سلام بچه ها!
قبل این که درگیر قسمت طراحی خود کامپایلر بشیم می تونیم (به نظرم بهتره) یه سری ماکرو (لینک (http://en.wikipedia.org/wiki/Assembly_language#Macros)) بنویسیم، که در آینده دقیقا بهتون می گم چه ماکروهایی...
>>> یه سری برای تبدیل انواع مختلف به هم هست... مثلا تبدیل Integer به Byte...
- - - باید ببینیم Type هامون چیا هستن؟ (لینک (http://msdn.microsoft.com/en-us/library/47zceaw7(v=vs.80).aspx))
- - - بعد ببینیم چه طوری با Assembly به هم تبدیل کنیم اونا رو... من قبلا رو این موضوع کار احتمالا کردم...
- - - فعلا قراره حتما هر متغیری تعریف بشه قبل از استفاده... اما احتمالا در آینده متغیر هایی که تعریف نشدن رو از نوع Variant (لینک (http://msdn.microsoft.com/en-us/library/office/gg251448.aspx)) در نظر می گیریم...
- - - نوع String در زبانمون رو باید مشخص کنیم و به خوبی ساختارش رو درک کنیم... (لینک (http://en.wikipedia.org/wiki/String_(computer_science)))
- - - توجه کنید دیگه الان اون قدیما نیست! واحد ممیز شناور هست که برای کار با اعداد اعشاری به کمکمون می آد... (لینک (http://en.wikipedia.org/wiki/Floating-point_unit)) واحد های دیگه ای هم هست... از این ها هم مطلع بشید بد نیست! (لینک (http://en.wikipedia.org/wiki/Streaming_SIMD_Extensions‎)) (لینک (http://en.wikipedia.org/wiki/Advanced_Vector_Extensions‎))
>>> یه سری برای جمع، تفریق، ضرب، تقسیم و یا اعمال دیگه ی هر نوع هست... مثل جمع دو Integer...
- - - خوب ماکروی عملگر ها رو بین انواع هم نوع تعریف می کنیم...
- - - بعدا می تونیم از تبدیل انواع استفاده کنیم...
- - - باید رفتار زبان در مقابل انواع رو تعیین کنیم... Weak-Typed بودن (لینک (http://en.wikipedia.org/wiki/Strong_and_weak_typing‎)) و این جور چیزا...
>>> یه سری برای تخصیص حافظه ی پویا و کار با حافظه... (لینک (http://msdn.microsoft.com/en-us/library/ms810603.aspx))
- - - مسائل مربوط به حافظه در زبان های سطح بالا رو باید معادلش رو در Assembly درک کنید...
- - - مثلا چیا تو Stack هستن... چیا تو Heap... (لینک (http://gribblelab.org/CBootcamp/7_Memory_Stack_vs_Heap.html))
>>> برای آرایه ها...
- - - ساختار آرایه ها چه جوری باشه؟
- - - Redim کردن چه جوریه ساز و کارش؟
- - - نحوه ی کار Preserve...
>>> یه سری مربوط به فراخوانی ها...
- - - قرارداد های فراخوانی رو مطالعه کنید... (لینک (http://en.wikipedia.org/wiki/X86_calling_conventions)) (لینک (http://barnamenevis.org/showthread.php?403429-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-Win32-%D8%A8%D8%A7-MASM-%D8%AA%D8%B1%D8%AC%D9%85%D9%87&p=1796132&viewfull=1#post1796132))
>>> ...
این ماکرو ها رو می نویسیم که بعدا موقع تبدیل سورس کد، خیلی راحت تر کدهامون رو به کدهای اسمبلی ای تبدیل کنیم که از این ماکرو ها توشون استفاده شده...
فکر کنم با انجام این کار، کارمون در حد ساختن مفسرها ساده می شه!
تازه می شه پروژه رو از دو جهت هم زمان پیگیری کرد... یکی از اول به آخر یعنی همون مسائل مربوط به تحلیلگر لغوی و تجزیه گر و این ها... یکی از آخر به اول یعنی نوشتن ماکرو های مورد نیازمون برای راحتی در موقعی که داره کد Asm تولید می شه...

ضمنا من یه مقدار وقت آزادم کم تره امسال... ولی فکر نکنید پیگیر پروژه نیستم...
همچنین دارم قسمت دوم آموزش برنامه نویسی Win32 با MASM رو ترجمه می کنم که به امید خدا در تاپیک مربوطه قرار می دم... اما هم وقت کم می آرم، هم حوصله می خواد!...

موفق باشید!

BORHAN TEC
پنج شنبه 20 تیر 1392, 18:16 عصر
سلام
PAX Compiler از زبان visual basic پشتیبانی می کنه و سینتکس پشتیبانی شده توسط اون چیزی شبیه VB.NET است. الان دارم یکسری تست بر روی این محصول انجام میدم تا ببینم چه نقاط مثبت و چه ضعفهایی داره. به نظر من از قسمتهای مختلف این محصول میشه ایده های خیلی خوبی گرفت. کد این کامپایلر هم در اینترنت وجود داره. این هم سایت سازنده:
http://www.paxcompiler.com/
نتایج حاصل از این تستها رو بعداً در همین تاپیک قرار خواهم داد.
در ضمن کار ساخت Parser رو هم شروع کردم که زمانی که به یه جای قابل قبولی رسید با توضیحات کامل قرار میدم که دوستان هم در توسعه اون مشارکت کنند.

به عنوان معرفی یک منبع فوق العاده برای ساخت کامپایلر توصیه می کنم که سایت زیر مورد مطالعه قرار بگیرد:
http://llvm.org/
یکی از مزایای خوب llvm این است که backend های آماده ای برای آن وجود دارد که باعث می شود که زیاد با اسمبلی درگیر نباشیم. برای ساخت کامپایلر با LLVM کافی است که کدهای سطح بالا را به کدهای IR تبدیل کنیم. IR تقریباً چیزی شبیه به دستورات زبان C است و نیازی نیست که خودمان نوع عای داده ساده را پیاده سازی کنیم، چرا که این موارد از قبل پیاده سازی شده اند. در مورد llvm فیلمهای آموزشی زیادی را می توان در youtube پیدا کرد.
موفق باشید...

بهروز عباسی
پنج شنبه 20 تیر 1392, 20:42 عصر
همچنین دارم قسمت دوم آموزش برنامه نویسی Win32 با MASM رو ترجمه می کنم که به امید خدا در تاپیک مربوطه قرار می دم


این Tut هم بد نیست خیلی جمع و جوره :کف:

Jarvis
پنج شنبه 20 تیر 1392, 21:48 عصر
سلام http://freesmile.ir/smiles/452517_j63l74.gif
107037

amin32
پنج شنبه 20 تیر 1392, 22:23 عصر
سلام http://freesmile.ir/smiles/452517_j63l74.gif
107037

ولی خوشم اومد با سلیقه ای داداش.:چشمک:

IamOverlord
جمعه 21 تیر 1392, 00:49 صبح
سلام http://freesmile.ir/smiles/452517_j63l74.gif
107037

عاشق سبکتم!
الکی شلوغ پلوغ نیست!
استراتژی گوگل و جدیدا مایکروسافت...

omidshaman
جمعه 21 تیر 1392, 00:52 صبح
خیلی شبیه ایکون ویژوال استودیو نیست ؟

Jarvis
جمعه 21 تیر 1392, 09:40 صبح
ولی خوشم اومد با سلیقه ای داداش.:چشمک:
ممنون ... لطف دارید

عاشق سبکتم!
الکی شلوغ پلوغ نیست!
استراتژی گوگل و جدیدا مایکروسافت...
قربونت مسعود جان ... لطف داری...

خیلی شبیه ایکون ویژوال استودیو نیست ؟
نه اون حلقه هاش به هم وصل شده ... حلقه هاش شبیه بیضی هستش ... جدیدا هم که دیگه اصن حلقه نیست ...! ( مال 2012 رو میگم )

UfnCod3r
جمعه 21 تیر 1392, 11:54 صبح
صفه قبلو نگاه کردم حدودا پیش از 28 تا پست پاک شده. میدون جنگه مگه اینجا:قهقهه:
حالا که قراره ی زبانی بسازید اخه چرا ب اسم وی بی چرا تقلید از وی بی
بهتر نیست خودتون ی سینتکس درست کنید
حالا هرچقدر هم زبان ضعیف باشه مهم نیست ولی به نظر من سعی کنید یه ایده نو بدین
نه این که کپی کنید

Jarvis
جمعه 21 تیر 1392, 12:27 عصر
صفه قبلو نگاه کردم حدودا پیش از 28 تا پست پاک شده. میدون جنگه مگه اینجا:قهقهه:
حالا که قراره ی زبانی بسازید اخه چرا ب اسم وی بی چرا تقلید از وی بی
بهتر نیست خودتون ی سینتکس درست کنید
حالا هرچقدر هم زبان ضعیف باشه مهم نیست ولی به نظر من سعی کنید یه ایده نو بدین
نه این که کپی کنید
کپی نمیکنیم عبدالله جان ...
اگه آیکون برنامه رو دیدی و از روی آیکون اینو میگی .. باید بگم آیکون هیچ ربطی به آیکون VS نداره و من اصلا قصد نداشتم تقلید کنم ... آیکون رو اگه دقت کنی بیشتر شبیه زنجیر هستش تا شبیه علامت بینهایت ( آیکون VS شبیه علامت بینهایت هستش ) ...
زنجیر هم معنای نماد نظم و پیوستگی و ... هستش
این کامپایلر داره از صفر نوشته میشه ... و قصد نداریم از VB6 تقلید کنیم ... شاید سینتکسش شبیه VB6 باشه ... ولی تقلید نیست ...
دلیل شباهت سینتکس هم اینه که عده ی زیادی با VB6 کار کردن و سینتکسش رو دوست دارن ... نمیشه بخوایم به یه سینتکس متفاوت مجبورشون کنیم ... پس هر چه سینتکس شبیه به VB6 باشه بهتره ...
ولی امکاناتی که VB6 نداره رو میخوایم بهش اضافه کنیم...

موفق باشید

amin32
جمعه 21 تیر 1392, 12:41 عصر
در واقع بهتره کلمه vb6 رو به کار نبرید و بگید که زبانی از خانواده بیسیک هست.

IamOverlord
جمعه 21 تیر 1392, 13:11 عصر
سلام!


صفه قبلو نگاه کردم حدودا پیش از 28 تا پست پاک شده. میدون جنگه مگه اینجا:قهقهه:
حالا که قراره ی زبانی بسازید اخه چرا ب اسم وی بی چرا تقلید از وی بی
بهتر نیست خودتون ی سینتکس درست کنید
حالا هرچقدر هم زبان ضعیف باشه مهم نیست ولی به نظر من سعی کنید یه ایده نو بدین
نه این که کپی کنید

حرفتو قبول دارم در مورد ایده ...
البته نباید گفت این که شبیه VB6 هست یعنی کپیه... چه بسا VB6 یه نمونه ی ضعیف از این بشه... :لبخند:
اما در مورد ایده، خیلی دوست دارم فعلا که اول کار هستیم ایده هایی که جالبن و راحت تر هم پیاده سازی می شن بدین...
خیلی وقتا موقع برنامه نویسی یه سری ایده ها به ذهنم می رسه... مثلا اینا...
^ پشتیبانی داخلی از اعداد مختلط (fa.wikipedia.org/wiki/عدد_مختلط‎) (Complex (en.wikipedia.org/wiki/Complex_number‎)) و Hyper Complex که اعدادی فراتر از اعداد مختلط (en.wikipedia.org/wiki/Hypercomplex_number) هستن... مثل Quaternion (en.wikipedia.org/wiki/Quaternion‎) ها، Octonion (en.wikipedia.org/wiki/Octonion) ها و Sedenion (en.wikipedia.org/wiki/Sedenion) ها...
^ پشتیبانی داخلی از Hyper Operator ها، مثلا Tetration (http://en.wikipedia.org/wiki/Tetration) که عملگر بعد از توان هست یا Pentation (en.wikipedia.org/wiki/Pentation) که عملگر بعد از Tetration هست... این جا (http://en.wikipedia.org/wiki/Hyperoperation) رو ببینید...
^ شاید در فازهای بعدی پروژه، ارائه ی روشی ساده برای طراحی GUI با HyperTML5...!
^ قابلیت تعریف Type جدید برای متغیرهای عددی با دقت و اندازه ی دلخواه در 3 سوت...!
...

Jarvis
جمعه 21 تیر 1392, 13:51 عصر
اینم لوگوی تیممون ... http://freesmile.ir/smiles/373317_yes2.gif
البته با مخلفات گذاشتم .. گفتم شاید براتون جالب باشه ... http://freesmile.ir/smiles/197317_blush2.gif
http://img.majidonline.com/pic/294831/bita.png

darknes666
جمعه 21 تیر 1392, 13:56 عصر
سلام!



حرفتو قبول دارم در مورد ایده ...
البته نباید گفت این که شبیه VB6 هست یعنی کپیه... چه بسا VB6 یه نمونه ی ضعیف از این بشه... :لبخند:
اما در مورد ایده، خیلی دوست دارم فعلا که اول کار هستیم ایده هایی که جالبن و راحت تر هم پیاده سازی می شن بدین...
خیلی وقتا موقع برنامه نویسی یه سری ایده ها به ذهنم می رسه... مثلا اینا...
^ پشتیبانی داخلی از اعداد مختلط (fa.wikipedia.org/wiki/عدد_مختلط‎) (Complex (en.wikipedia.org/wiki/Complex_number‎)) و Hyper Complex که اعدادی فراتر از اعداد مختلط (en.wikipedia.org/wiki/Hypercomplex_number) هستن... مثل Quaternion (en.wikipedia.org/wiki/Quaternion‎) ها، Octonion (en.wikipedia.org/wiki/Octonion) ها و Sedenion (en.wikipedia.org/wiki/Sedenion) ها...
^ پشتیبانی داخلی از Hyper Operator ها، مثلا Tetration (http://en.wikipedia.org/wiki/Tetration) که عملگر بعد از توان هست یا Pentation (en.wikipedia.org/wiki/Pentation) که عملگر بعد از Tetration هست... این جا (http://en.wikipedia.org/wiki/Hyperoperation) رو ببینید...
^ شاید در فازهای بعدی پروژه، ارائه ی روشی ساده برای طراحی GUI با HyperTML5...!
^ قابلیت تعریف Type جدید برای متغیرهای عددی با دقت و اندازه ی دلخواه در 3 سوت...!
...

دوست عزیز بازم قصد موج منفی ندارم.
ولی اعداد Hyper Complex به قدری پیچیده هستن که توی کل ایران فقط تو دبیرستان انرژی اتمی اونم بخش کوچیکش تدریس میشه.
اونوقت شما پشتیبانی ازش ایجاد میکنی که چه سودی داشته باشه؟

Jarvis
جمعه 21 تیر 1392, 14:00 عصر
در واقع بهتره کلمه vb6 رو به کار نبرید و بگید که زبانی از خانواده بیسیک هست.
از خانواده بیسیک هم نیست .. چون قراره Open Source کار کنیم ... از طرفی میخوایم ثابت کار کنیم و تا جایی که میشه وابسته نباشیم...
اینجوری بهتره ... یه زبان برنامه نویسی قدرتمند ... به جای VB6 !!

amin32
جمعه 21 تیر 1392, 14:03 عصر
الان چه کسانی قراره در این پروژه کار کنن؟ به چی تسلط دارند؟ آیا دوستان با فازهای کامپایلر آشنایی دارند؟
راستش اگه وقت داشته باشم و تعداد افراد گروه به اندازه کافی باشه , خوشحال میشم فعالیت کنم. البته اگه وقت کنم.
خودم با بخشهای مربوط به backend و frontend و زبانهای مستقل از متن یک آشنایی نسبی دارم. البته متاسفانه سرم خیلی شلوغه.

omidshaman
جمعه 21 تیر 1392, 14:05 عصر
دوست عزیز بازم قصد موج منفی ندارم.
ولی اعداد Hyper Complex به قدری پیچیده هستن که توی کل ایران فقط تو دبیرستان انرژی اتمی اونم بخش کوچیکش تدریس میشه.
اونوقت شما پشتیبانی ازش ایجاد میکنی که چه سودی داشته باشه؟
اره راست می گه دیگه من که تو عمرم اولین بار همچین اسمیو می بینم !
من تو همون اعداد مختلط که تو دانشگاه درس میدن موندم که اصلا به چه دردی می خورن دیگه سوپر مختلطش پیش کش ! :لبخند:
کسی می تونه توضیح بده کاربرد اعداد مختلط چیه اصلا؟!

amin32
جمعه 21 تیر 1392, 14:10 عصر
از خانواده بیسیک هم نیست .. چون قراره Open Source کار کنیم ... از طرفی میخوایم ثابت کار کنیم و تا جایی که میشه وابسته نباشیم...
اینجوری بهتره ... یه زبان برنامه نویسی قدرتمند ... به جای VB6 !!

اما به نظر من وقتی دارید از سینتکس basic استفاده میکنید , زبان میشه از خانواده بیسیک. این دیگه فکر میکنم ساده باشه. مگه اینکه یک سینتکس جدید ارائه بدید. مثلا vb6 رو میشه گفت از خانواده بیسیک هستش.

Jarvis
جمعه 21 تیر 1392, 14:12 عصر
الان چه کسانی قراره در این پروژه کار کنن؟ به چی تسلط دارند؟ آیا دوستان با فازهای کامپایلر آشنایی دارند؟
راستش اگه وقت داشته باشم و تعداد افراد گروه به اندازه کافی باشه , خوشحال میشم فعالیت کنم. البته اگه وقت کنم.
خودم با بخشهای مربوط به backend و frontend و زبانهای مستقل از متن یک آشنایی نسبی دارم. البته متاسفانه سرم خیلی شلوغه.
فعلا که بنده هستم ... آقا مسعود ( IamOverlord ) ... آقای شاهین عشایری (http://barnamenevis.org/member.php?75214-Object-Pascal) هم که از سواد زیادی در زمینه ی کامپایلر برخوردار هستند به تازگی بهمون پیوستن ...
همینطور ho3ein.3ven (http://barnamenevis.org/member.php?236082-ho3ein.3ven) و m.4.r.m (http://barnamenevis.org/member.php?247494-m.4.r.m) که تو کار زبان اسمبلی هستند ... البته جا داره از آقا بهروز عباسی (http://barnamenevis.org/member.php?231262-%D8%A8%D9%87%D8%B1%D9%88%D8%B2-%D8%B9%D8%A8%D8%A7%D8%B3%DB%8C) هم تشکر کنیم که داره بهمون کمک میکنه ...
شما هم خوشحال میشیم همکاری کنید ... هر چند کم !

Jarvis
جمعه 21 تیر 1392, 14:15 عصر
اما به نظر من وقتی دارید از سینتکس basic استفاده میکنید , زبان میشه از خانواده بیسیک. این دیگه فکر میکنم ساده باشه. مگه اینکه یک سینتکس جدید ارائه بدید. مثلا vb6 رو میشه گفت از خانواده بیسیک هستش.
نه ما قرار نیست از سینتکس basic استفاده کنیم ... شاید سینتکس ما شبیه VB6 بشه .. ولی صرفاً از سینتکس بیسیک استفاده نمی کنیم .. یه جور الهام گرفتن هستش .. وگرنه احتمال داره یه جاهایی از سینتکس رو از ++C الهام بگیریم .. یا مثلا از دلفی ... چون اینا هم از محبوبیت بالایی برخوردار هستند ... میشه برای یه سینتکس خوب ازشون ایده گرفت

darknes666
جمعه 21 تیر 1392, 14:18 عصر
اره راست می گه دیگه من که تو عمرم اولین بار همچین اسمیو می بینم !
من تو همون اعداد مختلط که تو دانشگاه درس میدن موندم که اصلا به چه دردی می خورن دیگه سوپر مختلطش پیش کش ! :لبخند:
کسی می تونه توضیح بده کاربرد اعداد مختلط چیه اصلا؟!

کاربرد این اعداد خیلی زیاده.(مختلط)
از کشف بوزون هیگز بگیر تا مدار های کامپیوتر.
ولی مجموعه ی اعداد Sedenions جواب معادلات خیلی خیلی پیچده ای رو تو خودش داره.
کاربرد این مجوعه ی Sedenions تازه داره رو میشه.
این مجموعه اینقدر پیچیدست که مایکروسافت 3 سال داره رو یه هدر فایل برای این اعداد کار میکنه.(البته من خودم شک دارم که راست باشه)

ما تو ریاضی با مجمو عه های اعداد ریاضی آشنایی داریم ترتیبش طبق ویکی اینه:
Real numbers ----> Complex numbers----> Quaternions ----> Octonions ----> Sedenions

درضمن عملگر Tetration چیزی به جز توان نیست.درواقع توان های تو در تو هست که پشتیبانی نمیخواد.
یه تابع ساده میتونه این کار رو انجام بده.

amin32
جمعه 21 تیر 1392, 14:46 عصر
فعلا که بنده هستم ... آقا مسعود ( IamOverlord ) ... آقای شاهین عشایری (http://barnamenevis.org/member.php?75214-Object-Pascal) هم که از سواد زیادی در زمینه ی کامپایلر برخوردار هستند به تازگی بهمون پیوستن ...
همینطور ho3ein.3ven (http://barnamenevis.org/member.php?236082-ho3ein.3ven) و m.4.r.m (http://barnamenevis.org/member.php?247494-m.4.r.m) که تو کار زبان اسمبلی هستند ... البته جا داره از آقا بهروز عباسی (http://barnamenevis.org/member.php?231262-%D8%A8%D9%87%D8%B1%D9%88%D8%B2-%D8%B9%D8%A8%D8%A7%D8%B3%DB%8C) هم تشکر کنیم که داره بهمون کمک میکنه ...
شما هم خوشحال میشیم همکاری کنید ... هر چند کم !

البته فکر میکنم در زمینه طراحی کامپایلر , آشنایی با زبانهای مستقل از متن و در کل نظریه زبانها و ماشینها از همه موارد مهمتر هست. یک نگاهی به این تاپیک بندازید بد نیست:
http://barnamenevis.org/showthread.php?296021-ساخت-Compiler-و-یک-زبان-برنامه-نویسی-جدید

اینجا بنده و IamOverlord عزیز خیلی تلاش کردیم تا دوستان دیگری رو که با این موارد آشنا هستن دعوت کنیم تا در پروژه سهیم باشن ولی ظاهرا کسی نبود و بنده مجبور شدم تقریبا به تنهایی پیاده سازی پروژه رو پیش ببرم که واقعا غیر ممکن بود. لطفا دوستان واضح مشخص کنن که آیا با این موارد آشنایی دارن؟

mehran901
جمعه 21 تیر 1392, 14:50 عصر
کسی می تونه توضیح بده کاربرد اعداد مختلط چیه اصلا؟!

مهمترین کاربردش حل معادلات دیفرانسیلی و ... هست البته مهمتر از اونا کسب نمره در امتحانه :لبخند:

Jarvis
جمعه 21 تیر 1392, 15:28 عصر
البته فکر میکنم در زمینه طراحی کامپایلر , آشنایی با زبانهای مستقل از متن و در کل نظریه زبانها و ماشینها از همه موارد مهمتر هست. یک نگاهی به این تاپیک بندازید بد نیست:
http://barnamenevis.org/showthread.php?296021-ساخت-Compiler-و-یک-زبان-برنامه-نویسی-جدید

اینجا بنده و IamOverlord عزیز خیلی تلاش کردیم تا دوستان دیگری رو که با این موارد آشنا هستن دعوت کنیم تا در پروژه سهیم باشن ولی ظاهرا کسی نبود و بنده مجبور شدم تقریبا به تنهایی پیاده سازی پروژه رو پیش ببرم که واقعا غیر ممکن بود. لطفا دوستان واضح مشخص کنن که آیا با این موارد آشنایی دارن؟
خب مسلماً الان بچه ها تعدادشون بیشتره ... مثلا آقای عشایری هم از مسائلی که گفتید سر در میاره ...
فکر کنم بهروز هم بلد باشه ... ولی بنده اطلاعات زیادی ندارم ...
با همین تعداد هم میشه پیش رفت ... کم کم افرادی بهمون اضافه میشن .. مث همین الان!

یا علی

m.4.r.m
جمعه 21 تیر 1392, 15:41 عصر
شاید نتونیم تو این زمینه مثل خیلی ها کد نویسی حرفه ای نداشته باشیم اما لاقل چند تا ذهن بهتر از یک ذهن کار می کنه ایده و ... در نوشتن کد های راحت تر میتونیم کمک حال باشیم . ما می توانیم

m.4.r.m
جمعه 21 تیر 1392, 15:51 عصر
این سایت هم برای شروع بد نیست

http://compilers.iecc.com/crenshaw/

به صورت پاسکل و دلفی کد هاشو نوشته اما تغییر دادنش و مفهومش سخت نیست

SlowCode
جمعه 21 تیر 1392, 17:08 عصر
دوست عزیز بازم قصد موج منفی ندارم.
ولی اعداد Hyper Complex به قدری پیچیده هستن که توی کل ایران فقط تو دبیرستان انرژی اتمی اونم بخش کوچیکش تدریس میشه.
اونوقت شما پشتیبانی ازش ایجاد میکنی که چه سودی داشته باشه؟
قصد نداری ولی میکنی:لبخندساده:
اتفاقا به نظرم اگه از این موارد پشتیبانی کنه خیلی خوب میشه.
اگه قرار باشه این زبان مثل زبان های دیگه باشه طرفدار آنچنانی پیدا نمیکنه. به نظرم باید چیزی داشته باشه که برنامه نویس ها رو جذب کنه.
مثلا regx که وی بی تقریبا نداره(یه عملگر like هست اونم که...)بعد تو مباحث کلاس باید از وی بی برتر باشه و مباحثی مثل extends,implements,abstract رو پشتیبانی کنه.
مواردی زیادی وجود داره ولی بحث کردن در مورد اینا یکم زوده.

Jarvis
جمعه 21 تیر 1392, 17:25 عصر
آره منم با محسن موافقم ... الان شما بخوای یه پروژه با VB6 بنویسی ممکنه بعضی جا ها کم بیاره ... ولی مثلا دلفی خیلی بهتره و احتمال این که کم بیاری به مراتب خیلی کمتر هستش...
به همین خاطره که میگم شکل کلی سینتکس می تونه شبیه VB6 باشه ... ولی کلمات کلیدی ... امکانات و... میتونن یه چیزی حداقل در حد دلفی باشن ...
---------
من به یه نفر از دوستانی هم که توی همین سایت می شناختم پیام دادم .. امیدوارم باهامون همکاری کنن...

darknes666
جمعه 21 تیر 1392, 17:46 عصر
قصد نداری ولی میکنی:لبخندساده:
اتفاقا به نظرم اگه از این موارد پشتیبانی کنه خیلی خوب میشه.
اگه قرار باشه این زبان مثل زبان های دیگه باشه طرفدار آنچنانی پیدا نمیکنه. به نظرم باید چیزی داشته باشه که برنامه نویس ها رو جذب کنه.
مثلا regx که وی بی تقریبا نداره(یه عملگر like هست اونم که...)بعد تو مباحث کلاس باید از وی بی برتر باشه و مباحثی مثل extends,implements,abstract رو پشتیبانی کنه.
مواردی زیادی وجود داره ولی بحث کردن در مورد اینا یکم زوده.

خیلی موارد دیگه هست که میتونین اونا رو بهبود ببخشین به جای این که این کار رو کنین.
اونقدر زیاد که اگر بتونین همشو بهبود ببخشین دیگه حرفی برای زدن دارین.

Jarvis
جمعه 21 تیر 1392, 18:11 عصر
خیلی موارد دیگه هست کی میتونین اونا رو بهبود ببخشین به جای این که این کار رو کنین.
اونقدر زیاد که اگر بتونین همشو بهبود ببخشین دیگه حرفی برای زدن دارین.
مثلا ؟http://freesmile.ir/smiles/600020_scratch_one-s_head.gif

darknes666
جمعه 21 تیر 1392, 18:18 عصر
اضافه کردن inline assembly

amin32
جمعه 21 تیر 1392, 18:57 عصر
الان خلاصه چی شد؟ با نظرات پراکنده دوستان که نمیشه روی کسی حساب کرد و پروژه رو شروع کرد. از روزی هم که تاپیک دوباره بالا اومده همش داره در مورد توجیه انجام این کار بحث میشه و به غیر از چند کار گرافیکی عالی جناب Mohammad Salehi ( که خیلی مهمه ولی مربوط میشه به مراحل نهایی کار ) کسی پروژه رو استارت نمیزنه. مطمئن باشید یک چنین تاپیک شلوغی به نتیجه نمیرسه. من یک پیشنهاد دارم. یک تاپیک جدید زده بشه در بخش open source و در اون افرادی که مایل هستند به طور جدی در پروژه شرکت کنن , اعلام آمادگی کنن و تخصص خودشون رو در هر کدوم از بخشهای مورد نیاز مشخص کنند. یعنی:
1- نظریه زبانها و ماشینها
2- فازهای کامپایلر
3- زبان اسمبلی برای backend
4- زبانی که کامپایلر قراره با اون نوشته بشه ( که ظاهرا vb6 هست )
بخش گرافیک هم که فکر میکنم Mohammad Salehi عزیز کافی باشه.
اینجوری اگه به اندازه کافی افراد فعال رو دور هم جمع کنیم, میتونیم با خیال راحت یک یا علی بگیم و پروژه رو استارت بزنیم.
البته یک مشکل دیگه ای هم هست , اینکه هنوز ماهیت زبان مشخص نیست تاپیک به عنوان توسعه vb ایجاد شده. بعضی از دوستان میگن قراره یک زبان جدید ایجاد بشه. بعضی میگن شبیه به vb باشه. البته این رو بدونید که ایجاد یک زبان جدید با syntax منحصر به فرد , اونقدر که فکر میکنید آسون نیست و کلی وقت میبره. مخصوصا اگه بخوایم استاندارد باشه.خلاصه این رو بدونید تا زیر و بم زبان رو مشخص نکنیم , کامپایلری هم وجود نداره و بهتره هر چه زودتر تکلیفش مشخص بشه. البته با مشورت همگی.
اینها فقط پیشنهاد بود ولی فکر نمیکنم غیر منطقی باشه!

Jarvis
جمعه 21 تیر 1392, 19:47 عصر
در مورد تاپیک من این کار رو انجام دادم ... ولی تاپیک های اون بخش نیاز به تائید مدیر داره ... ظاهرا هنوز مدیر تائیدش نکرده ... حالا به آقای کرامتی پیام دادم ... ببینم تائید میکنه ...
اگه تائید کرد دیگه اینجا فعالیت نمی کنیم ... یه لینک میزاریم اینجا و تاپیک رو قفل می کنیم ...
توی اون تاپیک هم فقط بحث تخصصی و تبادل اطلاعات هستش ...

4- زبانی که کامپایلر قراره با اون نوشته بشه ( که ظاهرا vb6 هست )به احتمال زیاد VB6 نیست ...

amin32
جمعه 21 تیر 1392, 19:52 عصر
در مورد تاپیک من این کار رو انجام دادم ... ولی تاپیک های اون بخش نیاز به تائید مدیر داره ... ظاهرا هنوز مدیر تائیدش کرده ... حالا به آقای کرامتی پیام دادم ... ببینم تائید میکنه ...
اگه تائید کرد دیگه اینجا فعالیت نمی کنیم ... یه لینک میزاریم اینجا و تاپیک رو قفل می کنیم ...
توی اون تاپیک هم فقط بحث تخخصی و تبادل اطلاعات هستش ...

به احتمال زیاد VB6 نیست ...

پس به نظرم در ابتدای تاپیک بنویسید که "از دادن نظرات منفی از جمله : چرخ رو دوباره اختراع نکنید - این کار ایرانیها نیست و..... اکیدا خودداری فرمایید."

Jarvis
جمعه 21 تیر 1392, 19:59 عصر
پس به نظرم در ابتدای تاپیک بنویسید که "از دادن نظرات منفی از جمله : چرخ رو دوباره اختراع نکنید - این کار ایرانیها نیست و..... اکیدا خودداری فرمایید."
بله اون رو که حتما می نویسم ...
یه سری موارد دیگه هم هست ...
مثلا افرادی که به صورت رسمی توی پروژه همکاری میکنن ..
وضعیت پروژه ( که تا کجا پیش رفته و چیا طراحی و تکمیل شدند )
لینک های مفیدی که بین کاربران رد و بدل میشه ...
و...

Jarvis
جمعه 21 تیر 1392, 21:45 عصر
من یه Document Archive دارم ... توش یه سرچی کردم و مقالاتی که به درد میخوردن رو جدا کردم ...
می تونید دانلود کنید :
http://mssdh.xzn.ir/Programming%20Languages.zip
9.16 MB
یکیشون برای افرادی که چیزی از طراحی کامپایلر سر در نمیارن خیلی خوبه ... قشنگ توضیح داده

IamOverlord
جمعه 21 تیر 1392, 21:50 عصر
سلام دوستان!

در مورد اون عملگرها:

همون طور که می دونید اول می گیم جمع... بعد می رسیم به ضرب... و بعد توان...
خوب ضرب ساده تر نوشتن یه همچین چیزیه: a+a+...+a
...و توان ساده تر نوشتن یه همچین چیزی: a*a*...*a
خوب تا حالا به این فکر کرده بودید که آیا ریاضی دان ها به بعد از این فکر کردن یا نه؟! خوب نمی دونم شاید بگید بی کاریه!... حداقل برای من که مسئله ی جالبیه...
مثلا تویه زبان Fortran از ** برای توان استفاده می شه... ما هم می تونیم از همین ایده استفاده کنیم و عملگر جدیدمون رو به صورت ^^ نمایش بدیم...
a^^7=a^a^a^a^a^a^a
توجه کنید که اولویت توان از آخر به اول هست یعنی از راست به چپ... وگرنه اگه از اول به آخر توان ها رو حساب می کردیم که اصلا نیازی به تعریف عملگر جدید نبود و می شد این رو به عنوان معادلش رو نوشت: a^a^6
خوب به این ^^ که گفتم می گن Tetration یا Hyper4... و خیلی سریع رشد می کنه... مثلا 3^3 کجا و 3^^3 کجا...!
بعد از این هم با همین روشی که گفتم عملگر جدید پیدا می شه...
به Hyper0 هم فکر کنید! ++C رو یادتون هست؟
اصلا قبل از Hyper0 چیزی هست؟
می شه برای رسم فراکتال ها هم ازشون استفاده کرد...
ضمنا همون طور که منها مخالف جمع هست و تقسیم مخالف ضرب، اینا هم عملگر مخالف دارن... البته همون طور که برای توان، هم root داریم هم logarithm برای اینا هم دو تا داریم: super-root و super-logarithm...
مسائل جالبیه اگه دقت کنید...

در مورد اون اعداد:

به طور خلاصه یه عددی تعریف می شه که با نماد i نشون داده می شه و فرض می شه که اگه این عدد ضرب در خودش بشه، حاصل بشه منفی یک: i^2=-1
در حالت کلی اعداد مختلط به این شکل نشون داده می شن: a+i*b که a و b دو عدد حقیقی دلخواه هست...
که اتفاقا خیلی هم کاربرد دارن این اعداد مختلط...
حالا نکته ی جالبی که هست اینه که شما می تونی جذر هر عدد منفی ای رو حساب کنی! با یه تعریف ساده و جمع و جور...
حتی شما می تونی logarithm اعداد منفی رو هم حساب کنی! که این برای من بسیار جالب بود...
حوزه ی اعداد طبیعی نسبت به جمع بسته است، یعنی شما هر دو تا عدد طبیعی رو که جمع کنی حاصلش عدد طبیعی می شه... اما نسبت به تفریق بسته نیست...
ولی اعداد صحیح، هم نسبت به جمع بسته هستن هم نسبت به تفریق... اعداد صحیح نسبت به ضرب هم بسته هستن، اما نسبت به تقسیم دیگه بسته نیستن...
ولی اعداد گویا هم نسبت به جمع و تفریق بسته هستن هم نسبت به ضرب و تقسیم بسته هستن البته به شرطی که کاری که می کنیم تعریف شده باشه... منظورم همین تقسیم بر صفر هست...
ولی اعداد گویا نسبت به توان و رادیکال و لگاریتم بسته نیستن...
اما حوزه ی اعداد مختلط نسبت به همه ی اینایی که گفتم بسته هست! یعنی شما می خوای جمع بزن، لگاریتم بگیر، حتی سینوس و کسینوس رو حساب کن، ریشه ی یه عدد مختلط رو به فرجه ی یه عدد مختلط دیگه حساب کن،... حاصل عدد مختلط می مونه!
اما سوال جالب اینه که آیا حوزه ای بالا تر از اعداد مختلط هست؟ بله... و اتفاقا کاربرد هم دارن تو علم...

For this reason, quaternions are used in computer graphics,[11] computer vision, robotics, control theory, signal processing, attitude control, physics, bioinformatics, molecular dynamics, computer simulations, and orbital mechanics.
Quaternion ها که چهارتایی هستن: a+b*i+c*j+d*k که i، j، k اجزاء موهومی هستن...
Octonion ها که هشت تایی هستن: a+b*e1+c*e2+d*e3+e*e4+f*e5+g*e6+h*e7
Sedenion ها که شانزده تایی هستن...
و خواص جالبی هم دارن! مثلا در Quaternion ها شما دیگه نمی تونی بگی لزوما a*b با b*a برابر هست...!
به ترتیب هر چی می ری جلوتر یه سری خاصیت از بین می ره... جالبه بدونید در حوزه ی Sedenion ها ممکنه دو عدد غیر صفر، حاصل ضربشون صفر بشه!
...

پشتیبانی داخلی از این چیزایی که گفتم جالبه... ضمن این که گفتم اینا کاربرد هم دارن...

IamOverlord
شنبه 22 تیر 1392, 01:58 صبح
سلام!
خوب ظاهرا یکی باید بالا سرتون باشه... بزنه تو سرتون کار کنید! :بامزه:
خوب جناب m.4.r.m (http://barnamenevis.org/member.php?247494-m.4.r.m) در حال حاضر مدیر پروژه هستن... اگه می خواید همکاری کنید، هر کار می گن گوش کنید... اگه خودم هم یه موقع نتونم بیام فروم با ایشون هماهنگ می کنم... هر چی گفتن حرفشون حرف منه!
یه مقدار از تنبلی در بیاید... فاز منفی رو بذارید کنار... تا ببینید چی کارا می تونیم بکنیم!

m.4.r.m
شنبه 22 تیر 1392, 02:05 صبح
با تشکر مسعود عزیز ( IamOverlord )

منظور ایشون از مدیر پروژه این نبود که بنده شدم همه کاره و دوستان شدن فقط کد نویس و حرف گوش کن ، حرف ایشون به این معنی بود که یک تیم باید یک سرپرست داشته باشه برای مدیریت پروزه نه اعضای پروزه . امیدوارم کنار همدیگر بتونیم این پروژه رو به انتها برسونیم . من کوچیک همه دوستان با سابقه و حرفه ای انجمن هم هستم

IamOverlord
یک شنبه 23 تیر 1392, 03:09 صبح
سلام دوستان...
کارمون راه افتاد!
گرچه می خوایم از Flat Assembler استفاده کنیم، اما پیشنهاد می کنم فعلا MASM32 رو دانلود کنید...
بعد که دانلود کردید برید این جا: masm32\m32lib
نیگا کنید! خیلی از چیزایی که لازم داریم از قبل هست!
برای مثال برای تبدیل DWORD به ASCII String این فایل رو ببینید: dw2a.asm


; ################################################## #######################

.386
.model flat, stdcall ; 32 bit memory model
option casemap :none ; case sensitive

wsprintfA PROTO C :DWORD,:VARARG
wsprintf equ <wsprintfA>

.data
fMtStrinG db "%lu",0

.code

; ################################################## #######################

dw2a proc dwValue:DWORD, lpBuffer:DWORD

; -------------------------------------------------------------
; convert DWORD to ascii string
; dwValue is passed as a value, direct, indirect or in register
; lpBuffer is the ADDRESS of the receiving buffer
; EXAMPLE:
; invoke dw2a,edx,ADDR buffer
; -------------------------------------------------------------

invoke wsprintf,lpBuffer,ADDR fMtStrinG,dwValue

ret

dw2a endp

; ################################################## #######################

end

خیلی از چیز ها رو هم خود Windows برامون تدارک دیده! این جا از wsprintf استفاده شده در User32.dll...
در مورد wsprintf این جا رو ببینید: wsprintf function (http://msdn.microsoft.com/en-us/library/windows/desktop/ms647550(v=vs.85).aspx)

غیر از این فایل های دیگه ای هم برامون تو masm32\m32lib هست... مثلا اینا رو ببینید:


dwtoa.asm : convert DWORD to ascii string
a2dw.asm : Convert decimal string into dword value
atofp.asm : Convert a string containing an ASCII representation of a floating point value to an 8-byte double precision number
fptoa.asm : Convert an 8-byte double-precision value to an ASCII string
...

m.4.r.m
یک شنبه 23 تیر 1392, 17:01 عصر
ضمن خسته نباشید خدمت مسعود عزیز و دوستان :

اونطور که معلوم شد مسعود جان به یک سری یافته های جدید دست یافتن و معلوم شد یک سری فایل ها لازم به نوشتن نیست و همون طور که گفتن با برنامه Masm32 قرار هست کار رو شروع کنیم . از دوستانی که قصد همکاری دارند این برنامه رو دانلود کرده و طبق گفته های و مشورت های دیگر شروع به نوشتن کنیم تا برنامه استارت اصلی خودش رو بزنه . پس منتظر حضور همتون هستیم . به امید پیروزی

m.4.r.m
یک شنبه 23 تیر 1392, 17:07 عصر
به نظر بنده قبل از شروع کار باید تقسیم کار بشه :
1- کد نویسی اسمبلی برای نوشتن کد های ASM و تبدیل به EXE پیشنهاد ( MASM یا FASM )

2- گروه دوم برنامه نویسی ترجمه ، گرامر و آنالیزور ( زبان GOLD )

پس خواهشمندم کسانی که قصد همکاری دارند اعلام کنند تا تقسیم کار انجام بشه و تا سرعت بیشتری تو روند کار داشته باشیم و به امید خدا بتونیم این پروژه رو به پیش ببریم .

Jarvis
جمعه 28 تیر 1392, 13:14 عصر
الان چی شد بالاخره ؟
پروژه رها شد ؟ یا داریم روی پروژه کار می کنیم ؟

به نظرم باید یه جایی ( غیر از این تاپیک ) رو به پروژه اختصاص بدیم و اونجا متمرکز کار کنیم ...

BORHAN TEC
شنبه 29 تیر 1392, 12:24 عصر
من دارم یه کارهایی در مورد ساخت کامپایلر انجام میدم.

Jarvis
شنبه 29 تیر 1392, 17:22 عصر
من دارم یه کارهایی در مورد ساخت کامپایلر انجام میدم.
خیلی خوبه ... پس بی زحمت گهگاهی یه گزارشی از کارتون بزارید ما هم فیض ببریم http://www.freesmile.ir/smiles/486421_LaieA_001.gif

IamOverlord
دوشنبه 11 شهریور 1392, 21:33 عصر
سلام دوستان!
من امسال کنکور دارم و دو سه ماهی می شه که مشغولم...
پس تقریبا نمی تونم کار زیادی بکنم برای این پروژه تا سال بعد...!

Mr'Jamshidy
چهارشنبه 13 شهریور 1392, 01:23 صبح
من هم خیلی دوست دارم همکاری کنم با شما البته اگر بخواید

من خودم همچین قضیه ای رو به تنهایی دنبال میکردم البته هنوز کاری انجام ندادم ولی داشتم دنبال عاقلانه ترین راه ممکن میگشتم که خوشبختانه شما رو پیدا کردم
دلیل تنها کار کردنم هم همین ترول های سایت بودن، بگذریم!

خوب ولی من چند تا مورد رو به شما پیشنهاد میدم اگر قسمت شد با هم روش کار میکنیم اگر نشد شما حداقل روش فکر کنید

1. استفاده از Syntax وی بی
- چون شناخته شده هست و تقریبا همه برنامه نویس ها باهاش آشنا هستن (کمتر برنامه نویسی پیدا میشه که ویبی بلد نباشه)

2. استفاده از زبان ویبی برای ساخت کامپایلر، مفسر و IDE
- اگر از سینتکس ویبی استفاده کنید، بعدا میتونید برنامه رو با کامپایلر خودش کامپایل کنید و چون قراره چند سکویی باشه یک مزیت خیلی خوبی میشه برای برنامه

و مورد سوم

شما میتونید یک مفسر بنویسید و از یک کامپایلر دیگه استفاده کنید
بعد که برنامه راه افتاد و کامل شد میتونید کامپایلر خودتون رو بنویسید و فعلا درگیر سختیهای کامپایلر نشید

توضیحات اضافه:

به اسپم هایی که میشه اصلا توجه نکنید چون فقط باعث میشه از هدف اصلیتون دور بشید

Jarvis
جمعه 22 آذر 1392, 12:01 عصر
دوستان بعد از این همه مدت نمیخواید جمع بشیم روی پروژه کار کنیم ؟
برای شروع منم با دوستمون موافقم ... یه مفسر بنویسیم که درگیر سختی های کامپایلر نشیم .. وقتی بتونیم مفسر رو بنویسیم خیلی راحت تر می تونیم کامپایلر رو بنویسیم

IamOverlord
شنبه 23 آذر 1392, 21:35 عصر
سلام دوستان!
امسال دارم واسه کنکور می خونم...
امیدوارم بعد کنکور بتونم بیام این جا و با خیال راحت شروع کنم...
شرمنده...
البته فکر کنم روزی 1 ساعت وقت داشته باشم واسه این جا...

NitroPlus
یک شنبه 25 اسفند 1392, 11:21 صبح
دوستان می تونید رو من هم حساب کنید فقط یکی یه پ.خ بده که باید چه کار کنم!!

IamOverlord
چهارشنبه 31 اردیبهشت 1393, 18:35 عصر
سلام!
شروع کردم یه قسمتی از Parser رو بنویسم...
تصمیم گرفتم که Parser رو در Ruby به کمک Whittle بنویسم...
تا این جای کار:
دو تا فایل هست یکی theparser.rb که کد Parser مون هست... دیگری یه فایل با نام دلخواه (source.txt) که کدی که می خوایم تجزیه کنیم توش هست...
موقع کار با Parser مون می تونیم آدرس یه فایل رو به عنوان یه آرگومان خط فرمان به Parser بفرستیم... مثلا source.txt رو... بعد Parser تجزیه می کنه اون رو و درخت تجزیه درست می کنه و در خروجی نشون می ده... اگه آرگومانی نفرستید خودش یه کدی رو Parse می کنه که اون رو در داخل فایل theparser.rb براش مشخص کردید (آخر فایل در قسمت else دستور if...)
محتویات این دو فایل:
theparser.rb







require 'whittle'
require 'pp'


#http://barnamenevis.org/member.php?72921-IamOverlord (masood.lapeh@gmail.com)


class TheParser < Whittle::Parser
rule(:wsp => /\s+/).skip! #skip white spaces...
rule("&") % :left ^ 1
rule("+") % :left ^ 2
rule("-") % :left ^ 2
rule("mod" =>/mod/i) % :left ^ 3 #it's case-insensitive...
rule("\\") % :left ^ 4 #the \ operator for integer division...
rule("*") % :left ^ 5
rule("/") % :left ^ 5
rule("^") % :right ^ 6

rule("(")
rule(")")

rule("=")

rule("call" =>/call/i)
rule(",")

rule(:int => /[0-9]+/).as { |num| num }
rule(:string => /"[^"]*"/ ).as { |str| str } #that's a vb string but this one is a c string: /"([^"\\]|\\.)*"/
rule(:identifier => /[_a-zA-Z][_a-zA-Z0-9]*/ ).as {|identifier| identifier}



rule(:expr) do |r|
r[:identifier,"(",:args,")"].as { |id,_,args,_| {:item=>"FunctionExpression",:args=>args} }

r["(", :expr, ")"].as { |_, exp, _| exp}

r[:expr, "&", :expr].as { |l, _, r| {:item=>"ConcatentionExpression",:left=>l,:right=>r} }
r[:expr, "+", :expr].as { |l, _, r| {:item=>"AdditionExpression",:left=>l,:right=>r} }
r[:expr, "-", :expr].as { |l, _, r| {:item=>"SubtractionExpression",:left=>l,:right=>r} }
r[:expr,"mod",:expr].as { |l, _, r| {:item=>"ModulusExpression",:left=>l,:rigth=>r} }
r[:expr,"\\", :expr].as { |l, _, r| {:item=>"IntegerDivisionExpression",:left=>l,:right=>r} }
r[:expr, "*", :expr].as { |l, _, r| {:item=>"MultiplicationExpression",:left=>l,:right=>r} }
r[:expr, "/", :expr].as { |l, _, r| {:item=>"DivisionExpression",:left=>l,:right=>r} }
r[:expr, "^", :expr].as { |l, _, r| {:item=>"ExponentiationExpression",:left=>l,:right=>r} }

r[:int]
r[:string]
r[:identifier]
end

rule(:args) do |r|
r[:expr].as {|expr| [expr]}
r[:expr,",", :args].as { |expr,_,args| [expr]+args}
end

rule(:assignment) do |r|
r[:identifier, "=", :expr].as { |l, _, r| {:item=>"Assignment",:left=>l,:right=>r} }
end
rule(:call_statement) do |r|
r["call",:identifier, "(",:args, ")"].as { |_,id,_,args,_| {:item=>"CallStatement",:sub=>id,:args=>args}}
r["call", :identifier].as { |_,id| {:item=>"CallStatement",:sub=>id}}
r[:identifier, "(",:args,")"].as { |id,_,args,_| {:item=>"CallStatement",:sub=>id,:args=>args}}
r[:identifier].as { |id| {:item=>"CallStatement",:sub=>id}}
end


rule(:statement) do |r|
r[:assignment]
r[:call_statement]
end
rule(:statements) do |r|
r[:statement].as {|stmnt| [stmnt] }
r[:statement,:statements].as {|stmnt, stmnts| [stmnt]+stmnts }
end


rule(:program) do |r|
r[:statements]
end

start(:program)
end


if ARGV[0] != nil then
print "Parsing #{ARGV[0]}...\n"
source_code = IO.read(ARGV[0])
else
print "File Path argument is empty!\n"
source_code="a=b\\c" #the backslash character is escape character...
end



output = TheParser.new.parse(source_code)
pp output








source.txt




call myadd(A,2*3,f(2,3-2),5^4,C)
a=f(x,y)+g(x^y)


در Ubuntu برای کار با اینا، می تونید Ruby رو با دستور sudo apt-get install ruby2.0 نصب کنید بعد با دستور sudo gem install whittle -V هم Whittle رو نصب کنید... بعد برید تو پوشه ای که این دو تا فایل رو ساختید و در Terminal بزنید: ruby theparser.rb source.txt

IamOverlord
چهارشنبه 07 خرداد 1393, 03:39 صبح
سلام دوستان!

همون طور که توضیح دادم فایل theparser.rb که در Ruby نوشته شده نام فایل ورودی رو که در این جا source.txt هست رو می گیره و کدش رو تجزیه می کنه...
توی پست 214 (http://barnamenevis.org/showthread.php?360400-%DB%8C%D8%A7-%D8%A8%DB%8C-%D8%AE%DB%8C%D8%A7%D9%84-VB6-%D8%A8%D8%B4%DB%8C%D8%AF-%DB%8C%D8%A7&p=2026809&viewfull=1#post2026809) توضیح دادم...

تا این جای کار:
فایل theparser.rb که کد تجزیه گرمون هست:

require 'whittle'
require 'pp'

#http://barnamenevis.org/member.php?72921-IamOverlord (masood.lapeh@gmail.com)

class TheParser < Whittle::Parser
rule("(")
rule(")")
rule("&") % :left ^ 1
rule("+") % :left ^ 2
rule("-") % :left ^ 2
rule("mod"=>/mod/i) % :left ^ 3
rule("%") % :left ^ 3
rule("*") % :left ^ 5
rule("/") % :left ^ 5
rule("\\") % :left ^ 4
rule("^") % :left ^ 6
rule("=")

rule(",")
rule("call"=>/call/i)
rule("sub"=>/sub/i)
rule("function"=>/function/i)
rule("module"=>/module/i)
rule("as"=>/as/i)
rule("end"=>/end/i)

rule(:identifier => /[_a-zA-Z][_a-zA-Z0-9]*/)
rule(:unsigned_number => /[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?/)
rule(:number) do |r|
r[:unsigned_number]
r["+",:unsigned_number].as {|_,unsigned_number| "+" << unsigned_number}
r["-",:unsigned_number].as {|_,unsigned_number| "-" << unsigned_number}
end
rule(:string => /"[^"]*"/ )

rule(:expression) do |r|
r["(",:expression,")"]

r[:expression, "&", :expression].as {|left,_,right| {:item=>"concatention_expression", :left=>left, :right=>right}}
r[:expression, "+", :expression].as {|left,_,right| {:item=>"addition_expression", :left=>left, :right=>right}}
r[:expression, "-", :expression].as {|left,_,right| {:item=>"subtraction_expression", :left=>left, :right=>right}}
r[:expression,"mod",:expression].as {|left,_,right| {:item=>"modulus_expression", :left=>left, :right=>right}}
r[:expression, "%", :expression].as {|left,_,right| {:item=>"modulus_expression", :left=>left, :right=>right}}
r[:expression, "*", :expression].as {|left,_,right| {:item=>"multiplication_expression", :left=>left, :right=>right}}
r[:expression, "/", :expression].as {|left,_,right| {:item=>"integer_division_expression", :left=>left, :right=>right}}
r[:expression,"\\", :expression].as {|left,_,right| {:item=>"division_expression", :left=>left, :right=>right}}
r[:expression, "^", :expression].as {|left,_,right| {:item=>"exponential_expression", :left=>left, :right=>right}}

r[:identifier,:p_arguments_p].as{|identifier,arguments| {:item=>"function_or_object_expression",:identifier=>identifier,:arguments=>arguments}}

r[:number]
r[:string]
end

rule(:assignment_statement) do |r|
r[:identifier,"=",:expression,:eol].as {|left,_,right,_| {:item=>"assignment_statement",:left=>left,:right=>right}}
end

rule(:call_statement) do |r|
r["call", :identifier,:p_arguments_p,:eol].as { |_,identifier,arguments,_| {:item=>"call_statement",:identifier=>identifier,:arguments=>arguments} }
r[:identifier,:p_arguments_p,:eol].as { |identifier,arguments,_| {:item=>"call_statement",:identifier=>identifier,:arguments=>arguments} }
end

rule(:statement) do |r|
r[:eol].as{|_| {}}
r[:call_statement]
r[:assignment_statement]
end

rule(:arguments) do |r|
r[:expression].as {|expression| [expression]}
r[:expression,",",:arguments].as {|expression,_,arguments_| [expression]+arguments}
r[",",:arguments].as {|_,arguments| []+arguments}
r[].as {|| []}
end

rule(:p_arguments_p) do |r|
r["(",:arguments,")"].as {|_,arguments,_| arguments}
r[].as {|| []}
end

rule(:arguments_definition) do |r|
r[:expression].as {|expression| [expression]}
r[:expression,",",:arguments_definition].as {|expression,_,arguments_definition| [expression]+arguments_definition}
r[",",:arguments_definition].as {|_,arguments_definition| []+arguments_definition}
r[].as {|| []}
end

rule(:p_arguments_definition_p) do |r|
r["(",:arguments_definition,")"].as {|_,arguments_definition,_| arguments_definition}
r[].as {|| []}
end

rule(:sub_content) do |r|
r[:eol,:sub_content].as {|_,sub_content| []+sub_content}
r[:assignment_statement,:sub_content].as {|assignment_statement,sub_content| [assignment_statement]+sub_content}
r[:call_statement,:sub_content].as {|call_statement,sub_content| [call_statement]+sub_content}
r[].as{|| []}
end

rule(:sub_block) do |r|
r["sub",:identifier,:p_arguments_definition_p,:eol,:sub_c ontent,"end","sub"].as{|_,identifier,arguments_definition,_,sub_conte nt,_,_| {:item=>"sub_block",:identifier=>identifier,:arguments_definition=>arguments_definition,:sub_content=>sub_content}}
end

rule(:function_content) do |r|
r[:eol,:function_content].as {|_,function_content| []+function_content}
r[:assignment_statement,:function_content].as {|assignment_statement,function_content| [assignment_statement]+function_content}
r[:call_statement,:function_content].as {|call_statement,function_content| [call_statement]+function_content}
r[].as{|| []}
end

rule(:function_block) do |r|
r["function",:identifier,:p_arguments_definition_p,:eol,:funct ion_content,"end","function"].as{|_,identifier,arguments_definition,_,function_ content,_,_| {:item=>"function_block",:identifier=>identifier,:arguments_definition=>arguments_definition,:function_content=>function_content}}
end

rule(:class_block) do |r|

end

rule(:module_content) do |r|
r[:eol,:module_content].as {|_,module_content| []+module_content}
r[:module_block,:module_content].as {|module_block,module_content| [module_block]+module_content}
#r[:class_block,:module_content].as {|class_block,module_content| [class_block]+module_content}
r[:sub_block,:module_content].as {|sub_block,module_content| [sub_block]+module_content}
r[:function_block,:module_content].as {|function_block,module_content| [function_block]+module_content}
r[].as{|| []}

end

rule(:module_block) do |r|
r["module",:identifier,:eol,:module_content,"end","module",:eol].as{|_,identifier,_,module_content,_,_,_| {:item=>"module_block",:identifier=>identifier,:module_content=>module_content}}
end

rule(:program) do |r|
r[:eol,:program].as {|_,program| []+program}
r[:module_block,:program].as {|module_block,program| [module_block]+program}
r[:sub_block,:program].as {|sub_block,program| [sub_block]+program}
r[:function_block,:program].as {|function_block,program| [function_block]+program}
r[:assignment_statement,:program].as {|assignment_statement,program| [assignment_statement]+program}
r[:call_statement,:program].as {|call_statement,program| [call_statement]+program}
r[].as{|| []}
end

rule(:eol=>/\n/)
rule(:space=>/[^\S\n]*/).skip!

start(:program)
end

if ARGV[0] then
print "Parsing #{ARGV[0]}...\n"
source_code = IO.read(ARGV[0])
else
print "File Path argument is empty!\n"
source_code="a=b+c"<<"\n"
end

output = TheParser.new.parse(source_code)
pp output


فایل source.txt که مثال هست:

module a
module b
sub eoe()
x= y - -3.2
z = x^y ^z
end sub

function func1 (arg1,arg2)
call something56
end function
end module

sub hellowo(b,c,ss)
a=b
b=c
end sub

end module

sub main3(t)

end_st=3
end_end_end
end sub

a=b+c-x-y*z^a

function func3(x)
call main3
call main334(x+y)
end function

a= func3(a)



خروجی تجزیه گر برای مثال بالا:

Parsing source.txt...
[{:item=>"module_block",
:identifier=>"a",
:module_content=>
[{:item=>"module_block",
:identifier=>"b",
:module_content=>
[{:item=>"sub_block",
:identifier=>"eoe",
:arguments_definition=>[],
:sub_content=>
[{:item=>"assignment_statement",
:left=>"x",
:right=>
{:item=>"subtraction_expression",
:left=>
{:item=>"function_or_object_expression",
:identifier=>"y",
:arguments=>[]},
:right=>"-3.2"}},
{:item=>"assignment_statement",
:left=>"z",
:right=>
{:item=>"exponential_expression",
:left=>
{:item=>"exponential_expression",
:left=>
{:item=>"function_or_object_expression",
:identifier=>"x",
:arguments=>[]},
:right=>
{:item=>"function_or_object_expression",
:identifier=>"y",
:arguments=>[]}},
:right=>
{:item=>"function_or_object_expression",
:identifier=>"z",
:arguments=>[]}}}]},
{:item=>"function_block",
:identifier=>"func1",
:arguments_definition=>
[{:item=>"function_or_object_expression",
:identifier=>"arg1",
:arguments=>[]},
{:item=>"function_or_object_expression",
:identifier=>"arg2",
:arguments=>[]}],
:function_content=>
[{:item=>"call_statement",
:identifier=>"something56",
:arguments=>[]}]}]},
{:item=>"sub_block",
:identifier=>"hellowo",
:arguments_definition=>
[{:item=>"function_or_object_expression",
:identifier=>"b",
:arguments=>[]},
{:item=>"function_or_object_expression",
:identifier=>"c",
:arguments=>[]},
{:item=>"function_or_object_expression",
:identifier=>"ss",
:arguments=>[]}],
:sub_content=>
[{:item=>"assignment_statement",
:left=>"a",
:right=>
{:item=>"function_or_object_expression",
:identifier=>"b",
:arguments=>[]}},
{:item=>"assignment_statement",
:left=>"b",
:right=>
{:item=>"function_or_object_expression",
:identifier=>"c",
:arguments=>[]}}]}]},
{:item=>"sub_block",
:identifier=>"main3",
:arguments_definition=>
[{:item=>"function_or_object_expression",
:identifier=>"t",
:arguments=>[]}],
:sub_content=>
[{:item=>"assignment_statement", :left=>"end_st", :right=>"3"},
{:item=>"call_statement", :identifier=>"end_end_end", :arguments=>[]}]},
{:item=>"assignment_statement",
:left=>"a",
:right=>
{:item=>"subtraction_expression",
:left=>
{:item=>"subtraction_expression",
:left=>
{:item=>"addition_expression",
:left=>
{:item=>"function_or_object_expression",
:identifier=>"b",
:arguments=>[]},
:right=>
{:item=>"function_or_object_expression",
:identifier=>"c",
:arguments=>[]}},
:right=>
{:item=>"function_or_object_expression",
:identifier=>"x",
:arguments=>[]}},
:right=>
{:item=>"multiplication_expression",
:left=>
{:item=>"function_or_object_expression",
:identifier=>"y",
:arguments=>[]},
:right=>
{:item=>"exponential_expression",
:left=>
{:item=>"function_or_object_expression",
:identifier=>"z",
:arguments=>[]},
:right=>
{:item=>"function_or_object_expression",
:identifier=>"a",
:arguments=>[]}}}}},
{:item=>"function_block",
:identifier=>"func3",
:arguments_definition=>
[{:item=>"function_or_object_expression",
:identifier=>"x",
:arguments=>[]}],
:function_content=>
[{:item=>"call_statement", :identifier=>"main3", :arguments=>[]},
{:item=>"call_statement",
:identifier=>"main334",
:arguments=>
[{:item=>"addition_expression",
:left=>
{:item=>"function_or_object_expression",
:identifier=>"x",
:arguments=>[]},
:right=>
{:item=>"function_or_object_expression",
:identifier=>"y",
:arguments=>[]}}]}]},
{:item=>"assignment_statement",
:left=>"a",
:right=>
{:item=>"function_or_object_expression",
:identifier=>"func3",
:arguments=>
[{:item=>"function_or_object_expression",
:identifier=>"a",
:arguments=>[]}]}}]



فعلا هر برنامه تشکیل شده از یه سری module - sub - function و عبارت انتساب و عبارت call...
هر module تشکیل شده از یه سری module - sub - function...
هر sub تشکیل شده از یه سری عبارت انتساب و عبارت call...
همچنین هر function تشکیل شده از یه سری عبارت انتساب و عبارت call...

IamOverlord
سه شنبه 10 تیر 1393, 16:46 عصر
سلام دوستان!
استارت پروژه زده شد!
فعلا جناب Mr.305 (http://barnamenevis.org/member.php?317506-Mr-305) همکاری می کنن...
E-Mail من:
masood.lapeh@gmail.com

as.1050
جمعه 28 شهریور 1393, 19:07 عصر
سلام عزیزان پروژتون چی شد هنوز مشغولید یا بیخیال شدید؟؟؟؟؟؟؟

Mr.305
سه شنبه 01 مهر 1393, 13:28 عصر
من که بشخصه هر وقت که بشه روش کار میکنم و مشغولم

roo.row
جمعه 15 آبان 1394, 00:51 صبح
با سلام
چرا پروژه رو ادامه نمی دهید
با تشکر