Yetti artık, canıma tak dedi....

Başlatan çonçon, 02 Şubat 2020, 10:45:30

çonçon

Yetti artık, canıma tak dedi, başlarım c, c++ v.b. öğrenmeye, ulisp'e dalıyorum...

http://www.ulisp.com/



 :)  :)

power20


çonçon

uLisp®, Lisp programlama dilinin, sınırlı miktarda RAM'e sahip mikrodenetleyiciler üzerinde çalışmak üzere özel olarak tasarlanmış bir sürümüdür. Şu anda Arduino ATmega tabanlı panoları, Arduino ARM SAM / SAMD tabanlı panoları, Adafruit ARM SAMD21 / SAMD51 tabanlı panoları, BBC Micro Bit, STM32 tabanlı panoları, ESP8266 / ESP32 tabanlı panoları ve MSP430 tabanlı LaunchPad panolarını destekliyor . Platformdan bağımsız olarak tam olarak aynı uLisp programını kullanabilirsiniz.

ULisp bir yorumlayıcı olduğundan, programınızı derlemek ve yüklemek zorunda kalmadan komutları yazabilir ve efekti hemen görebilirsiniz. Bu, onu programlamayı öğrenmek veya basit elektronik cihazlar kurmak için ideal bir ortam haline getirir.

Lisp, C veya C ++ 'dan daha kolay programlamayı sağlayan birçok gelişmiş özelliğe sahip esnek bir dildir, bu nedenle temel programlama kavramlarını öğrenmek için idealdir. Ayrıca labirentleri çözmek için bir robot öğretmek veya bir harita üzerinde en kısa rotayı bulmak gibi karmaşık fikirleri ifade etmek için ideal bir dildir. ULisp çekirdek bir dizi Lisp fonksiyonunu desteklemenin yanı sıra Arduino uzantılarını içerir ve Arduino için kontrol dili olarak idealdir.

makdeniz

Örneklere kabaca baktım bana daha karmaşık geldi :)
Karanlık olmadan aydınlık, Ölüm olmadan yaşam mantıksız.

erdcan

(defun b (x)
  (pinmode 13 t)
  (digitalwrite 13 x)
  (delay 1000)
  (b (not x)))

Bu kod ile blink uygulaması yapılmış sanırım. Dilin düşük donanım özelliklerine sahip mikrodenetleyicileri desteklemesi güzel ama bu syntax yapısı micropython yanında oldukça yorucu.

from microbit import *
while True:   
    pin0.write_digital(1)
    sleep(1000)
    pin0.write_digital(0)
    sleep(1000)

M.Salim GÜLLÜCE

yorulmadan program deyince aklıma sadece flowcode geliyor :)

HAKKITANIR

çon çon,

Diller çeşit çeşit, bir PLC bile 5 farklı dilde programlanabiliyor.
Otomatik kumanda mesleğinden gelen kendine yönelik dili seçiyor. (Ladder diagram)
Elektronikçi kapılardan anlayan kişide kendine uygun olanı seçiyor. (flow card blok diagram)
Düz programalama yazım işlerinden anlayan da kendine uygun olanı seçiyor. (statment list)

Ayrık bağımsız elektronik Mikro Kontrolör programlamada da durum böyle.
Bir programlam dili makineye ne kadar yakınsa, o kadar etkin hızlı ve güvenli çalışır, kaynakları fazla tüketmez.
Program yazmak zorlaşır ve uzun sürer, analizi zorlaşır denilir.
Yine bir dil insana ne kadar yakınsa sa, bu seferde tam tersi olur denilir.
Günümüzde mcu kaynakları çok çeşitlendi ve güçlendirilip iyileştirildi artık. Pek kaynak sıkıntısı kalmadı.

Makineden insana doğru genelde programlama sıralaması-mantığı şöyle verilir.
ikili kod sistemi, Assembler, ANSI C, C, C ++, pascal, basic ve görsel programlama yöntemleri.

İnsana yakın olan dillerde program geliştirmek hızlıdır ve genelde kolaydır.
Ama içinden çıkılamayan yazılım durumları ile de karşılaşmak mümkündür.
Bu ksımlar da hepsinde genelde assambler (asm) desteği açık diye biliyorum.

Sonuçta tüm bu dilleri makine yani mcu, Assembler ve ikili kod sistemine dönüştürerek anlayabiliyor.
Bu ara dönüşümü de derleyici yazılımları yapıyor.

Şimdi kullanılan mcu daki mimari kısıtlı ve alt seviyede 8 bitlik bir yapıdaysa kullanılması tavsiye edilen programlama yazılımları var.

Ama bu işi iyi bilenler derki, işlemci TI, yazılım C veya C++ dır denilir. Bunlar zirvede görülür.
İşlemciyi ARM'i seçmek de, diğer etkin bir yöntem. Çok da mantıklı aslında. Risksiz, darbesiz bir tercih.
Ortak bir mimari. İstediğinde çip markanı değiştirebilirsin.

Mesela ben bunları kullanmayıp daha basit görülen dsPIC serisine yöneldim. Benim işimi bu mcu görüyor, ben bunu kullanabiliyorum, bunu seviyorum, benim bireysel doğrumda bu olmuş oluyor. ARM ye geçme hayalim vardı. Olmadı.

Herkesin doğruları kendisine uygun olanı bulmaktan ve seçmek den de geçiyor olabilir. 
İnsan mutlu olduğu, işini görebildiği yazılımı kullanır. Böyle yapması daha mantıklı olabilir.

Birde çok fazla profesyonel, uç sınırlarda üstün bir mcu programalama işlemi yapılmıyorsa,
belkide ne kullandığının da pek önemi kalmayabilir de.

Sizin linki ben gcc c benzeri, hazır kalıp ve fonksiyonlarla işlem görmeye çalışan bir yapıda gördüm.

muhittin_kaplan

Hakkı Bey
Alıntı YapSizin linki ben gcc c benzeri, hazır kalıp ve fonksiyonlarla işlem görmeye çalışan bir yapıda gördüm.

GCC C nin diğer C lerden ne farkı var ki siz bu çıkarımı yaptınız?

HAKKITANIR

GCC nin kötü olduğunu düşündüğüm manası çıkmasın buradan. Yalnızca benzetim yönünden bunu söylemeyi uygun gördüm.
Geçen bu konuda yazışmalar olmuştu, baktım nedir ne değildir bu GCC C derleyicisi diye,
Bir çok şey hazır olarak sunulmuş ve kullanımı insana daha yakın gibi hissettim.
Kütüphanelerindeki fonksiyonlara değerleri giriyorsun her şey ayarlanı veriyor.
Bir iş yaptıracaksın hemen hazır fonksiyonu var. Daha ne olsun.
Birde register düzeyinde kod yazabiliyorsun. JOKERAS yazınca olayı kavramıştım.
İş çıkarması oldukça kolaylaştırılmış. Lisp dilini buna çok benzettim ben.
Biz C derleyicimizde register düzeyinde kod yazacağız derken çok çektik.
Birde ASM bilgimiz sınırlıydı bundan da çektik.
Şimdi öylemi herşey hazır, çekip kullanı veriyorsun iş bitiyor.

muhittin_kaplan

Aslında öyle değil. Sonuç olarak Her kurum/firma bir derleyici yapabilir. VisualC,BorlandC vb gibi
GCC de GNU Compiler C dir.
https://tr.wikipedia.org/wiki/GNU_Compiler_Collection

(wiki açıldı hayırlı olsun)

HAKKITANIR