İşlemcilerin hangi dillerle programlanabileceği neye bağlı?

Başlatan AXI, 23 Eylül 2016, 21:22:08

AXI

Arduinolar sadece atmel işlemcilerde kullanılmadığını gördüğüm günden beri bu soru kafama takılıyor.
Arduino programlanan işlemcilerde yine farklı dillerle progrmalana biliyor.
Örneğin ESP8266 hem LUA hemde Arduino ile programlanabiliyor.Bunlar benim bildiklerim.Belki c++ veya picbasic lede programlanabiliyorlardır.

Burada asıl sormak istediğim hangi işlmci hangi sebeblerden dolayı bir dille programlanabilir veya programlanamaz?
"Hedeflerin bittiği tek yer, YENİ hedeflerin başlangıcıdır"

Proteus

Aslında istediğin dille herşeyi programlarsın sonuçta makine diline Assembly ordan ise 10101010 'e  çevirelecek yani işlemci öyle anlayacak.Neden böyle yapılmış donanım katmanından kurtulmak (soyutlamak) işleri kolaylaştırmak insanın anlayacağı formatta olayı çözmek.

AXI

Mesela Arduino ile pic,
Phyton (yorumlayıcı ile çalıştığı için biraz farklı galiba) ile atmel,
c++ ile ESP8266
c# ile raspberry
php ile avr

Mümkün mü?

Bazıları biraz saçma oldu :) ,ama olsun maksat nasıl olacağını kavramak.
"Hedeflerin bittiği tek yer, YENİ hedeflerin başlangıcıdır"

RaMu

O dili işlemcinin anlayacağı makina diline
çevirebilecek bir ortam  (ide + derleyici) yapılmışsa
istediğin dilde istediğin işlemciye kod yazabilirsin.

Bir işlemciye sadece o işlemcinin makina dilinde kod yazılabilir,
(X işlemci opcode - komut seti diye bulabilirsin)
diğer bütün diller çeviridir.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

AXI

Peki neden bazı dillerin bazı işlemcileri için ideleri yok?

Mesala neden avr ler atmeller ve picler farklı bir sınıf gibi görünüyor (arduino,c++,pic basic,c gibi).Aslında hepsi farklı markayı ve özellikleri taşıyan aynı cihazlar (microişlemci).

Mesela C# bu kadar popülerken neden picler için ide çıkarmıyor.

Veya arduino neden pic için idesi yok.

"Hedeflerin bittiği tek yer, YENİ hedeflerin başlangıcıdır"

MC_Skywalker

C#'ı geliştiren microsoftun hedefi onu sadece kendi işletim siteminde kullanılması için geliştirdi. C# ile doğrudan işlemciye derleme yapılmıyor.  Yazdığınız kodu  .NET çalıştırıyor yani deleme sonucu oluşan EXE başka bir EXE yardımıyla işlemci üzerinde çalışıyor. 3. parti fimalar Linux(Mono)+Android ve MacOs(Xmarin) için çapraz derleyiciler vb. çıkart sonra microsoft hepsini satın aldı. 

Geliştirme ortamları 2 çeşittir;

1. Derleyiciler. Deleyiciler doğrudan binary üretirler ve bunu işlemci doğrudan çalıştırır. ASM, C, C++ vb.
2. Yorumlayıcılar. Yorumlayıcılar konu ara sanal makinanın anlayacağı bir şekle dönüştürüler.  Basic, C# vb.

Örnek verecek olursak PICBASIC yazdığımız kodlar PICBASIC tarfından yorumlanarak ASM çıktısı elde edilir ve MPASM ile derlenir ve hex çıktısı oluşturulur. Fakat Keil de C/C++ kodlar doğrudan işlemcinin anlayacağı formata derlenir.

Her micro işlemcinin mimarisi farklıdır içindeki ALU, Register vb. yapısı, op kodları.